release: WRNexusJS 0.2.49

This commit is contained in:
2026-07-18 19:33:57 +05:30
parent aa6badbd31
commit 9ca1cc6b0f
61 changed files with 252 additions and 93 deletions
+30 -1
View File
@@ -1 +1,30 @@
component Accordion { props { title = "Question" open = false } state expanded = open view { <div class="border-b border-slate-200 dark:border-slate-800"><button type="button" class="flex w-full items-center justify-between gap-4 py-5 text-left font-semibold" aria-expanded="{expanded}" @click="expanded = !expanded"><span>{title}</span><span class="text-xl transition-transform {expanded ? 'rotate-45' : ''}">+</span></button><div data-show="expanded" class="pb-5 text-slate-600 dark:text-slate-300"><slot /></div></div> } }
component Accordion {
props {
title = "Question"
open = false
}
state expanded = open
view {
<div class="border-b border-slate-200 dark:border-slate-800" >
<button
type="button"
class="flex w-full items-center justify-between gap-4 py-5 text-left font-semibold"
aria-expanded="{expanded}"
@click="expanded = !expanded"
>
<span >
{title}
</span>
<span class="text-xl transition-transform {expanded ? 'rotate-45' : ''}">+</span>
</button>
<div
data-show="expanded"
class="pb-5 text-slate-600 dark:text-slate-300"
>
<slot />
</div>
</div>
}
}
+42 -1
View File
@@ -1 +1,42 @@
component Alert { props { title = "Notice" description = "" variant = "info" dismissible = false } state visible = true view { <div data-show="visible" role="alert" class="flex items-start gap-3 rounded-2xl border p-4 {variant === 'success' ? 'border-emerald-200 bg-emerald-50 text-emerald-900 dark:border-emerald-900 dark:bg-emerald-950/40 dark:text-emerald-200' : variant === 'warning' ? 'border-amber-200 bg-amber-50 text-amber-900 dark:border-amber-900 dark:bg-amber-950/40 dark:text-amber-200' : variant === 'danger' ? 'border-red-200 bg-red-50 text-red-900 dark:border-red-900 dark:bg-red-950/40 dark:text-red-200' : 'border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-900 dark:bg-blue-950/40 dark:text-blue-200'}"><div class="min-w-0 flex-1"><h3 class="font-semibold">{title}</h3><p data-show="description" class="mt-1 text-sm opacity-80">{description}</p><div class="mt-2"><slot /></div></div><button data-show="dismissible" type="button" aria-label="Dismiss" @click="visible = false" class="rounded-lg p-1 hover:bg-black/5">×</button></div> } }
component Alert {
props {
title = "Notice"
description = ""
variant = "info"
dismissible = false
}
state visible = true
view {
<div
data-show="visible"
role="alert"
class="flex items-start gap-3 rounded-2xl border p-4 {variant === 'success' ? 'border-emerald-200 bg-emerald-50 text-emerald-900 dark:border-emerald-900 dark:bg-emerald-950/40 dark:text-emerald-200' : variant === 'warning' ? 'border-amber-200 bg-amber-50 text-amber-900 dark:border-amber-900 dark:bg-amber-950/40 dark:text-amber-200' : variant === 'danger' ? 'border-red-200 bg-red-50 text-red-900 dark:border-red-900 dark:bg-red-950/40 dark:text-red-200' : 'border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-900 dark:bg-blue-950/40 dark:text-blue-200'}"
>
<div class="min-w-0 flex-1" >
<h3 class="font-semibold" >
{title}
</h3>
<p
data-show="description"
class="mt-1 text-sm opacity-80"
>
{description}
</p>
<div class="mt-2" >
<slot />
</div>
</div>
<button
data-show="dismissible"
type="button"
aria-label="Dismiss"
@click="visible = false"
class="rounded-lg p-1 hover:bg-black/5"
>
×
</button>
</div>
}
}