release: WRNexusJS 0.2.55

This commit is contained in:
2026-07-19 17:14:12 +05:30
parent 6dbc75c370
commit 12beb6f4ba
199 changed files with 1687 additions and 85 deletions
+6
View File
@@ -0,0 +1,6 @@
component AspectRatio {
props {
class = ""
}
view { <div class="wire-aspect-ratio {class}"><slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component AssetCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--asset {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+6
View File
@@ -0,0 +1,6 @@
component AutoGrid {
props {
class = ""
}
view { <div class="wire-auto-grid {class}"><slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component BackButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--ghost {class}">{label}<slot /></button> }
}
+8
View File
@@ -0,0 +1,8 @@
component BetaBadge {
props {
label = "Beta"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--betabadge {class}">{label}<slot /></span> }
}
+8
View File
@@ -0,0 +1,8 @@
component BodyText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--body wire-text--{align} {class}">{text}<slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component CampaignCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--campaign {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+9
View File
@@ -0,0 +1,9 @@
component ChannelCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--channel {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component Chip {
props {
label = "Chip"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--chip {class}">{label}<slot /></span> }
}
+9
View File
@@ -0,0 +1,9 @@
component ClickableCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--clickable {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+9
View File
@@ -0,0 +1,9 @@
component CloseButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--ghost {class}">{label}<slot /></button> }
}
+8
View File
@@ -0,0 +1,8 @@
component CodeText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--body wire-text--{align} {class}">{text}<slot /></div> }
}
@@ -0,0 +1,8 @@
component ComingSoonBadge {
props {
label = "ComingSoon"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--comingsoonbadge {class}">{label}<slot /></span> }
}
@@ -0,0 +1,9 @@
component ConnectionCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--connection {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+9
View File
@@ -0,0 +1,9 @@
component ContactCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--contact {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+9
View File
@@ -0,0 +1,9 @@
component CopyButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--default {class}">{label}<slot /></button> }
}
+8
View File
@@ -0,0 +1,8 @@
component Counter {
props {
label = "Status"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--counter {class}">{label}<slot /></span> }
}
+9
View File
@@ -0,0 +1,9 @@
component DangerButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--danger {class}">{label}<slot /></button> }
}
@@ -0,0 +1,8 @@
component DisplayHeading {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--display wire-text--{align} {class}">{text}<slot /></div> }
}
@@ -0,0 +1,9 @@
component DownloadButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--default {class}">{label}<slot /></button> }
}
+9
View File
@@ -0,0 +1,9 @@
component ElevatedCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--elevated {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+9
View File
@@ -0,0 +1,9 @@
component ErrorCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--error {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component EyebrowText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--small wire-text--{align} {class}">{text}<slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component Flex {
props {
class = ""
}
view { <div class="wire-flex {class}"><slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component FullBleed {
props {
class = ""
}
view { <div class="wire-full-bleed {class}"><slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component GhostButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--ghost {class}">{label}<slot /></button> }
}
+9
View File
@@ -0,0 +1,9 @@
component GlassCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--glass {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
@@ -0,0 +1,8 @@
component HealthIndicator {
props {
label = "Health"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--healthindicator {class}">{label}<slot /></span> }
}
+9
View File
@@ -0,0 +1,9 @@
component InfoCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--info {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component InlineCode {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--small wire-text--{align} {class}">{text}<slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component InsetPanel {
props {
class = ""
}
view { <div class="wire-inset-panel {class}"><slot /></div> }
}
@@ -0,0 +1,9 @@
component IntegrationCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--integration {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component LeadText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--lead wire-text--{align} {class}">{text}<slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component LinkButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--ghost {class}">{label}<slot /></button> }
}
+8
View File
@@ -0,0 +1,8 @@
component MetricText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--display wire-text--{align} {class}">{text}<slot /></div> }
}
+8
View File
@@ -0,0 +1,8 @@
component MutedText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--small wire-text--{align} wire-muted {class}">{text}<slot /></div> }
}
@@ -0,0 +1,6 @@
component NarrowContainer {
props {
class = ""
}
view { <div class="wire-container wire-container--narrow {class}"><slot /></div> }
}
+8
View File
@@ -0,0 +1,8 @@
component NewBadge {
props {
label = "New"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--newbadge {class}">{label}<slot /></span> }
}
@@ -0,0 +1,9 @@
component NotificationCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--notification {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
@@ -0,0 +1,8 @@
component NotificationDot {
props {
label = "Notification"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--notificationdot {class}">{label}<slot /></span> }
}
@@ -0,0 +1,8 @@
component OnlineIndicator {
props {
label = "Online"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--onlineindicator {class}">{label}<slot /></span> }
}
+9
View File
@@ -0,0 +1,9 @@
component OutlinedCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--outlined {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component PageHeading {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--heading wire-text--{align} {class}">{text}<slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component Panel {
props {
class = ""
}
view { <div class="wire-panel {class}"><slot /></div> }
}
+8
View File
@@ -0,0 +1,8 @@
component Pill {
props {
label = "Pill"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--pill {class}">{label}<slot /></span> }
}
+8
View File
@@ -0,0 +1,8 @@
component PreviewBadge {
props {
label = "Preview"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--previewbadge {class}">{label}<slot /></span> }
}
+8
View File
@@ -0,0 +1,8 @@
component PriceText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--display wire-text--{align} {class}">{text}<slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component PrimaryButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--primary {class}">{label}<slot /></button> }
}
@@ -0,0 +1,8 @@
component ProductStatusBadge {
props {
label = "ProductStatus"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--productstatusbadge {class}">{label}<slot /></span> }
}
+9
View File
@@ -0,0 +1,9 @@
component ProjectCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--project {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component QuoteText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--lead wire-text--{align} {class}">{text}<slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component ScrollArea {
props {
class = ""
}
view { <div class="wire-scroll-area {class}"><slot /></div> }
}
@@ -0,0 +1,9 @@
component SecondaryButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--default {class}">{label}<slot /></button> }
}
@@ -0,0 +1,8 @@
component SectionHeading {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--heading wire-text--{align} {class}">{text}<slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component ShareButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--default {class}">{label}<slot /></button> }
}
+6
View File
@@ -0,0 +1,6 @@
component SidebarLayout {
props {
class = ""
}
view { <div class="wire-sidebar-layout {class}"><slot /></div> }
}
+8
View File
@@ -0,0 +1,8 @@
component SmallText {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--small wire-text--{align} {class}">{text}<slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component SplitLayout {
props {
class = ""
}
view { <div class="wire-split-layout {class}"><slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component Sticky {
props {
class = ""
}
view { <div class="wire-sticky {class}"><slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component StickyLayout {
props {
class = ""
}
view { <div class="wire-sticky-layout {class}"><slot /></div> }
}
@@ -0,0 +1,8 @@
component SubsectionHeading {
props {
text = ""
align = "start"
class = ""
}
view { <div class="wire-type wire-type--heading wire-text--{align} {class}">{text}<slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component SuccessCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--success {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+6
View File
@@ -0,0 +1,6 @@
component Surface {
props {
class = ""
}
view { <div class="wire-surface {class}"><slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component TemplateCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--template {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
@@ -0,0 +1,9 @@
component TertiaryButton {
props {
label = "Action"
type = "button"
disabled = false
class = ""
}
view { <button type="{type}" disabled="{disabled}" class="wire-btn wire-btn--ghost {class}">{label}<slot /></button> }
}
+9
View File
@@ -0,0 +1,9 @@
component UserCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--user {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+8
View File
@@ -0,0 +1,8 @@
component VerifiedBadge {
props {
label = "Verified"
variant = "default"
class = ""
}
view { <span class="wire-badge wire-badge--{variant} wire-catalog-badge wire-catalog-badge--verifiedbadge {class}">{label}<slot /></span> }
}
+9
View File
@@ -0,0 +1,9 @@
component WarningCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--warning {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+6
View File
@@ -0,0 +1,6 @@
component Well {
props {
class = ""
}
view { <div class="wire-well {class}"><slot /></div> }
}
+6
View File
@@ -0,0 +1,6 @@
component WideContainer {
props {
class = ""
}
view { <div class="wire-container wire-container--wide {class}"><slot /></div> }
}
+9
View File
@@ -0,0 +1,9 @@
component WorkspaceCard {
props {
title = ""
description = ""
href = ""
class = ""
}
view { <article class="wire-card wire-catalog-card wire-catalog-card--workspace {class}"><h3 data-show="title">{title}</h3><p data-show="description">{description}</p><slot /><a data-show="href" href="{href}" class="wire-catalog-card__link"><span class="wire-visually-hidden">Open {title}</span></a></article> }
}
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/ui",
"version": "0.2.54",
"version": "0.2.55",
"type": "module",
"description": "@wrnexus/ui — part of the WrNexus framework.",
"license": "MIT",
@@ -23,7 +23,7 @@
"./ui.css": "./ui.css"
},
"dependencies": {
"@wrnexus/core": "^0.2.54"
"@wrnexus/core": "^0.2.55"
},
"files": [
"dist",
+146
View File
@@ -952,3 +952,149 @@
flex: 1 1 100%;
}
}
/* --- Expanded foundation catalog ---------------------------------------- */
.wire-container--narrow {
max-width: 44rem;
}
.wire-container--wide {
max-width: 90rem;
}
.wire-full-bleed {
width: 100vw;
margin-inline: calc(50% - 50vw);
}
.wire-flex {
display: flex;
flex-wrap: wrap;
gap: 1rem;
min-width: 0;
}
.wire-auto-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
gap: 1rem;
}
.wire-split-layout {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: center;
gap: clamp(1.5rem, 5vw, 5rem);
}
.wire-sidebar-layout {
display: grid;
grid-template-columns: minmax(13rem, 18rem) minmax(0, 1fr);
gap: clamp(1rem, 4vw, 3rem);
}
.wire-sticky-layout {
position: sticky;
top: 1rem;
align-self: start;
}
.wire-aspect-ratio {
aspect-ratio: 16 / 9;
overflow: hidden;
}
.wire-panel,
.wire-surface,
.wire-well,
.wire-inset-panel {
min-width: 0;
padding: clamp(1rem, 3vw, 1.5rem);
color: var(--wire-color-text);
border: 1px solid var(--wire-color-border);
border-radius: var(--wire-radius);
}
.wire-panel,
.wire-surface {
background: var(--wire-color-surface);
box-shadow: var(--wire-shadow-1);
}
.wire-well,
.wire-inset-panel {
background: var(--wire-color-surface-2);
box-shadow: inset 0 1px 2px rgb(0 0 0 / 0.06);
}
.wire-scroll-area {
max-width: 100%;
overflow: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
}
.wire-sticky {
position: sticky;
top: 1rem;
z-index: 10;
}
.wire-muted {
color: var(--wire-color-muted);
}
.wire-catalog-card {
position: relative;
display: grid;
gap: 0.75rem;
min-width: 0;
padding: clamp(1rem, 3vw, 1.5rem);
}
.wire-catalog-card h3,
.wire-catalog-card p {
margin: 0;
}
.wire-catalog-card p {
color: var(--wire-color-muted);
line-height: 1.6;
}
.wire-catalog-card__link {
position: absolute;
inset: 0;
border-radius: inherit;
}
.wire-catalog-card__link:focus-visible {
outline: 2px solid var(--wire-color-primary);
outline-offset: 3px;
}
.wire-catalog-card--glass {
background: color-mix(in srgb, var(--wire-color-surface) 80%, transparent);
backdrop-filter: blur(12px);
}
.wire-catalog-card--outlined {
box-shadow: none;
}
.wire-catalog-card--elevated {
box-shadow: 0 1rem 3rem rgb(0 0 0 / 0.14);
}
.wire-catalog-card--error {
border-color: var(--wire-color-danger);
}
.wire-catalog-card--success {
border-color: var(--wire-color-success);
}
.wire-catalog-card--warning {
border-color: var(--wire-color-warning);
}
.wire-catalog-badge {
min-height: 1.5rem;
}
.wire-catalog-badge--notificationdot,
.wire-catalog-badge--onlineindicator,
.wire-catalog-badge--healthindicator {
min-width: 0.65rem;
width: 0.65rem;
height: 0.65rem;
min-height: 0;
padding: 0;
overflow: hidden;
color: transparent;
border-radius: 999px;
background: var(--wire-color-success);
}
@media (max-width: 768px) {
.wire-split-layout,
.wire-sidebar-layout {
grid-template-columns: 1fr;
}
.wire-sticky-layout {
position: static;
}
}