diff --git a/.changeset/bright-icons-route.md b/.changeset/bright-icons-route.md new file mode 100644 index 0000000..b05cff9 --- /dev/null +++ b/.changeset/bright-icons-route.md @@ -0,0 +1,6 @@ +--- +"@webaseui/svelte": patch +--- + +Expand the public Lucide icon name set used by the documentation navigation, +component contracts, status summaries, and theme controls. diff --git a/.gitignore b/.gitignore index 228fbbe..95660c5 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ coverage/ .env .env.* !.env.example +docs/UI/ diff --git a/apps/docs/src/App.svelte b/apps/docs/src/App.svelte index d8ec2d8..3e7687b 100644 --- a/apps/docs/src/App.svelte +++ b/apps/docs/src/App.svelte @@ -1,69 +1,39 @@ + {pageTitle} - - -
-
-
-

Build witha visible contract.

-

Accessible Svelte 5 components, named tokens, and a public contract designed to move between products.

-
- document.querySelector('#components')?.scrollIntoView({ behavior: scrollBehavior() })} /> - -
-
- -
-

Interactive component specimen

-
- -
- - -
- {#snippet footer()} - Three browser engines - - {/snippet} -
-
- -
- -
- -
- (heroSaved = !heroSaved)} /> - - -
-
-
- -
-
-
Components
28
-
Runtime
Svelte 5
-
Engines
3
-
License
MIT
-
-
- -
-
- -

Tokens carry the identity.

-

Semantic variables keep color, type, focus, and motion coherent across every framework surface.

-
- -
- - -
- {#each tokens as token} -
- -
- {token.label} - {token.token} -
-
- {/each} -
-
-
- -
-
-

Reference Desk

-

Search, inspect, and exercise every public component against the versioned API contract.

- -
- -
- - -
- -
- - - {#key selectedComponent.name} -
-
-
-

{selectedComponent.group}

-

{selectedComponent.name}

-

- {#each inlineParts(selectedComponent.summary) as part} - {#if part.code}{part.text}{:else}{part.text}{/if} - {/each} -

-
- v{packageVersion} -
- -
-
-

Live specimen

- Package root import -
-
- -
-
- -
-
-
-

Public contract

- {selectedComponent.fields.length} fields -
-
- {#each selectedComponent.fields as field} -
-
{field.label}
-
- {#each inlineParts(field.value) as part} - {#if part.code}{part.text}{:else}{part.text}{/if} - {/each} -
-
- {/each} -
-
- -
-
-

Usage

- -
- -
{`import { ${selectedComponent.name} } from '@webaseui/svelte';\n\n${selectedComponent.example}`}
-
-
-
- {/key} -
-
- -
-
-

Install the boundary.

-

Tokens and Svelte components are versioned independently, then verified together in a clean consumer.

-
- -
-
-
- Packages - -
- -
{installCommand}
-

@webaseui/svelte v{packageVersion}

-
- -
-
- Import - -
- -
{importCode}
-
- - -
-
- - - (searchOpen = false)} - onkeydown={(event) => { - if (event.key !== 'Escape') return; - event.preventDefault(); - closeSearch(); - }} - onclick={(event) => { if (event.target === searchDialog) closeSearch(); }} -> -
-
-
-

Global search

-

Search the public contract

-
- -
- - - -
-

{searchQuery ? `${searchResults.length} matches` : 'Browse components'}

- {#if searchResults.length > 0} -
    - {#each searchResults as component} -
  • - -
  • - {/each} -
- {:else} -
- - No contract found - Try a component name, prop, binding, or behavior. -
- {/if} -
-
-
+ + diff --git a/apps/docs/src/app.css b/apps/docs/src/app.css index 3d41dcd..1bc7353 100644 --- a/apps/docs/src/app.css +++ b/apps/docs/src/app.css @@ -56,8 +56,8 @@ pre:focus-visible { } ::selection { - color: var(--paper); - background: var(--brand); + color: var(--ink); + background: var(--surface); } .visually-hidden { @@ -305,6 +305,10 @@ main { overflow: clip; } margin-top: 30px; } +.hero-actions .ds-link-action { + min-height: var(--webase-component-button-height); +} + .hero-stage { position: relative; min-width: 0; @@ -689,6 +693,7 @@ code { letter-spacing: .12em; text-transform: uppercase; } +.sidebar-group-trigger { display: flex; width: 100%; min-height: 32px; align-items: center; justify-content: space-between; padding: 0; border: 0; color: var(--ink-muted); background: transparent; cursor: pointer; font-family: var(--mono); font-size: 8px; letter-spacing: .12em; text-align: left; text-transform: uppercase; } .sidebar-group > div { display: grid; gap: 2px; } @@ -1219,7 +1224,7 @@ footer nav a { text-underline-offset: 4px; } .stage-alert { animation: layer-in 720ms var(--ease-out) 460ms both; } .stage-actions { animation: layer-in 720ms var(--ease-out) 580ms both; } - [data-reveal] { + [data-reveal].reveal-pending { opacity: 0; transform: translateY(34px); transition: opacity 760ms var(--ease-out), transform 760ms var(--ease-out); @@ -1425,3 +1430,372 @@ footer nav a { text-underline-offset: 4px; } .install-primary, .install-import { border: 1px solid CanvasText; } } + +/* Prototype pass: the docs surface uses a quiet editorial grid with a single navy signal. */ +.brand-logo { display: block; } +.brand-mark { + display: grid; + width: 34px; + height: 34px; + place-items: center; + border: 1px solid var(--brand); + color: var(--paper); + background: var(--brand); + font-family: var(--display); + font-size: 23px; + line-height: 1; +} +.brand-name { + margin-left: 10px; + color: var(--ink); + font-family: var(--sans); + font-size: 14px; + font-weight: 650; + letter-spacing: -.02em; +} +.primary-nav a.active { color: var(--brand); } +.primary-nav a.active::after { transform: scaleX(1); transform-origin: left; } +.theme-sun { color: var(--brand); } +.theme-moon { color: var(--ink-muted); } +.header-actions .ds-switch-copy { display: none; } +.landing-page { border-bottom: 1px solid var(--hairline-strong); } +.hero { + min-height: min(620px, calc(100dvh - var(--header-height))); + grid-template-columns: repeat(2, minmax(0, 1fr)); + padding-top: 24px; + padding-bottom: 56px; +} +.hero h1 { max-width: 700px; font-size: clamp(64px, 7vw, 112px); letter-spacing: -.075em; line-height: .84; } +.hero h1 em { color: var(--ink); font-style: normal; } +.hero-copy { max-width: 490px; font-size: 17px; } +.hero-actions { margin-top: 28px; } +.hero-stage { min-height: 510px; } +.hero-stage::before, +.hero-stage::after { display: none; } +.reference-desk { + position: absolute; + inset: 7% 3% 3% 8%; + display: grid; + grid-template-rows: auto auto 1fr auto; + border: 1px solid var(--hairline-strong); + background: var(--surface); + box-shadow: 14px 14px 0 color-mix(in srgb, var(--brand) 12%, transparent); + transform: rotate(1.2deg); +} +.desk-header, +.desk-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; } +.desk-header { border-bottom: 1px solid var(--hairline); } +.desk-header strong { font-family: var(--display); font-size: 25px; font-weight: 500; letter-spacing: -.03em; } +.desk-header > div { display: flex; gap: 13px; color: var(--brand); } +.desk-tabs { padding: 0 22px; border-bottom: 1px solid var(--hairline); } +.desk-tabs .ds-tabs { width: 100%; } +.desk-tabs .ds-tab-list { justify-content: space-between; border-bottom: 0; } +.desk-tabs .ds-tab-list button { min-width: 28%; } +.desk-tabs .ds-tab-panel { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; } +.desk-body { display: grid; align-content: center; gap: 16px; padding: 32px 22px; } +.density-line { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; } +.density-line span, +.density-labels, +.desk-footer, +.preview-density span { color: var(--ink-muted); font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; } +.density-line strong { color: var(--brand); font-family: var(--sans); font-size: 12px; font-weight: 600; } +.density-labels { display: flex; justify-content: space-between; margin-top: -10px; font-size: 8px; } +.verified-alert { margin-top: 18px; } +.verified-alert .ds-alert { border-color: color-mix(in srgb, var(--success) 50%, var(--hairline)); } +.desk-footer { border-top: 1px solid var(--hairline); } +.desk-footer span { display: inline-flex; align-items: center; gap: 8px; } +.desk-footer svg { color: var(--brand); } +.desk-footer code { color: var(--ink); font-size: 10px; } +.proof-rail { padding-bottom: 0; } +.proof-rail dl > div { justify-content: flex-start; gap: 12px; } +.proof-rail dl > div > svg { color: var(--brand); flex: 0 0 auto; } +.proof-rail dt { margin-right: auto; } +.proof-rail dd { font-family: var(--sans); font-size: 17px; font-weight: 650; } +.foundation-section, +.install-section { width: min(100%, var(--content-max)); margin: 0 auto; padding: clamp(82px, 9vw, 132px) var(--page-gutter); scroll-margin-top: calc(var(--header-height) + 18px); } +.reference-page { width: min(100%, var(--page-max)); margin: 0 auto; padding: clamp(82px, 9vw, 132px) var(--page-gutter); scroll-margin-top: calc(var(--header-height) + 18px); } +.foundation-section { padding-top: 52px; } +.reference-page { padding-top: 32px; } +.foundation-heading { display: flex; max-width: none; align-items: end; justify-content: space-between; } +.foundation-heading h2 { max-width: 620px; } +.foundation-grid { display: grid; grid-template-columns: 1fr 1.25fr 1fr .7fr; gap: clamp(22px, 3vw, 48px); } +.foundation-group { padding-top: 18px; border-top: 1px solid var(--hairline-strong); } +.foundation-group h3 { margin: 0 0 15px; color: var(--ink-muted); font-family: var(--mono); font-size: 9px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; } +.swatch-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(28px, 1fr)); gap: 7px; } +.swatch-item { display: grid; gap: 8px; } +.swatch-item > span { display: block; min-height: 62px; border: 1px solid color-mix(in srgb, var(--ink) 13%, var(--hairline)); } +.swatch-item code { color: var(--ink-muted); font-size: 9px; } +.reference-page { border-top: 1px solid var(--hairline-strong); } +.reference-breadcrumb { margin-bottom: 26px; } +.reference-breadcrumb a { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-muted); font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; } +.reference-breadcrumb a:hover { color: var(--brand); } +.reference-header h3 { margin: 0; font-family: var(--display); font-size: clamp(48px, 6vw, 84px); font-weight: 500; letter-spacing: -.06em; line-height: .9; } +.reference-header > div > p:last-child { max-width: 650px; margin-top: 20px; } +.preview-panel, +.contract-panel, +.example-panel { box-shadow: 8px 8px 0 color-mix(in srgb, var(--brand) 7%, transparent); } +.preview-panel > header h2, +.contract-panel > header h2, +.example-panel > header h2 { margin: 0; font-family: var(--sans); font-size: 11px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; } +.preview-density { display: flex; min-width: min(300px, 45%); align-items: center; gap: 9px; } +.preview-density input { width: 120px; accent-color: var(--brand); } +.preview-density svg { color: var(--brand); } +.contract-list { display: grid; } +.contract-row { display: grid; grid-template-columns: 28px 76px minmax(0, 1fr) 18px; align-items: start; gap: 12px; min-width: 0; padding: 17px 16px; border-bottom: 1px solid var(--hairline); } +.contract-row:last-child { border-bottom: 0; } +.contract-icon { color: var(--brand); } +.contract-row strong { padding-top: 2px; font-family: var(--sans); font-size: 11px; font-weight: 650; } +.contract-row p { min-width: 0; margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.5; } +.contract-row p code { background: color-mix(in srgb, var(--brand-tint) 62%, transparent); } +.contract-row > svg { margin-top: 2px; color: var(--ink-muted); } +.example-panel pre { min-height: 235px; background: color-mix(in srgb, var(--brand-tint) 20%, var(--paper)); } +.install-section { border-top: 1px solid var(--hairline-strong); } + +.components-index, +.release-page { + width: min(100%, var(--content-max)); + margin: 0 auto; + padding: clamp(72px, 8vw, 118px) var(--page-gutter) 132px; +} + +.components-index:focus, +.release-page:focus { outline: none; } + +.components-index-heading, +.release-heading { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + align-items: end; + gap: 32px; + padding-bottom: 42px; + border-bottom: 1px solid var(--hairline-strong); +} + +.components-index-heading h1, +.release-heading h1 { + max-width: 720px; + margin: 0; + font-family: var(--display); + font-size: clamp(64px, 8vw, 112px); + font-weight: 500; + letter-spacing: -.075em; + line-height: .84; +} + +.components-index-heading p:last-child, +.release-heading p:last-child { + max-width: 620px; + margin: 22px 0 0; + color: var(--ink-soft); + font-size: 17px; + line-height: 1.6; +} + +.components-index-search { + display: grid; + grid-template-columns: auto minmax(0, 1fr) auto; + align-items: center; + gap: 12px; + min-height: 58px; + margin: 34px 0 70px; + padding: 0 16px; + border: 1px solid var(--hairline-strong); + color: var(--brand); + background: var(--surface); +} + +.components-index-search:focus-within { + border-color: var(--brand); + outline: var(--focus-ring); + outline-offset: 3px; +} + +.components-index-search input { + min-width: 0; + border: 0; + outline: 0; + color: var(--ink); + background: transparent; + font-size: 15px; +} + +.components-index-search input::placeholder { color: var(--ink-muted); opacity: 1; } +.components-index-search > span:last-child { color: var(--ink-muted); font-family: var(--mono); font-size: 9px; letter-spacing: .08em; } + +.components-index-groups { display: grid; gap: 54px; } + +.components-index-group > header { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 20px; + margin-bottom: 12px; + padding-bottom: 12px; + border-bottom: 1px solid var(--hairline-strong); +} + +.components-index-group > header h2 { + margin: 0; + color: var(--ink-muted); + font-family: var(--mono); + font-size: 10px; + font-weight: 400; + letter-spacing: .12em; + text-transform: uppercase; +} + +.components-index-group > header span { color: var(--brand); font-family: var(--mono); font-size: 10px; } +.components-index-list { display: grid; } + +.component-index-item { + display: grid; + grid-template-columns: minmax(190px, .65fr) minmax(0, 1.35fr) auto; + align-items: center; + gap: 22px; + min-height: 78px; + padding: 13px 10px; + border-bottom: 1px solid var(--hairline); + color: var(--ink); + text-decoration: none; + transition: color var(--duration-ui) var(--ease-out), background-color var(--duration-ui) var(--ease-out), transform var(--duration-fast) var(--ease-out); +} + +.component-index-item:first-child { border-top: 1px solid var(--hairline); } +.component-index-item:hover, +.component-index-item:focus-visible { color: var(--brand); background: var(--brand-tint); transform: translateX(3px); } +.component-index-item > span:first-child { display: grid; gap: 4px; } +.component-index-item strong { font-family: var(--sans); font-size: 14px; font-weight: 650; } +.component-index-item small { color: var(--ink-muted); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; } +.component-index-item > span:nth-child(2) { color: var(--ink-soft); font-size: 13px; line-height: 1.45; } +.component-index-item svg { color: var(--brand); } + +.components-index-empty, +.release-policy { + display: grid; + align-items: center; + gap: 12px; + border: 1px dashed var(--hairline-strong); + color: var(--ink-muted); +} + +.components-index-empty { min-height: 250px; place-items: center; align-content: center; text-align: center; } +.components-index-empty strong { color: var(--ink); font-size: 17px; } +.components-index-empty span { font-size: 14px; } + +.release-heading { align-items: start; } +.release-signal { display: grid; min-width: 160px; justify-items: start; gap: 8px; padding: 18px 0 0 18px; border-left: 1px solid var(--hairline-strong); color: var(--brand); } +.release-signal span { color: var(--ink-muted); font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; } +.release-signal strong { color: var(--ink); font-family: var(--display); font-size: 31px; font-weight: 500; letter-spacing: -.04em; } +.release-timeline { display: grid; margin-top: 62px; } +.release-entry { display: grid; grid-template-columns: 80px minmax(0, 760px); gap: 20px; padding: 0 0 48px; } +.release-marker { position: relative; display: flex; justify-content: center; color: var(--brand); font-family: var(--mono); font-size: 9px; } +.release-marker::after { position: absolute; top: 25px; bottom: -48px; left: 50%; width: 1px; background: var(--hairline-strong); content: ''; } +.release-entry:last-child { padding-bottom: 0; } +.release-entry:last-child .release-marker::after { display: none; } +.release-marker span { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--brand); background: var(--paper); } +.release-entry-copy { border-top: 1px solid var(--hairline-strong); } +.release-entry-copy > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 18px 0 16px; } +.release-entry-copy > header p { margin: 0 0 8px; color: var(--brand); font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; } +.release-entry-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(32px, 4vw, 52px); font-weight: 500; letter-spacing: -.055em; line-height: .9; } +.release-entry-copy > header > span { padding: 7px 8px; border: 1px solid var(--hairline); color: var(--ink-muted); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; } +.release-entry-copy ul { display: grid; gap: 10px; margin: 0; padding: 0 0 0 18px; color: var(--ink-soft); font-size: 15px; line-height: 1.6; } +.release-entry-copy li::marker { color: var(--brand); } +.release-policy { grid-template-columns: auto minmax(0, 1fr) auto; margin-top: 70px; padding: 20px; border-style: solid; background: color-mix(in srgb, var(--brand-tint) 28%, var(--paper)); } +.release-policy > svg { color: var(--brand); } +.release-policy strong { color: var(--ink); font-size: 14px; } +.release-policy p { max-width: 620px; margin: 6px 0 0; color: var(--ink-soft); font-size: 13px; line-height: 1.5; } +.release-policy a { display: inline-flex; align-items: center; gap: 8px; color: var(--brand); font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; } + +.sidebar-group > div > a { + display: block; + min-height: 34px; + padding: 9px 10px; + border-left: 2px solid transparent; + color: var(--ink-soft); + font-family: var(--sans); + font-size: 11px; + text-decoration: none; + transition: border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), background-color var(--duration-ui) var(--ease-out), transform var(--duration-fast) var(--ease-out); +} +.sidebar-group > div > a:hover, +.sidebar-group > div > a:focus-visible { color: var(--ink); background: color-mix(in srgb, var(--brand-tint) 55%, transparent); transform: translateX(2px); } +.sidebar-group > div > a.selected { border-left-color: var(--brand); color: var(--brand); background: var(--brand-tint); } +.reference-header h1 { margin: 0; font-family: var(--display); font-size: clamp(48px, 6vw, 84px); font-weight: 500; letter-spacing: -.06em; line-height: .9; } + +@media (max-width: 900px) { + .header-inner { grid-template-columns: auto minmax(150px, 1fr) auto; } + .primary-nav { display: none; } + .mobile-menu-button { display: inline-flex; align-items: center; justify-content: center; } + .hero { grid-template-columns: 1fr; } + .hero-stage { width: min(720px, 100%); min-height: 520px; margin-inline: auto; } + .reference-lower { grid-template-columns: 1fr; } + .example-panel { position: static; } +} + +@media (max-width: 680px) { + .header-inner { grid-template-columns: auto 1fr auto; padding-inline: 16px; } + .brand-name { font-size: 13px; } + .header-actions { gap: 6px; } + .theme-sun, .theme-moon { display: none; } + .hero { min-height: auto; gap: 28px; padding: 26px 20px 56px; } + .hero h1 { font-size: clamp(48px, 12.5vw, 54px); } + .hero h1 em { white-space: nowrap; } + .hero-copy { margin-top: 22px; font-size: 16px; } + .hero-actions { align-items: flex-start; flex-direction: row; margin-top: 24px; } + .hero-actions > * { width: auto; justify-content: center; } + .hero-actions .ds-link { display: none; } + .hero-stage { min-height: 340px; } + .reference-desk { inset: 3% 0 1% 3%; transform: none; } + .desk-header, .desk-footer { padding-inline: 16px; } + .desk-header strong { font-size: 21px; } + .desk-tabs { padding-inline: 16px; } + .desk-body { gap: 10px; padding: 18px 16px; } + .verified-alert { margin-top: 8px; } + .desk-footer { flex-wrap: nowrap; padding-block: 13px; } + .proof-rail { padding-inline: 20px; } + .proof-rail dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .proof-rail dl > div { min-height: 82px; padding-inline: 12px; } + .foundation-section, .install-section, .reference-page { padding-inline: 20px; padding-top: 82px; padding-bottom: 88px; } + .reference-page { padding-top: 28px; } + .foundation-heading { align-items: start; flex-direction: row; } + .foundation-grid { grid-template-columns: 1fr 1.15fr .85fr .75fr; gap: 14px; } + .foundation-group { min-width: 0; } + .foundation-group h3 { font-size: 8px; } + .swatch-row { grid-template-columns: repeat(auto-fit, minmax(9px, 1fr)); gap: 4px; } + .swatch-item > span { min-height: 54px; } + .swatch-item code { font-size: 7px; } + .mobile-component-select { display: grid; position: relative; min-height: 58px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; margin-bottom: 28px; padding: 0 16px; border: 1px solid var(--hairline-strong); background: var(--surface); } + .mobile-component-select > svg:first-child { color: var(--brand); } + .mobile-component-select > svg:last-child { pointer-events: none; } + .mobile-component-select label { color: var(--ink); font-family: var(--sans); font-size: 15px; } + .mobile-component-select select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; } + .reference-sidebar { display: none; } + .reference-shell { display: block; } + .reference-header { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; } + .reference-header h3 { font-size: clamp(44px, 11.5vw, 52px); } + .reference-version { width: max-content; margin-top: 4px; } + .preview-panel > header { align-items: flex-start; flex-direction: column; padding-block: 14px; } + .preview-density { width: 100%; min-width: 0; } + .preview-density input { flex: 1; width: auto; } + .preview-canvas { min-height: 310px; padding: 22px 16px; } + .contract-row { grid-template-columns: 25px minmax(0, 1fr) 18px; gap: 10px; } + .contract-row strong { grid-column: 2; } + .contract-row p { grid-column: 2 / -1; } + .contract-row > svg { grid-column: 3; grid-row: 1; } + footer { padding-inline: 20px; } + .components-index, + .release-page { padding-inline: 20px; padding-top: 72px; padding-bottom: 90px; } + .components-index-heading, + .release-heading { grid-template-columns: 1fr; gap: 24px; padding-bottom: 34px; } + .components-index-heading h1, + .release-heading h1 { font-size: clamp(58px, 18vw, 78px); } + .components-index-heading p:last-child, + .release-heading p:last-child { font-size: 16px; } + .components-index-search { margin: 24px 0 48px; } + .component-index-item { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; } + .component-index-item > span:nth-child(2) { display: none; } + .release-signal { min-width: 0; padding: 16px 0 0; border-top: 1px solid var(--hairline-strong); border-left: 0; } + .release-entry { grid-template-columns: 44px minmax(0, 1fr); gap: 10px; } + .release-policy { grid-template-columns: auto minmax(0, 1fr); } + .release-policy a { grid-column: 2; } +} diff --git a/apps/docs/src/lib/ComponentPreview.svelte b/apps/docs/src/lib/ComponentPreview.svelte index d064d9d..5afd348 100644 --- a/apps/docs/src/lib/ComponentPreview.svelte +++ b/apps/docs/src/lib/ComponentPreview.svelte @@ -29,7 +29,7 @@ WeBaseToast, WeBaseTooltip } from '@webaseui/svelte'; - import type { ComponentName } from './reference'; + import type { ComponentName } from './data/reference'; interface Props { name: ComponentName; @@ -43,8 +43,8 @@ { title: 'Release gate', content: 'Cross-browser and accessibility checks run before publish.' } ]; const breadcrumbItems = [ - { label: 'Docs', href: '#top' }, - { label: 'Components', href: '#components' }, + { label: 'Docs', href: '/' }, + { label: 'Components', href: '/components' }, { label: 'Button' } ]; const selectOptions = [ @@ -90,11 +90,12 @@ {:else if name === 'WeBaseBreadcrumbs'} {:else if name === 'WeBaseButton'} -
- - - - +
+
Primary
+
Outline
+
Disabled
+
Loading
+
Icon leading
{:else if name === 'WeBaseCard'}
@@ -140,8 +141,8 @@
{:else if name === 'WeBaseLink'}
- - + +
{:else if name === 'WeBaseLoader'} @@ -174,7 +175,7 @@
- +
{:else if name === 'WeBaseTabs'} @@ -196,6 +197,9 @@