diff --git a/.publish/ui/components/Accordion.wrn b/.publish/ui/components/Accordion.wrn new file mode 100644 index 00000000..ba2db3ca --- /dev/null +++ b/.publish/ui/components/Accordion.wrn @@ -0,0 +1 @@ +component Accordion { props { title = "Question" open = false } state expanded = open view {
} } diff --git a/.publish/ui/components/ApiEndpointCard.wrn b/.publish/ui/components/ApiEndpointCard.wrn new file mode 100644 index 00000000..61c7cc70 --- /dev/null +++ b/.publish/ui/components/ApiEndpointCard.wrn @@ -0,0 +1 @@ +component ApiEndpointCard { props { method = "GET" path = "/api/example" description = "" } view {
{method}{path}

{description}

} } diff --git a/.publish/ui/components/Banner.wrn b/.publish/ui/components/Banner.wrn new file mode 100644 index 00000000..48b6dbff --- /dev/null +++ b/.publish/ui/components/Banner.wrn @@ -0,0 +1 @@ +component Banner { props { text = "Announcement" href = "" actionLabel = "Learn more" variant = "brand" } view { } } diff --git a/.publish/ui/components/Breadcrumbs.wrn b/.publish/ui/components/Breadcrumbs.wrn new file mode 100644 index 00000000..f82d47a1 --- /dev/null +++ b/.publish/ui/components/Breadcrumbs.wrn @@ -0,0 +1 @@ +component Breadcrumbs { props { homeLabel = "Home" homeHref = "/" current = "Current page" } view { } } diff --git a/.publish/ui/components/CTASection.wrn b/.publish/ui/components/CTASection.wrn new file mode 100644 index 00000000..345d4fec --- /dev/null +++ b/.publish/ui/components/CTASection.wrn @@ -0,0 +1 @@ +component CTASection { props { eyebrow = "Ready?" title = "Start building today" description = "" primaryLabel = "Get started" primaryHref = "#" secondaryLabel = "Contact sales" secondaryHref = "#" } view {

{eyebrow}

{title}

{description}

{primaryLabel}{secondaryLabel}
} } diff --git a/.publish/ui/components/Cluster.wrn b/.publish/ui/components/Cluster.wrn new file mode 100644 index 00000000..0eacf0fa --- /dev/null +++ b/.publish/ui/components/Cluster.wrn @@ -0,0 +1 @@ +component Cluster { props { gap = "4" className = "" } view {
} } diff --git a/.publish/ui/components/CodeBlock.wrn b/.publish/ui/components/CodeBlock.wrn new file mode 100644 index 00000000..7d986a71 --- /dev/null +++ b/.publish/ui/components/CodeBlock.wrn @@ -0,0 +1 @@ +component CodeBlock { props { language = "text" filename = "" code = "" } state copied = false view {
{filename || language}
{code}
} } diff --git a/.publish/ui/components/CookieBanner.wrn b/.publish/ui/components/CookieBanner.wrn new file mode 100644 index 00000000..22105f13 --- /dev/null +++ b/.publish/ui/components/CookieBanner.wrn @@ -0,0 +1 @@ +component CookieBanner { props { title = "We use cookies" description = "We use essential cookies and optional analytics to improve your experience." privacyHref = "/privacy" } state visible = true view { } } diff --git a/.publish/ui/components/DateInput.wrn b/.publish/ui/components/DateInput.wrn new file mode 100644 index 00000000..9080cd6c --- /dev/null +++ b/.publish/ui/components/DateInput.wrn @@ -0,0 +1,11 @@ +component DateInput { + props { id = "" name = "" label = "Date" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/DatePicker.wrn b/.publish/ui/components/DatePicker.wrn new file mode 100644 index 00000000..81d01061 --- /dev/null +++ b/.publish/ui/components/DatePicker.wrn @@ -0,0 +1 @@ +component DatePicker { props { id = "date" name = "date" label = "Date" value = "" min = "" max = "" required = false } view { } } diff --git a/.publish/ui/components/DateRangePicker.wrn b/.publish/ui/components/DateRangePicker.wrn new file mode 100644 index 00000000..d4b1e135 --- /dev/null +++ b/.publish/ui/components/DateRangePicker.wrn @@ -0,0 +1 @@ +component DateRangePicker { props { label = "Date range" startName = "startDate" endName = "endDate" } view {
{label}
} } diff --git a/.publish/ui/components/DateTimeInput.wrn b/.publish/ui/components/DateTimeInput.wrn new file mode 100644 index 00000000..45d08b5f --- /dev/null +++ b/.publish/ui/components/DateTimeInput.wrn @@ -0,0 +1,11 @@ +component DateTimeInput { + props { id = "" name = "" label = "DateTime" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/Drawer.wrn b/.publish/ui/components/Drawer.wrn new file mode 100644 index 00000000..1ade407e --- /dev/null +++ b/.publish/ui/components/Drawer.wrn @@ -0,0 +1 @@ +component Drawer { props { title = "Panel" open = false side = "right" } state visible = open view { } } diff --git a/.publish/ui/components/DropdownMenu.wrn b/.publish/ui/components/DropdownMenu.wrn new file mode 100644 index 00000000..b94eab50 --- /dev/null +++ b/.publish/ui/components/DropdownMenu.wrn @@ -0,0 +1 @@ +component DropdownMenu { props { label = "Menu" } state open = false view {
} } diff --git a/.publish/ui/components/EmailInput.wrn b/.publish/ui/components/EmailInput.wrn new file mode 100644 index 00000000..172bfc66 --- /dev/null +++ b/.publish/ui/components/EmailInput.wrn @@ -0,0 +1,11 @@ +component EmailInput { + props { id = "" name = "" label = "Email" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/EmptyState.wrn b/.publish/ui/components/EmptyState.wrn new file mode 100644 index 00000000..709f8a2b --- /dev/null +++ b/.publish/ui/components/EmptyState.wrn @@ -0,0 +1 @@ +component EmptyState { props { icon = "◇" title = "Nothing here yet" description = "" actionLabel = "" actionHref = "#" } view {
{icon}

{title}

{description}

{actionLabel}
} } diff --git a/.publish/ui/components/ErrorState.wrn b/.publish/ui/components/ErrorState.wrn new file mode 100644 index 00000000..ff3c12e1 --- /dev/null +++ b/.publish/ui/components/ErrorState.wrn @@ -0,0 +1 @@ +component ErrorState { props { code = "500" title = "Something went wrong" description = "Please try again." actionLabel = "Try again" actionHref = "/" } view {
{code}

{title}

{description}

{actionLabel}
} } diff --git a/.publish/ui/components/FeatureCard.wrn b/.publish/ui/components/FeatureCard.wrn new file mode 100644 index 00000000..fd33286c --- /dev/null +++ b/.publish/ui/components/FeatureCard.wrn @@ -0,0 +1 @@ +component FeatureCard { props { icon = "✦" title = "Feature" description = "" href = "" } view {
{icon}

{title}

{description}

Learn more →
} } diff --git a/.publish/ui/components/FeatureGrid.wrn b/.publish/ui/components/FeatureGrid.wrn new file mode 100644 index 00000000..a660073c --- /dev/null +++ b/.publish/ui/components/FeatureGrid.wrn @@ -0,0 +1 @@ +component FeatureGrid { props { columns = 3 className = "" } view {
} } diff --git a/.publish/ui/components/FileUpload.wrn b/.publish/ui/components/FileUpload.wrn new file mode 100644 index 00000000..f65c5e5b --- /dev/null +++ b/.publish/ui/components/FileUpload.wrn @@ -0,0 +1 @@ +component FileUpload { props { id = "file" name = "file" label = "Upload file" accept = "" multiple = false help = "Drag and drop or browse" } view { } } diff --git a/.publish/ui/components/FormErrorSummary.wrn b/.publish/ui/components/FormErrorSummary.wrn new file mode 100644 index 00000000..5538bcb4 --- /dev/null +++ b/.publish/ui/components/FormErrorSummary.wrn @@ -0,0 +1 @@ +component FormErrorSummary { props { title = "Please fix the following" visible = true } view { } } diff --git a/.publish/ui/components/FormField.wrn b/.publish/ui/components/FormField.wrn new file mode 100644 index 00000000..0500b8e7 --- /dev/null +++ b/.publish/ui/components/FormField.wrn @@ -0,0 +1 @@ +component FormField { props { label = "Field" help = "" error = "" required = false } view {
{label}*

{help}

} } diff --git a/.publish/ui/components/Hero.wrn b/.publish/ui/components/Hero.wrn new file mode 100644 index 00000000..7116d775 --- /dev/null +++ b/.publish/ui/components/Hero.wrn @@ -0,0 +1 @@ +component Hero { props { eyebrow = "" title = "Build faster with WRNexusJS" highlight = "" description = "" primaryLabel = "Get started" primaryHref = "#" secondaryLabel = "Learn more" secondaryHref = "#" align = "center" } view {

{title} {highlight}

{description}

} } diff --git a/.publish/ui/components/IconButton.wrn b/.publish/ui/components/IconButton.wrn new file mode 100644 index 00000000..af222dd9 --- /dev/null +++ b/.publish/ui/components/IconButton.wrn @@ -0,0 +1,4 @@ +component IconButton { + props { label = "Action" icon = "•" variant = "ghost" disabled = false } + view { } +} diff --git a/.publish/ui/components/Inline.wrn b/.publish/ui/components/Inline.wrn new file mode 100644 index 00000000..36184c48 --- /dev/null +++ b/.publish/ui/components/Inline.wrn @@ -0,0 +1 @@ +component Inline { props { gap = "4" className = "" } view {
} } diff --git a/.publish/ui/components/LegalDocumentLayout.wrn b/.publish/ui/components/LegalDocumentLayout.wrn new file mode 100644 index 00000000..850d3cda --- /dev/null +++ b/.publish/ui/components/LegalDocumentLayout.wrn @@ -0,0 +1 @@ +component LegalDocumentLayout { props { title = "Legal document" effectiveDate = "" updatedDate = "" } view {

{title}

Effective: {effectiveDate}Updated: {updatedDate}
} } diff --git a/.publish/ui/components/Link.wrn b/.publish/ui/components/Link.wrn new file mode 100644 index 00000000..a5d42625 --- /dev/null +++ b/.publish/ui/components/Link.wrn @@ -0,0 +1 @@ +component Link { props { href = "#" label = "Link" external = false className = "" } view { {label} } } diff --git a/.publish/ui/components/LogoCloud.wrn b/.publish/ui/components/LogoCloud.wrn new file mode 100644 index 00000000..4f640904 --- /dev/null +++ b/.publish/ui/components/LogoCloud.wrn @@ -0,0 +1 @@ +component LogoCloud { props { title = "Trusted by modern teams" } view {

{title}

} } diff --git a/.publish/ui/components/Modal.wrn b/.publish/ui/components/Modal.wrn new file mode 100644 index 00000000..44f99872 --- /dev/null +++ b/.publish/ui/components/Modal.wrn @@ -0,0 +1 @@ +component Modal { props { title = "Dialog" description = "" open = false size = "md" closeLabel = "Close" } state visible = open view { } } diff --git a/.publish/ui/components/NumberInput.wrn b/.publish/ui/components/NumberInput.wrn new file mode 100644 index 00000000..8c21268a --- /dev/null +++ b/.publish/ui/components/NumberInput.wrn @@ -0,0 +1,11 @@ +component NumberInput { + props { id = "" name = "" label = "Number" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/OtpInput.wrn b/.publish/ui/components/OtpInput.wrn new file mode 100644 index 00000000..6a4aeb78 --- /dev/null +++ b/.publish/ui/components/OtpInput.wrn @@ -0,0 +1 @@ +component OtpInput { props { name = "otp" length = 6 label = "Verification code" } view {
{label}
} } diff --git a/.publish/ui/components/PageShell.wrn b/.publish/ui/components/PageShell.wrn new file mode 100644 index 00000000..28a6ec31 --- /dev/null +++ b/.publish/ui/components/PageShell.wrn @@ -0,0 +1 @@ +component PageShell { props { className = "" } view {
} } diff --git a/.publish/ui/components/Pagination.wrn b/.publish/ui/components/Pagination.wrn new file mode 100644 index 00000000..56fc5563 --- /dev/null +++ b/.publish/ui/components/Pagination.wrn @@ -0,0 +1 @@ +component Pagination { props { page = 1 totalPages = 1 previousHref = "#" nextHref = "#" } view { } } diff --git a/.publish/ui/components/PasswordInput.wrn b/.publish/ui/components/PasswordInput.wrn new file mode 100644 index 00000000..3c9f401a --- /dev/null +++ b/.publish/ui/components/PasswordInput.wrn @@ -0,0 +1,11 @@ +component PasswordInput { + props { id = "" name = "" label = "Password" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/PhoneInput.wrn b/.publish/ui/components/PhoneInput.wrn new file mode 100644 index 00000000..accd7386 --- /dev/null +++ b/.publish/ui/components/PhoneInput.wrn @@ -0,0 +1,11 @@ +component PhoneInput { + props { id = "" name = "" label = "Phone" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/PricingPlanCard.wrn b/.publish/ui/components/PricingPlanCard.wrn new file mode 100644 index 00000000..1e583db9 --- /dev/null +++ b/.publish/ui/components/PricingPlanCard.wrn @@ -0,0 +1 @@ +component PricingPlanCard { props { name = "Starter" description = "" price = "₹0" period = "/month" featured = false ctaLabel = "Choose plan" ctaHref = "#" } view {

{name}

{description}

{price}{period}
{ctaLabel}
} } diff --git a/.publish/ui/components/ProgressBar.wrn b/.publish/ui/components/ProgressBar.wrn new file mode 100644 index 00000000..e64fd37c --- /dev/null +++ b/.publish/ui/components/ProgressBar.wrn @@ -0,0 +1 @@ +component ProgressBar { props { value = 0 max = 100 label = "Progress" showValue = true } view {
{label}{value}%
} } diff --git a/.publish/ui/components/PublicFooter.wrn b/.publish/ui/components/PublicFooter.wrn new file mode 100644 index 00000000..a98e8da6 --- /dev/null +++ b/.publish/ui/components/PublicFooter.wrn @@ -0,0 +1 @@ +component PublicFooter { props { brand = "WRNexusJS" description = "SSR-first, Bun-native full-stack framework." copyright = "© 2026 WorkRoot Workspace" } view { } } diff --git a/.publish/ui/components/PublicHeader.wrn b/.publish/ui/components/PublicHeader.wrn new file mode 100644 index 00000000..03d2244b --- /dev/null +++ b/.publish/ui/components/PublicHeader.wrn @@ -0,0 +1 @@ +component PublicHeader { props { brand = "WRNexusJS" homeHref = "/" signInHref = "/signin" ctaHref = "/start" ctaLabel = "Get started" } state mobileOpen = false view {
} } diff --git a/.publish/ui/components/RadioGroup.wrn b/.publish/ui/components/RadioGroup.wrn new file mode 100644 index 00000000..0b47c681 --- /dev/null +++ b/.publish/ui/components/RadioGroup.wrn @@ -0,0 +1 @@ +component RadioGroup { props { label = "Choose one" name = "choice" } view {
{label}
} } diff --git a/.publish/ui/components/SchedulePicker.wrn b/.publish/ui/components/SchedulePicker.wrn new file mode 100644 index 00000000..0e2524c3 --- /dev/null +++ b/.publish/ui/components/SchedulePicker.wrn @@ -0,0 +1 @@ +component SchedulePicker { props { label = "Schedule" } view {
{label}
} } diff --git a/.publish/ui/components/SearchInput.wrn b/.publish/ui/components/SearchInput.wrn new file mode 100644 index 00000000..68db6c7d --- /dev/null +++ b/.publish/ui/components/SearchInput.wrn @@ -0,0 +1,11 @@ +component SearchInput { + props { id = "" name = "" label = "Search" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/Section.wrn b/.publish/ui/components/Section.wrn new file mode 100644 index 00000000..979096d9 --- /dev/null +++ b/.publish/ui/components/Section.wrn @@ -0,0 +1,6 @@ +component Section { + props { id = "" size = "default" surface = "default" className = "" } + view { +
+ } +} diff --git a/.publish/ui/components/SectionHeader.wrn b/.publish/ui/components/SectionHeader.wrn new file mode 100644 index 00000000..1f75bdb7 --- /dev/null +++ b/.publish/ui/components/SectionHeader.wrn @@ -0,0 +1 @@ +component SectionHeader { props { eyebrow = "" title = "Section title" description = "" align = "left" } view {

{eyebrow}

{title}

{description}

} } diff --git a/.publish/ui/components/StatCard.wrn b/.publish/ui/components/StatCard.wrn new file mode 100644 index 00000000..c68cc41e --- /dev/null +++ b/.publish/ui/components/StatCard.wrn @@ -0,0 +1 @@ +component StatCard { props { label = "Metric" value = "0" change = "" trend = "neutral" } view {

{label}

{value}

{trend === 'up' ? '↑' : trend === 'down' ? '↓' : ''} {change}
} } diff --git a/.publish/ui/components/StatusBadge.wrn b/.publish/ui/components/StatusBadge.wrn new file mode 100644 index 00000000..aea0c8d2 --- /dev/null +++ b/.publish/ui/components/StatusBadge.wrn @@ -0,0 +1 @@ +component StatusBadge { props { status = "operational" } view { {status} } } diff --git a/.publish/ui/components/Tabs.wrn b/.publish/ui/components/Tabs.wrn new file mode 100644 index 00000000..9197f888 --- /dev/null +++ b/.publish/ui/components/Tabs.wrn @@ -0,0 +1 @@ +component Tabs { props { active = "first" } state current = active view {
} } diff --git a/.publish/ui/components/TestimonialCard.wrn b/.publish/ui/components/TestimonialCard.wrn new file mode 100644 index 00000000..9ecafd0b --- /dev/null +++ b/.publish/ui/components/TestimonialCard.wrn @@ -0,0 +1 @@ +component TestimonialCard { props { quote = "Great product." name = "Customer" role = "" company = "" avatar = "" } view {
“{quote}”
{name}
{role} · {company}
} } diff --git a/.publish/ui/components/TextInput.wrn b/.publish/ui/components/TextInput.wrn new file mode 100644 index 00000000..16cf6adf --- /dev/null +++ b/.publish/ui/components/TextInput.wrn @@ -0,0 +1,11 @@ +component TextInput { + props { id = "" name = "" label = "Text" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/TimeInput.wrn b/.publish/ui/components/TimeInput.wrn new file mode 100644 index 00000000..744b73c4 --- /dev/null +++ b/.publish/ui/components/TimeInput.wrn @@ -0,0 +1,11 @@ +component TimeInput { + props { id = "" name = "" label = "Time" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
+ + +

{help}

+ +
+ } +} diff --git a/.publish/ui/components/Timeline.wrn b/.publish/ui/components/Timeline.wrn new file mode 100644 index 00000000..c53511da --- /dev/null +++ b/.publish/ui/components/Timeline.wrn @@ -0,0 +1 @@ +component Timeline { props { title = "Timeline" } view {

{title}

} } diff --git a/.publish/ui/components/TimelineItem.wrn b/.publish/ui/components/TimelineItem.wrn new file mode 100644 index 00000000..60ae1571 --- /dev/null +++ b/.publish/ui/components/TimelineItem.wrn @@ -0,0 +1 @@ +component TimelineItem { props { title = "Event" date = "" description = "" status = "default" } view {
  • {title}

    {description}

  • } } diff --git a/.publish/ui/components/TimezoneSelector.wrn b/.publish/ui/components/TimezoneSelector.wrn new file mode 100644 index 00000000..95292cab --- /dev/null +++ b/.publish/ui/components/TimezoneSelector.wrn @@ -0,0 +1 @@ +component TimezoneSelector { props { id = "timezone" name = "timezone" label = "Timezone" } view { } } diff --git a/.publish/ui/components/Toast.wrn b/.publish/ui/components/Toast.wrn new file mode 100644 index 00000000..7fc6fec1 --- /dev/null +++ b/.publish/ui/components/Toast.wrn @@ -0,0 +1 @@ +component Toast { props { title = "Saved" description = "" variant = "success" duration = 5000 } state visible = true view {
    {variant === 'success' ? '✓' : variant === 'danger' ? '!' : 'i'}

    {title}

    {description}

    } } diff --git a/.publish/ui/components/UrlInput.wrn b/.publish/ui/components/UrlInput.wrn new file mode 100644 index 00000000..5b50c4d9 --- /dev/null +++ b/.publish/ui/components/UrlInput.wrn @@ -0,0 +1,11 @@ +component UrlInput { + props { id = "" name = "" label = "Url" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + view { +
    + + +

    {help}

    + +
    + } +} diff --git a/.publish/ui/components/VisuallyHidden.wrn b/.publish/ui/components/VisuallyHidden.wrn new file mode 100644 index 00000000..1023aa08 --- /dev/null +++ b/.publish/ui/components/VisuallyHidden.wrn @@ -0,0 +1 @@ +component VisuallyHidden { props { className = "" } view {
    } } diff --git a/.publish/ui/components/alert.wrn b/.publish/ui/components/alert.wrn index 856fb9d1..62da0ea7 100644 --- a/.publish/ui/components/alert.wrn +++ b/.publish/ui/components/alert.wrn @@ -1,16 +1 @@ -// Callout box. variant: info | success | danger | warning. -// Optional `title`; body from `message` prop or the slot. -component Alert { - props { - variant = "info" - title = "" - message = "" - class = "" - } - view { - - } -} +component Alert { props { title = "Notice" description = "" variant = "info" dismissible = false } state visible = true view { } } diff --git a/.publish/ui/components/avatar.wrn b/.publish/ui/components/avatar.wrn index 360a4e20..31d858b6 100644 --- a/.publish/ui/components/avatar.wrn +++ b/.publish/ui/components/avatar.wrn @@ -1,11 +1 @@ -// Rounded user image. -component Avatar { - props { - src = "" - alt = "" - class = "" - } - view { - {alt} - } -} +component Avatar { props { src = "" alt = "" initials = "WR" size = "md" } view { {alt} } } diff --git a/.publish/ui/components/badge.wrn b/.publish/ui/components/badge.wrn index 62b38a0e..edc169f7 100644 --- a/.publish/ui/components/badge.wrn +++ b/.publish/ui/components/badge.wrn @@ -1,11 +1 @@ -// Small status label. variant: default | primary | success | danger | warning. -component Badge { - props { - label = "" - variant = "default" - class = "" - } - view { - {label} - } -} +component Badge { props { label = "Badge" variant = "neutral" } view { {label} } } diff --git a/.publish/ui/components/button.wrn b/.publish/ui/components/button.wrn index a74a2001..8a7187e9 100644 --- a/.publish/ui/components/button.wrn +++ b/.publish/ui/components/button.wrn @@ -1,14 +1,9 @@ -// Button. variant: default | primary | danger | ghost — size: sm | md | lg. -// Use the `label` prop, or put custom content in the slot. component Button { - props { - label = "Button" - variant = "default" - size = "md" - type = "button" - class = "" - } + props { label = "Button" type = "button" variant = "primary" size = "md" disabled = false loading = false icon = "" className = "" } view { - + } } diff --git a/.publish/ui/components/card.wrn b/.publish/ui/components/card.wrn index 1178d8f3..3b0ce315 100644 --- a/.publish/ui/components/card.wrn +++ b/.publish/ui/components/card.wrn @@ -1,9 +1 @@ -// Surface container with padding, border, and rounded corners. -component Card { - props { - class = "" - } - view { -
    - } -} +component Card { props { variant = "default" padding = "md" interactive = false className = "" } view {
    } } diff --git a/.publish/ui/components/checkbox.wrn b/.publish/ui/components/checkbox.wrn index 30b6ea12..034c0b2c 100644 --- a/.publish/ui/components/checkbox.wrn +++ b/.publish/ui/components/checkbox.wrn @@ -1,14 +1 @@ -// Checkbox with an inline label. -component Checkbox { - props { - name = "" - label = "" - class = "" - } - view { - - } -} +component Checkbox { props { id = "" name = "" label = "Checkbox" description = "" checked = false disabled = false } view { } } diff --git a/.publish/ui/components/container.wrn b/.publish/ui/components/container.wrn index aa08bd02..fbc3a023 100644 --- a/.publish/ui/components/container.wrn +++ b/.publish/ui/components/container.wrn @@ -1,9 +1,6 @@ -// Centered, max-width page container. Children go in the . component Container { - props { - class = "" - } + props { size = "default" className = "" } view { -
    +
    } } diff --git a/.publish/ui/components/divider.wrn b/.publish/ui/components/divider.wrn index 524ecabc..be692b33 100644 --- a/.publish/ui/components/divider.wrn +++ b/.publish/ui/components/divider.wrn @@ -1,9 +1 @@ -// Horizontal rule using theme border color. -component Divider { - props { - class = "" - } - view { -
    - } -} +component Divider { props { className = "" } view {
    } } diff --git a/.publish/ui/components/grid.wrn b/.publish/ui/components/grid.wrn index db4deba3..44894974 100644 --- a/.publish/ui/components/grid.wrn +++ b/.publish/ui/components/grid.wrn @@ -1,11 +1 @@ -// Responsive-ish grid: `cols` columns (1–6) with a gap (scale 0–8). -component Grid { - props { - cols = "2" - gap = "4" - class = "" - } - view { -
    - } -} +component Grid { props { gap = "4" className = "" } view {
    } } diff --git a/.publish/ui/components/radio.wrn b/.publish/ui/components/radio.wrn index d437d113..8bd61fbb 100644 --- a/.publish/ui/components/radio.wrn +++ b/.publish/ui/components/radio.wrn @@ -1,15 +1 @@ -// Radio input with an inline label. -component Radio { - props { - name = "" - value = "" - label = "" - class = "" - } - view { - - } -} +component Radio { props { id = "" name = "choice" value = "" label = "Option" description = "" checked = false disabled = false } view { } } diff --git a/.publish/ui/components/select.wrn b/.publish/ui/components/select.wrn index 305ce227..a21e672a 100644 --- a/.publish/ui/components/select.wrn +++ b/.publish/ui/components/select.wrn @@ -1,10 +1 @@ -// Styled native select. Put