From b15cded4fb9fa319bb35e56a70a4401cbf1d0e33 Mon Sep 17 00:00:00 2001 From: leyoonafr Date: Sat, 25 Jul 2026 00:09:16 +0800 Subject: [PATCH 1/4] docs: restore Island parity coverage --- docs/ISLAND_PARITY.md | 68 +++ docs/README.md | 2 + docs/app/(landing)/page.tsx | 14 +- docs/app/[lang]/island-theme.css | 40 +- docs/app/[lang]/layout.tsx | 14 +- docs/app/_components/api-reference.tsx | 44 +- .../_components/component-variant-matrix.tsx | 435 ++++++++++++++++++ docs/app/_components/component-variants.ts | 310 +++++++++++++ docs/app/_components/controller-api.tsx | 127 ++++- docs/app/_components/display-api.tsx | 36 +- docs/app/_components/example-frame.module.css | 100 ++++ docs/app/_components/example-frame.tsx | 134 ++++++ docs/content/en/_meta.ts | 14 +- docs/content/en/component/button.mdx | 3 + docs/content/en/component/card.mdx | 3 + docs/content/en/component/checkbox.mdx | 3 + docs/content/en/component/envelope.mdx | 3 + docs/content/en/component/input.mdx | 3 + docs/content/en/component/knob.mdx | 3 + docs/content/en/component/lfo.mdx | 3 + docs/content/en/component/light.mdx | 3 + docs/content/en/component/oscilloscope.mdx | 3 + docs/content/en/component/radio.mdx | 3 + docs/content/en/component/slider.mdx | 3 + docs/content/en/component/spectrogram.mdx | 3 + docs/content/en/component/switch.mdx | 3 + docs/content/en/component/vumeter.mdx | 3 + docs/content/en/component/waveform.mdx | 3 + docs/content/en/guide/_meta.ts | 8 + docs/content/en/guide/about.mdx | 4 + docs/content/en/guide/installation.mdx | 23 +- docs/content/en/guide/introduction.mdx | 20 +- docs/content/zh/_meta.ts | 14 +- docs/content/zh/component/button.mdx | 3 + docs/content/zh/component/card.mdx | 3 + docs/content/zh/component/checkbox.mdx | 3 + docs/content/zh/component/envelope.mdx | 3 + docs/content/zh/component/input.mdx | 3 + docs/content/zh/component/knob.mdx | 3 + docs/content/zh/component/lfo.mdx | 3 + docs/content/zh/component/light.mdx | 3 + docs/content/zh/component/oscilloscope.mdx | 3 + docs/content/zh/component/radio.mdx | 3 + docs/content/zh/component/slider.mdx | 3 + docs/content/zh/component/spectrogram.mdx | 3 + docs/content/zh/component/switch.mdx | 3 + docs/content/zh/component/vumeter.mdx | 3 + docs/content/zh/component/waveform.mdx | 3 + docs/content/zh/guide/_meta.ts | 8 + docs/content/zh/guide/about.mdx | 4 + docs/content/zh/guide/installation.mdx | 23 +- docs/content/zh/guide/introduction.mdx | 20 +- docs/visual-baselines/island-v1.json | 99 ++++ .../INDEX.md | 35 ++ .../after-about-en-dark-desktop-wechat.png | Bin 0 -> 202657 bytes ...after-button-zh-light-mobile-code-copy.png | Bin 0 -> 44313 bytes ...ter-introduction-en-light-desktop-edit.png | Bin 0 -> 146454 bytes ...ion-en-light-desktop-pagination-footer.png | Bin 0 -> 122242 bytes .../after-introduction-zh-dark-mobile-nav.png | Bin 0 -> 27779 bytes .../after-knob-en-dark-mobile.png | Bin 0 -> 28444 bytes .../after-locale-switch-en-light-desktop.png | Bin 0 -> 150117 bytes .../after-root-redirect-en-light-desktop.png | Bin 0 -> 90574 bytes ...ter-spectrogram-zh-light-desktop-links.png | Bin 0 -> 124257 bytes .../after-theme-switch-en-dark-desktop.png | Bin 0 -> 142820 bytes ...after-use-player-en-dark-desktop-audio.png | Bin 0 -> 92226 bytes .../before-button-zh-light-mobile.png | Bin 0 -> 59074 bytes .../before-introduction-en-light-desktop.png | Bin 0 -> 129608 bytes .../before-migration-preview-en-dark.png | Bin 0 -> 44740 bytes .../before-migration-preview-zh-light.png | Bin 0 -> 36187 bytes ...-root-language-picker-en-light-desktop.png | Bin 0 -> 64187 bytes .../before-spectrogram-zh-light-desktop.png | Bin 0 -> 113617 bytes .../before-use-player-en-dark-desktop.png | Bin 0 -> 89373 bytes scripts/capture-docs-evidence.mjs | 165 +++++++ scripts/create-docs-redirects.mjs | 8 +- scripts/verify-docs-ui.mjs | 220 ++++++++- scripts/verify-nextra-output.mjs | 55 ++- tests/docs-example-frame.test.tsx | 48 ++ tests/docs-parity.test.ts | 215 +++++++++ 78 files changed, 2287 insertions(+), 110 deletions(-) create mode 100644 docs/ISLAND_PARITY.md create mode 100644 docs/app/_components/component-variant-matrix.tsx create mode 100644 docs/app/_components/component-variants.ts create mode 100644 docs/app/_components/example-frame.module.css create mode 100644 docs/app/_components/example-frame.tsx create mode 100644 docs/visual-baselines/island-v1.json create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/INDEX.md create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-about-en-dark-desktop-wechat.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-button-zh-light-mobile-code-copy.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-introduction-en-light-desktop-edit.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-introduction-en-light-desktop-pagination-footer.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-introduction-zh-dark-mobile-nav.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-knob-en-dark-mobile.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-locale-switch-en-light-desktop.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-root-redirect-en-light-desktop.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-spectrogram-zh-light-desktop-links.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-theme-switch-en-dark-desktop.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/after-use-player-en-dark-desktop-audio.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-button-zh-light-mobile.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-introduction-en-light-desktop.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-migration-preview-en-dark.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-migration-preview-zh-light.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-root-language-picker-en-light-desktop.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-spectrogram-zh-light-desktop.png create mode 100644 screen-shots/20260724T132107Z-issue-108-743034/before-use-player-en-dark-desktop.png create mode 100644 scripts/capture-docs-evidence.mjs create mode 100644 tests/docs-example-frame.test.tsx create mode 100644 tests/docs-parity.test.ts diff --git a/docs/ISLAND_PARITY.md b/docs/ISLAND_PARITY.md new file mode 100644 index 00000000..1ca6c773 --- /dev/null +++ b/docs/ISLAND_PARITY.md @@ -0,0 +1,68 @@ +# Island → Nextra parity matrix + +This matrix is the maintained contract for reproducing the established Island documentation in Nextra. The preserved Island source/build at git revision `86f2008^` and `https://echoui.dev/en/` are the presentation and content references. The current package source and declarations remain authoritative for Echo UI 1.1.x API facts. + +## Shell, navigation, and content + +| Surface | Island contract | Nextra implementation | Deterministic coverage | +| --- | --- | --- | --- | +| Root route | `/` enters the default English documentation without an editorial picker. | The static root permanently redirects to `/en/`. | Route/content inventory and static-export smoke test. | +| Desktop shell | Fixed 60 px header, 272 px sidebar, 704 px article, right-hand outline. | Island theme tokens and geometry are retained at 1440 × 900. | `island-v1.json` desktop light/dark profiles. | +| Mobile shell | 56 px header, a separate 48 px section-menu row, off-canvas navigation, single-column content. | `IslandMobileMenu` controls the Nextra mobile navigation with expanded state and focus-visible styling. | `island-v1.json` mobile light/dark profiles at 390 × 844. | +| Locales and themes | English and Chinese share the route hierarchy; light and dark retain the same geometry. | Every representative baseline route is exercised in `en`/`zh`, light/dark, desktop/mobile. | 16 locale/profile/category combinations per category in `verify-docs-ui.mjs`. | +| Header links | Links contains GitHub, Discord, and Twitter. | The exact three Island destinations are restored. | Content inventory plus interactive UI verification. | +| Guide sidebar | A `Guide` section contains Introduction, Installation, and Declaration; `About` is separated. | Locale-specific Nextra metadata uses Guide/About separators. | Content inventory and rendered sidebar assertions. | +| Page affordances | Edit link, last-updated metadata, previous/next navigation, and footer are visible. | Nextra edit/navigation defaults are restored; the footer contains the MIT license and copyright. | Static output and UI assertions. | +| External prose links | Brand-colored Island link treatment without an appended arrow glyph. | Nextra's external-link icon is hidden in article prose while external semantics remain intact. | Visual baseline assertion. | +| Callouts | Neutral bordered panel without blue info chrome. | Nextra callouts use the Island background, border, color, spacing, and no decorative icon. | Guide baseline assertion. | +| Introduction | Five compact feature bullets under one Features heading. | Updated factual copy retains the five-item list rhythm and avoids five H3 sections. | Bilingual content inventory. | +| Installation | A four-step installation story. | Requirements/compatibility, package installation, Tailwind configuration, then import/render form the four primary steps. | Bilingual content inventory; Tailwind compatibility verifier. | +| About | Project contacts plus Discord and WeChat community choices. | The shipped `/wechat.jpg` QR image and WeChat option are restored in both locales. | Bilingual content inventory and asset smoke test. | +| Declaration | Copy promises the edit affordance that the shell actually provides. | The page-level edit link is enabled and the bilingual declaration copy agrees. | Bilingual content inventory and rendered edit-link check. | + +## Component examples + +Every entry below is a live rendered preview with an adjacent Preview/Code tab and copy action. There are no intentionally omitted Island variants. + +| Component | Required live variants | Count | +| --- | --- | --: | +| Button | Default; Toggle State; Disabled State; Size; Rounded Corners; Button Group | 6 | +| Checkbox | Default; Disabled State; Size; Color; Checkbox Group | 5 | +| Envelope | ADSR Envelope; AHDSR Envelope; Delay/DADSR | 3 | +| Input | Default; Disabled State; Bilateral Mode; Text Mode; Size; Rounded Corners; Progress Bar Color; Minimum and Maximum Values; Step and Sensitivity | 9 | +| Knob | Default; Disabled; Bilateral Rotation Mode; Rotation Angle Range; Labels; Step and Sensitivity; Size-Related; Color-Related; Knob Group | 9 | +| Radio | Default; Disabled State; Size; Color; Radio Group | 5 | +| Slider | Default; Disabled State; Vertical Mode; Bilateral Mode; Adding Coordinates; Step; Custom Styling; Uncontrolled Mode | 8 | +| Switch | Default; Toggled State; Disabled State; Size; Custom Styling | 5 | +| LFO | Default; Delay | 2 | +| Light | Default; On State; Light Color; Size | 4 | +| Oscilloscope | Default | 1 | +| Spectrogram | Audio Data; Axis; Grid; Use Case: EQ3 | 4 | +| VU Meter | Default; Horizontal Mode; Stereo Mode; Compact Mode; Number of Volume Bars; Custom Colors | 6 | +| Waveform | Default | 1 | +| Card | Default; Active State; Real-World Scenario | 3 | + +The 71-variant inventory lives in one bilingual data model so labels, source, counts, and rendered examples cannot silently drift between locales. Preview/Code uses an ARIA tablist, supports arrow, Home, and End keys, keeps the active tab in the tab order, and exposes copy success/failure through a polite status. Reduced motion removes transitions. The richer Nextra real-audio/status demonstrations remain above the variant matrix and supplement it. + +## API, public types, and data attributes + +| Surface | Parity contract | Maintained behavior | +| --- | --- | --- | +| API hierarchy | Component/compound-component headings precede visible tables. | Generated tables remain because they cover the current public declarations. | +| Column order | Attribute / Description / Type / Default. | Both locales render that Island order; translated labels preserve the same order. | +| Public types | Inherited React attributes, compound APIs, callback payloads, exported data shapes, and limitations remain discoverable. | Generated rows plus the inherited-contract paragraph are sourced from the current package types. | +| Controller data attributes | Button, Checkbox, Input, Knob, Radio, Slider, and Switch attributes are listed. | Values and meanings are rendered beside each API. | +| Display data tags | VU Meter segment `data-active` bands and Card `data-toggled` are listed. | Values are based on the current runtime. | + +The current Button runtime emits `data-disable`, not the legacy page's `data-disabled`. The docs show the actual runtime spelling because package behavior is the frozen source of truth; changing the shipped runtime solely for documentation parity is out of scope. + +## Intentional modernized exceptions + +- Nextra and static export remain the documentation toolchain. IslandJS, NextUI, `react-live`, and stale implementation dependencies are not restored. +- Echo UI 1.1.x compatibility remains accurate: React 18.2–19, Tailwind CSS 3/4, tailwind-variants 3.2.x, tailwind-merge 3.6.x, and Tone.js 15.1.22. +- Accessibility guidance, native fallback controls, focus-visible treatment, keyboard-operable source disclosure, reduced-motion behavior, lifecycle cleanup, and error recovery remain. +- Real Web Audio demonstrations, status text, reconnect flows, and restart-safe audio graphs remain and supplement the Island variant examples. +- Generated API tables replace copied declaration blocks where the complete current public contract is already visible. +- Nextra's search implementation, locale switch, theme switch, static route format, and last-updated source remain, styled to the Island hierarchy. + +No other parity exception is approved by this matrix. diff --git a/docs/README.md b/docs/README.md index 9e99aba0..d65d2bad 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,6 +2,8 @@ This workspace is the production documentation site. It owns the bilingual landing, guides, component reference, Hook reference, and live audio examples. From the repository root: +The maintained Island → Nextra shell, content, example, API, and intentional-exception contract is recorded in [`ISLAND_PARITY.md`](./ISLAND_PARITY.md). + ```bash pnpm dev:docs pnpm build:docs diff --git a/docs/app/(landing)/page.tsx b/docs/app/(landing)/page.tsx index 1cf4413b..b316370f 100644 --- a/docs/app/(landing)/page.tsx +++ b/docs/app/(landing)/page.tsx @@ -1,15 +1,5 @@ -import Link from 'next/link' +import { permanentRedirect } from 'next/navigation' export default function LanguageLandingPage() { - return ( -
-

Echo UI documentation

-

Choose your documentation language

-

Choose a language to explore the Echo UI guides. 选择文档语言以继续浏览。

- -
- ) + permanentRedirect('/en/') } diff --git a/docs/app/[lang]/island-theme.css b/docs/app/[lang]/island-theme.css index 47dc0b5a..4baf06e4 100644 --- a/docs/app/[lang]/island-theme.css +++ b/docs/app/[lang]/island-theme.css @@ -72,8 +72,11 @@ body { } footer { - border: 0 !important; - display: none !important; + background: var(--island-c-bg-alt); + border-top: 1px solid var(--island-c-divider-light) !important; + color: var(--island-c-text-2); + flex-wrap: wrap; + gap: 8px 24px; } .island-mobile-menu { @@ -275,10 +278,6 @@ aside.nextra-sidebar li.active > a { font-weight: 400; } -aside.nextra-sidebar .nextra-sidebar-footer { - display: none; -} - body > div:has(> aside.nextra-sidebar) > article { box-sizing: border-box; flex: 0 0 712px; @@ -327,7 +326,7 @@ nav.nextra-toc > div > ul a { } nav.nextra-toc > div > div:last-child { - display: none; + display: grid; } body:has(.echo-home) > div:has(> aside.nextra-sidebar) { @@ -414,6 +413,23 @@ article main a:hover { color: var(--island-c-brand-dark); } +article main a[target='_blank'] > svg { + display: none; +} + +article main .nextra-callout { + background: transparent; + border: 1px solid var(--island-c-divider); + border-radius: 8px; + color: var(--island-c-text-1); + margin: 16px 0; + padding: 16px 20px; +} + +article main .nextra-callout > :first-child { + display: none; +} + article main :is(ul, ol) { margin: 16px 0; padding-left: 1.25rem; @@ -595,6 +611,15 @@ article main table[class] code { } } +@media (width >= 768px) { + footer { + padding-left: max( + calc(var(--island-sidebar-width) + 32px), + calc((100vw - 704px) / 2) + ) !important; + } +} + @media (width < 768px) { html:root { --nextra-navbar-height: var(--island-nav-height-mobile); @@ -723,5 +748,4 @@ article main table[class] code { article main h1 { font-size: 28px; } - } diff --git a/docs/app/[lang]/layout.tsx b/docs/app/[lang]/layout.tsx index 182c41c9..44d9dd15 100644 --- a/docs/app/[lang]/layout.tsx +++ b/docs/app/[lang]/layout.tsx @@ -28,6 +28,8 @@ type LayoutProps = Readonly<{ const messagesByLocale = { en: { + copyright: 'Copyright © 2023-present leyoonafr', + edit: '📝 Edit this page on GitHub', footer: 'Released under the MIT License.', name: 'English', search: 'Search', @@ -42,6 +44,8 @@ const messagesByLocale = { }, }, zh: { + copyright: 'Copyright © 2023-present leyoonafr', + edit: '📝 在 GitHub 上编辑此页', footer: '基于 MIT 许可证发布。', name: '简体中文', search: '搜索', @@ -80,7 +84,12 @@ const RootLayout: FC = async ({ children, params }) => { ) - const footer =
{messages.footer}
+ const footer = ( +
+ {messages.footer} + {messages.copyright} +
+ ) return ( @@ -95,12 +104,11 @@ const RootLayout: FC = async ({ children, params }) => { +export type DataAttribute = Readonly<{ + description: LocalizedText + name: string + values?: string +}> + export const localizedText = (en: string, zh: string): LocalizedText => ({ en, zh }) const labels = { en: { + attribute: 'Data Attributes', defaultValue: 'Default', description: 'Description', name: 'Prop', @@ -29,6 +36,7 @@ const labels = { type: 'Type', }, zh: { + attribute: 'Data 属性', defaultValue: '默认值', description: '说明', name: '属性', @@ -42,6 +50,38 @@ type ApiTableProps = Readonly<{ section: ApiSection }> +type DataAttributesProps = Readonly<{ + attributes: readonly DataAttribute[] + component: string + lang: Locale +}> + +export const DataAttributes: FC = ({ attributes, component, lang }) => { + if (attributes.length === 0) return null + + return ( +
+

{labels[lang].attribute}

+
+ {attributes.map((attribute) => ( +
+
+ {attribute.name} + {attribute.values && ( + <> + {' '} + — {attribute.values} + + )} +
+
{attribute.description[lang]}
+
+ ))} +
+
+ ) +} + export const ApiTable: FC = ({ lang, section }) => { const localeLabels = labels[lang] @@ -60,9 +100,9 @@ export const ApiTable: FC = ({ lang, section }) => { {localeLabels.name} + {localeLabels.description} {localeLabels.type} {localeLabels.defaultValue} - {localeLabels.description} @@ -76,13 +116,13 @@ export const ApiTable: FC = ({ lang, section }) => { )} + {row.description[lang]} {row.type} {row.defaultValue} - {row.description[lang]} ))} diff --git a/docs/app/_components/component-variant-matrix.tsx b/docs/app/_components/component-variant-matrix.tsx new file mode 100644 index 00000000..16e1fae6 --- /dev/null +++ b/docs/app/_components/component-variant-matrix.tsx @@ -0,0 +1,435 @@ +'use client' + +import { + Button, + Card, + Checkbox, + Envelope, + Input, + Knob, + LFO, + Light, + Oscilloscope, + Radio, + Slider, + Spectrogram, + Switch, + VuMeter, + Waveform, +} from '@nafr/echo-ui' +import type { CSSProperties, FC, ReactNode } from 'react' +import { useEffect, useState } from 'react' +import { + componentVariantInventory, + type ComponentVariantId, + type ComponentWithVariants, + type DocumentationLocale, +} from './component-variants' +import { ExampleFrame } from './example-frame' + +const rowStyle: CSSProperties = { + alignItems: 'center', + display: 'flex', + flexWrap: 'wrap', + gap: 16, + justifyContent: 'center', + width: '100%', +} + +const graphStyle: CSSProperties = { height: 160, width: 'min(100%, 560px)' } +const sliderStyle: CSSProperties = { minWidth: 220, width: '70%' } + +const spectrum = Array.from({ length: 48 }, (_, index) => ({ + amplitude: -90 + Math.sin(index / 5) * 24, + frequency: 30 * 1.12 ** index, +})) +const eq3Spectrum = spectrum.map(({ amplitude, frequency }) => ({ + amplitude: + amplitude + (frequency < 250 ? 18 : frequency < 2500 ? -12 : frequency < 8000 ? 15 : -6), + frequency, +})) +const oscilloscope = Array.from({ length: 96 }, (_, index) => ({ + amplitude: Math.sin(index / 7) * 0.7, + index, +})) +const waveform = Array.from({ length: 96 }, (_, index) => Math.sin(index / 4) * 0.8) + +const useDelayedGraphData = (samples: Sample[], height: number) => { + const [data, setData] = useState([]) + const [renderHeight, setRenderHeight] = useState(height - 1) + + useEffect(() => { + let timer: number | undefined + const frame = window.requestAnimationFrame(() => { + setRenderHeight(height) + timer = window.setTimeout(() => setData(samples), 150) + }) + + return () => { + window.cancelAnimationFrame(frame) + window.clearTimeout(timer) + } + }, [height, samples]) + + return { data, height: renderHeight } +} + +const SpectrogramPreview: FC<{ + axis: boolean + data: typeof spectrum + grid: boolean +}> = ({ axis, data: samples, grid }) => { + const { data, height } = useDelayedGraphData(samples, 160) + + return ( +
+ +
+ ) +} + +const OscilloscopePreview: FC = () => { + const { data, height } = useDelayedGraphData(oscilloscope, 160) + + return ( +
+ +
+ ) +} + +const WaveformPreview: FC = () => { + const { data, height } = useDelayedGraphData(waveform, 120) + + return ( +
+ +
+ ) +} + +const buttonPreview = (id: ComponentVariantId<'button'>): ReactNode => { + if (id === 'toggled') return + if (id === 'disabled') return + if (id === 'sizes') { + return ( +
+ + + +
+ ) + } + if (id === 'radii') { + return ( +
+ {(['none', 'sm', 'md', 'lg', 'full'] as const).map((radius) => ( + + ))} +
+ ) + } + if (id === 'group') { + return ( + + + + + ) + } + return +} + +const checkboxPreview = (id: ComponentVariantId<'checkbox'>): ReactNode => { + if (id === 'disabled') return Disabled + if (id === 'sizes') { + return ( +
+ {(['sm', 'md', 'lg'] as const).map((size) => ( + + {size} + + ))} +
+ ) + } + if (id === 'colors') { + return ( +
+ Violet + Green +
+ ) + } + if (id === 'group') { + return ( + + Delay + Reverb + + ) + } + return Normalize +} + +const envelopePreview = (id: ComponentVariantId<'envelope'>): ReactNode => { + const data = + id === 'ahdsr' + ? { attack: 0.1, decay: 0.3, hold: 0.2, release: 0.5, sustain: 0.65 } + : id === 'dadsr' + ? { attack: 0.1, decay: 0.3, delay: 0.2, release: 0.5, sustain: 0.65 } + : { attack: 0.1, decay: 0.3, release: 0.5, sustain: 0.65 } + return ( +
+ +
+ ) +} + +const inputPreview = (id: ComponentVariantId<'input'>): ReactNode => { + if (id === 'disabled') return + if (id === 'bilateral') return + if (id === 'text') return + if (id === 'sizes') { + return ( +
+ {(['sm', 'md', 'lg'] as const).map((size) => ( + + ))} +
+ ) + } + if (id === 'radii') { + return ( +
+ {(['none', 'md', 'full'] as const).map((radius) => ( + + ))} +
+ ) + } + if (id === 'progress-color') + return + if (id === 'min-max') return + if (id === 'step') + return ( + + ) + return +} + +const knobPreview = (id: ComponentVariantId<'knob'>): ReactNode => { + if (id === 'disabled') return + if (id === 'bilateral') return + if (id === 'range') return + if (id === 'labels') return + if (id === 'step') return + if (id === 'size') + return + if (id === 'colors') + return ( + + ) + if (id === 'group') + return ( + + + + + + ) + return +} + +const radioPreview = (id: ComponentVariantId<'radio'>): ReactNode => { + if (id === 'disabled') return Disabled + if (id === 'sizes') + return ( +
+ {(['sm', 'md', 'lg'] as const).map((size) => ( + + {size} + + ))} +
+ ) + if (id === 'colors') + return ( +
+ Violet + Green +
+ ) + if (id === 'group') + return ( + + Draft + Balanced + + ) + return Balanced +} + +const sliderPreview = (id: ComponentVariantId<'slider'>): ReactNode => { + const vertical = id === 'vertical' + return ( +
+ +
+ ) +} + +const switchPreview = (id: ComponentVariantId<'switch'>): ReactNode => { + if (id === 'disabled') return Bypass + if (id === 'sizes') + return ( +
+ {(['sm', 'md', 'lg'] as const).map((size) => ( + + {size} + + ))} +
+ ) + if (id === 'custom') return Custom + return Bypass +} + +const lfoPreview = (id: ComponentVariantId<'lfo'>): ReactNode => ( +
+ +
+) + +const lightPreview = (id: ComponentVariantId<'light'>): ReactNode => { + if (id === 'colors') + return ( +
+ + +
+ ) + if (id === 'sizes') + return ( +
+ + +
+ ) + return +} + +const oscilloscopePreview = (): ReactNode => + +const spectrogramPreview = (id: ComponentVariantId<'spectrogram'>): ReactNode => ( + +) + +const vuMeterPreview = (id: ComponentVariantId<'vumeter'>): ReactNode => ( +
+ +
+) + +const waveformPreview = (): ReactNode => + +const cardPreview = (id: ComponentVariantId<'card'>): ReactNode => { + return ( + + {id === 'scenario' && } Tape delay + + {id === 'scenario' ? : id === 'active' ? 'Active' : 'Controls'} + + + ) +} + +type VariantRendererMap = { + [Component in ComponentWithVariants]: (id: ComponentVariantId) => ReactNode +} + +const previewRenderers = { + button: buttonPreview, + card: cardPreview, + checkbox: checkboxPreview, + envelope: envelopePreview, + input: inputPreview, + knob: knobPreview, + lfo: lfoPreview, + light: lightPreview, + oscilloscope: oscilloscopePreview, + radio: radioPreview, + slider: sliderPreview, + spectrogram: spectrogramPreview, + switch: switchPreview, + vumeter: vuMeterPreview, + waveform: waveformPreview, +} satisfies VariantRendererMap + +const renderVariant = ( + component: Component, + id: ComponentVariantId, +) => { + const renderer = previewRenderers[component] as ( + variantId: ComponentVariantId, + ) => ReactNode + return renderer(id) +} + +type ComponentVariantMatrixProps = Readonly<{ + component: Component + lang: DocumentationLocale +}> + +export const ComponentVariantMatrix = ({ + component, + lang, +}: ComponentVariantMatrixProps) => { + const variants = componentVariantInventory[component] + + return ( +
+ {variants.map((variant) => ( + + ))} +
+ ) +} diff --git a/docs/app/_components/component-variants.ts b/docs/app/_components/component-variants.ts new file mode 100644 index 00000000..ebfa3fe1 --- /dev/null +++ b/docs/app/_components/component-variants.ts @@ -0,0 +1,310 @@ +export type DocumentationLocale = 'en' | 'zh' + +export type ComponentVariant = Readonly<{ + id: Id + label: Readonly> + source: string +}> + +const variant = ( + id: Id, + en: string, + zh: string, + source: string, +): ComponentVariant => ({ id, label: { en, zh }, source }) + +export const componentVariantInventory = { + button: [ + variant('default', 'Default', '默认', ''), + variant('toggled', 'Toggle State', '切换状态', ''), + variant('disabled', 'Disabled State', '禁用状态', ''), + variant( + 'sizes', + 'Size', + '尺寸', + '\n\n', + ), + variant( + 'radii', + 'Rounded Corners', + '圆角', + '\n\n\n\n', + ), + variant( + 'group', + 'Button Group', + '按钮组', + '\n \n \n', + ), + ], + checkbox: [ + variant('default', 'Default', '默认', 'Normalize'), + variant('disabled', 'Disabled State', '禁用状态', 'Disabled'), + variant( + 'sizes', + 'Size', + '尺寸', + 'Small\nMedium\nLarge', + ), + variant( + 'colors', + 'Color', + '颜色', + 'Violet\nGreen', + ), + variant( + 'group', + 'Checkbox Group', + '多选组', + '\n Delay\n Reverb\n', + ), + ], + envelope: [ + variant( + 'adsr', + 'ADSR Envelope', + 'ADSR 包络', + '', + ), + variant( + 'ahdsr', + 'AHDSR Envelope', + 'AHDSR 包络', + '', + ), + variant( + 'dadsr', + 'Delay', + 'Delay 延迟', + '', + ), + ], + input: [ + variant('default', 'Default', '默认', ''), + variant('disabled', 'Disabled State', '禁用状态', ''), + variant('bilateral', 'Bilateral Mode', '双边模式', ''), + variant('text', 'Text Mode', '文本模式', ''), + variant( + 'sizes', + 'Size', + '尺寸', + '\n\n', + ), + variant( + 'radii', + 'Rounded Corners', + '圆角', + '\n\n', + ), + variant( + 'progress-color', + 'Progress Bar Color', + '进度条颜色', + '', + ), + variant( + 'min-max', + 'Minimum and Maximum Values', + '最小值与最大值', + '', + ), + variant( + 'step', + 'Step and Sensitivity', + '步进与灵敏度', + '', + ), + ], + knob: [ + variant('default', 'Default', '默认', ''), + variant('disabled', 'Disabled', '禁用状态', ''), + variant( + 'bilateral', + 'Bilateral Rotation Mode', + '双向旋转模式', + '', + ), + variant( + 'range', + 'Rotation Angle Range', + '旋转角度范围', + '', + ), + variant( + 'labels', + 'Labels', + '标签', + '', + ), + variant( + 'step', + 'Step and Sensitivity', + '步进与灵敏度', + '', + ), + variant( + 'size', + 'Size-Related', + '尺寸相关', + '', + ), + variant( + 'colors', + 'Color-Related', + '颜色相关', + '', + ), + variant( + 'group', + 'Knob Group', + '旋钮组', + '\n \n \n \n', + ), + ], + radio: [ + variant('default', 'Default', '默认', 'Balanced'), + variant('disabled', 'Disabled State', '禁用状态', 'Disabled'), + variant( + 'sizes', + 'Size', + '尺寸', + 'Small\nMedium\nLarge', + ), + variant( + 'colors', + 'Color', + '颜色', + 'Violet\nGreen', + ), + variant( + 'group', + 'Radio Group', + '单选组', + '\n Draft\n Balanced\n', + ), + ], + slider: [ + variant('default', 'Default', '默认', ''), + variant('disabled', 'Disabled State', '禁用状态', ''), + variant('vertical', 'Vertical Mode', '垂直模式', ''), + variant('bilateral', 'Bilateral Mode', '双向模式', ''), + variant('axis', 'Adding Coordinates', '加入坐标', ''), + variant('step', 'Step', '步进', ''), + variant( + 'custom', + 'Custom Styling', + '自定义样式', + "", + ), + variant('uncontrolled', 'Uncontrolled Mode', '非控模式', ''), + ], + switch: [ + variant('default', 'Default', '默认', 'Bypass'), + variant('toggled', 'Toggled State', '开启状态', 'Bypass'), + variant('disabled', 'Disabled State', '禁用状态', 'Bypass'), + variant( + 'sizes', + 'Size', + '尺寸', + 'Small\nMedium\nLarge', + ), + variant( + 'custom', + 'Custom Styling', + '自定义样式', + 'Custom', + ), + ], + lfo: [ + variant('default', 'Default', '默认', ''), + variant('delay', 'Delay', '延迟设置', ''), + ], + light: [ + variant('default', 'Default', '默认', ''), + variant('on', 'On State', '开启状态', ''), + variant( + 'colors', + 'Light Color', + '灯光颜色', + '\n', + ), + variant('sizes', 'Size', '尺寸', '\n'), + ], + oscilloscope: [ + variant( + 'default', + 'Default', + '默认', + '', + ), + ], + spectrogram: [ + variant( + 'default', + 'Audio Data', + '音频数据', + '', + ), + variant( + 'axis', + 'Axis', + '坐标轴', + '', + ), + variant( + 'grid', + 'Grid', + '网格', + '', + ), + variant( + 'eq3', + 'Use Case: EQ3', + '应用场景:EQ3', + '', + ), + ], + vumeter: [ + variant('default', 'Default', '默认', ''), + variant('horizontal', 'Horizontal Mode', '水平模式', ''), + variant('stereo', 'Stereo Mode', '双声道模式', ''), + variant('compact', 'Compact Mode', '紧凑模式', ''), + variant( + 'segments', + 'Number of Volume Bars', + '音量条数量', + '', + ), + variant( + 'colors', + 'Custom Colors', + '自定义颜色', + '', + ), + ], + waveform: [variant('default', 'Default', '默认', '')], + card: [ + variant( + 'default', + 'Default', + '默认', + 'DelayControls', + ), + variant( + 'active', + 'Active State', + '激活状态', + 'DelayActive', + ), + variant( + 'scenario', + 'Real-World Scenario', + '实际场景', + ' Tape delay', + ), + ], +} as const + +export type ComponentWithVariants = keyof typeof componentVariantInventory +export type ComponentVariantId = + (typeof componentVariantInventory)[Component][number]['id'] diff --git a/docs/app/_components/controller-api.tsx b/docs/app/_components/controller-api.tsx index 050394dd..6f5b6167 100644 --- a/docs/app/_components/controller-api.tsx +++ b/docs/app/_components/controller-api.tsx @@ -1,16 +1,39 @@ import type { FC } from 'react' -import { ApiTable, localizedText as text, type ApiSection, type Locale } from './api-reference' +import { + ApiTable, + DataAttributes, + localizedText as text, + type ApiSection, + type DataAttribute, + type Locale, +} from './api-reference' export type ControllerName = 'button' | 'checkbox' | 'envelope' | 'input' | 'knob' | 'radio' | 'slider' | 'switch' type ControllerApiDefinition = Readonly<{ + attributes: readonly DataAttribute[] main: ApiSection group?: ApiSection }> const definitions: Record = { button: { + attributes: [ + { + name: 'data-toggled', + values: 'true | false', + description: text('The effective pressed state.', '当前有效按下状态。'), + }, + { + name: 'data-disable', + values: 'true | false', + description: text( + 'The current runtime spelling for the disabled state.', + '当前运行时用于禁用状态的实际拼写。', + ), + }, + ], main: { name: 'Button', inherited: text( @@ -124,6 +147,18 @@ const definitions: Record = { }, }, checkbox: { + attributes: [ + { + name: 'data-checked', + values: 'true | false', + description: text('Whether the checkbox is selected.', '复选框是否选中。'), + }, + { + name: 'data-disabled', + values: 'true | false', + description: text('Whether the checkbox is disabled.', '复选框是否禁用。'), + }, + ], main: { name: 'Checkbox', inherited: text( @@ -261,6 +296,7 @@ const definitions: Record = { }, }, envelope: { + attributes: [], main: { name: 'Envelope', inherited: text( @@ -327,6 +363,21 @@ const definitions: Record = { }, }, input: { + attributes: [ + { + name: 'data-dragging', + values: 'true | false', + description: text('Whether vertical drag editing is active.', '是否正在进行垂直拖动编辑。'), + }, + { + name: 'data-bilateral', + values: 'false | positive | negative', + description: text( + 'Bilateral direction, or false outside bilateral mode.', + '双边方向;非双边模式时为 false。', + ), + }, + ], main: { name: 'Input', inherited: text( @@ -428,6 +479,28 @@ const definitions: Record = { }, }, knob: { + attributes: [ + { + name: 'data-dragging', + values: 'true | false', + description: text('Whether the knob is being dragged.', '旋钮是否正在拖动。'), + }, + { + name: 'data-disabled', + values: 'true | false', + description: text('Whether pointer interaction is disabled.', '是否禁用指针交互。'), + }, + { + name: 'data-bilateral', + values: 'true | false', + description: text('Whether bilateral progress is enabled.', '是否启用双向进度。'), + }, + { + name: 'data-direction', + values: 'positive | negative', + description: text('The current side of the midpoint.', '当前位于中点的哪一侧。'), + }, + ], main: { name: 'Knob', inherited: text( @@ -652,6 +725,18 @@ const definitions: Record = { }, }, radio: { + attributes: [ + { + name: 'data-checked', + values: 'true | false', + description: text('Whether the radio is selected.', '单选框是否选中。'), + }, + { + name: 'data-disabled', + values: 'true | false', + description: text('Whether the radio is disabled.', '单选框是否禁用。'), + }, + ], main: { name: 'Radio', inherited: text( @@ -774,6 +859,33 @@ const definitions: Record = { }, }, slider: { + attributes: [ + { + name: 'data-dragging', + values: 'true | false', + description: text('Whether the slider is being dragged.', '滑动条是否正在拖动。'), + }, + { + name: 'data-bilateral', + values: 'true | false', + description: text('Whether bilateral progress is enabled.', '是否启用双向进度。'), + }, + { + name: 'data-vertical', + values: 'true | false', + description: text('Whether the track is vertical.', '轨道是否垂直。'), + }, + { + name: 'data-disabled', + values: 'true | false', + description: text('Whether interaction is disabled.', '是否禁用交互。'), + }, + { + name: 'data-direction', + values: 'positive | negative', + description: text('The current side of the midpoint.', '当前位于中点的哪一侧。'), + }, + ], main: { name: 'Slider', inherited: text( @@ -893,6 +1005,18 @@ const definitions: Record = { }, }, switch: { + attributes: [ + { + name: 'data-toggled', + values: 'true | false', + description: text('The current on/off state.', '当前开关状态。'), + }, + { + name: 'data-disabled', + values: 'true | false', + description: text('Whether pointer interaction is disabled.', '是否禁用指针交互。'), + }, + ], main: { name: 'Switch', inherited: text( @@ -959,6 +1083,7 @@ export const ControllerApi: FC = ({ controller, lang }) => {
{definition.group && } +
) } diff --git a/docs/app/_components/display-api.tsx b/docs/app/_components/display-api.tsx index 43597ea4..d2879115 100644 --- a/docs/app/_components/display-api.tsx +++ b/docs/app/_components/display-api.tsx @@ -1,16 +1,25 @@ import type { FC } from 'react' -import { ApiTable, localizedText as text, type ApiSection, type Locale } from './api-reference' +import { + ApiTable, + DataAttributes, + localizedText as text, + type ApiSection, + type DataAttribute, + type Locale, +} from './api-reference' export type DisplayName = 'lfo' | 'light' | 'oscilloscope' | 'spectrogram' | 'vumeter' | 'waveform' | 'card' type DisplayApiDefinition = Readonly<{ + attributes: readonly DataAttribute[] main: ApiSection compound?: readonly ApiSection[] }> const definitions: Record = { lfo: { + attributes: [], main: { name: 'LFO', inherited: text( @@ -67,6 +76,7 @@ const definitions: Record = { }, }, light: { + attributes: [], main: { name: 'Light', inherited: text( @@ -99,6 +109,7 @@ const definitions: Record = { }, }, oscilloscope: { + attributes: [], main: { name: 'Oscilloscope', inherited: text( @@ -138,6 +149,7 @@ const definitions: Record = { }, }, spectrogram: { + attributes: [], main: { name: 'Spectrogram', inherited: text( @@ -249,6 +261,16 @@ const definitions: Record = { }, }, vumeter: { + attributes: [ + { + name: 'data-active', + values: 'none | low | medium | high', + description: text( + 'The level band represented by an individual meter segment.', + '单个电平分段当前表示的音量区间。', + ), + }, + ], main: { name: 'VuMeter', inherited: text( @@ -324,6 +346,7 @@ const definitions: Record = { }, }, waveform: { + attributes: [], main: { name: 'Waveform', inherited: text( @@ -448,6 +471,16 @@ const definitions: Record = { }, }, card: { + attributes: [ + { + name: 'data-toggled', + values: 'true | false', + description: text( + 'Whether the card uses its active visual state.', + '卡片是否使用激活视觉状态。', + ), + }, + ], main: { name: 'Card', inherited: text( @@ -501,6 +534,7 @@ export const DisplayApi: FC = ({ display, lang }) => { {definition.compound?.map((section) => ( ))} + ) } diff --git a/docs/app/_components/example-frame.module.css b/docs/app/_components/example-frame.module.css new file mode 100644 index 00000000..92d1efaa --- /dev/null +++ b/docs/app/_components/example-frame.module.css @@ -0,0 +1,100 @@ +.example { + margin-block: 24px 40px; +} + +.heading { + margin-bottom: 8px; +} + +.tabs { + align-items: center; + border-bottom: 1px solid var(--island-c-divider-light); + display: flex; + gap: 16px; +} + +.tab { + background: transparent; + border: 0; + border-bottom: 2px solid transparent; + color: var(--island-c-text-2); + cursor: pointer; + font: inherit; + padding: 8px 2px; +} + +.tab[aria-selected='true'] { + border-bottom-color: var(--island-c-brand); + color: var(--island-c-brand); +} + +.tab:focus-visible, +.copy:focus-visible { + outline: 2px solid var(--island-c-brand); + outline-offset: 2px; +} + +.preview, +.codePanel { + border: 1px solid var(--island-c-divider); + border-radius: 8px; + min-height: 112px; + position: relative; +} + +.preview { + align-items: center; + display: flex; + flex-wrap: wrap; + gap: 16px; + justify-content: center; + overflow: auto; + padding: 20px; +} + +.codePanel { + background: var(--echo-background); + padding: 20px; +} + +.copy { + background: var(--island-c-bg); + border: 1px solid var(--island-c-divider); + border-radius: 6px; + color: var(--island-c-text-1); + cursor: pointer; + font: inherit; + font-size: 12px; + padding: 5px 8px; + position: absolute; + right: 12px; + top: 12px; +} + +.source { + background: transparent; + border: 0; + font-family: var(--island-font-family-mono); + font-size: 13.6px; + line-height: 1.5; + margin: 0; + overflow: auto; + padding: 24px 0 0; + white-space: pre; +} + +.status { + color: var(--island-c-text-2); + display: block; + font-size: 12px; + min-height: 18px; + text-align: right; +} + +@media (prefers-reduced-motion: reduce) { + .tab, + .copy { + scroll-behavior: auto; + transition: none; + } +} diff --git a/docs/app/_components/example-frame.tsx b/docs/app/_components/example-frame.tsx new file mode 100644 index 00000000..587bb36a --- /dev/null +++ b/docs/app/_components/example-frame.tsx @@ -0,0 +1,134 @@ +'use client' + +import type { FC, KeyboardEvent, ReactNode } from 'react' +import { useId, useRef, useState } from 'react' +import type { DocumentationLocale } from './component-variants' +import styles from './example-frame.module.css' + +type ExampleTab = 'preview' | 'code' + +type ExampleFrameProps = Readonly<{ + label: string + lang: DocumentationLocale + preview: ReactNode + source: string +}> + +const copy = { + en: { + code: 'Code', + copied: 'Copied', + copy: 'Copy source', + copyError: 'Copy failed', + preview: 'Preview', + }, + zh: { + code: '代码', + copied: '已复制', + copy: '复制源码', + copyError: '复制失败', + preview: '预览', + }, +} as const + +export const ExampleFrame: FC = ({ label, lang, preview, source }) => { + const [activeTab, setActiveTab] = useState('preview') + const [copyStatus, setCopyStatus] = useState('') + const previewRef = useRef(null) + const codeRef = useRef(null) + const id = useId() + const labels = copy[lang] + + const selectTab = (tab: ExampleTab, focus = false) => { + setActiveTab(tab) + if (focus) { + const target = tab === 'preview' ? previewRef : codeRef + target.current?.focus() + } + } + + const handleTabKey = (event: KeyboardEvent) => { + let nextTab: ExampleTab | undefined + if (event.key === 'ArrowLeft' || event.key === 'ArrowUp' || event.key === 'Home') { + nextTab = 'preview' + } + if (event.key === 'ArrowRight' || event.key === 'ArrowDown' || event.key === 'End') { + nextTab = 'code' + } + if (!nextTab) return + event.preventDefault() + selectTab(nextTab, true) + } + + const copySource = async () => { + try { + await navigator.clipboard.writeText(source) + setCopyStatus(labels.copied) + } catch { + setCopyStatus(labels.copyError) + } + } + + return ( +
+

{label}

+
+ + +
+ {activeTab === 'preview' ? ( +
+ {preview} +
+ ) : ( +
+ +
+            {source}
+          
+ + {copyStatus} + +
+ )} +
+ ) +} diff --git a/docs/content/en/_meta.ts b/docs/content/en/_meta.ts index 93ad000c..97e51264 100644 --- a/docs/content/en/_meta.ts +++ b/docs/content/en/_meta.ts @@ -32,18 +32,18 @@ const meta: MetaRecord = { }, community: { items: { - discussions: { - href: 'https://github.com/codeacme17/echo-ui/discussions', - title: 'Discussions', - }, - issues: { - href: 'https://github.com/codeacme17/echo-ui/issues', - title: 'Issues', + github: { + href: 'https://github.com/codeacme17/echo-ui', + title: 'GitHub', }, discord: { href: 'https://discord.gg/R9JX9twvXF', title: 'Discord', }, + twitter: { + href: 'https://twitter.com/codeacme17', + title: 'Twitter', + }, }, title: 'Links', type: 'menu', diff --git a/docs/content/en/component/button.mdx b/docs/content/en/component/button.mdx index a71644f2..97e6670a 100644 --- a/docs/content/en/component/button.mdx +++ b/docs/content/en/component/button.mdx @@ -5,6 +5,7 @@ description: Render pressable and grouped audio controls with Echo UI Button. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Button @@ -28,6 +29,8 @@ The first button keeps its `toggled` state in React. The group is a controlled s + + ## State and grouping A standalone `Button` does not invert `toggled` when clicked. Treat `toggled` as a visual state and update it from `onClick` (or another application event). `onToggleChange` observes the effective state after render; it is not the click event. diff --git a/docs/content/en/component/card.mdx b/docs/content/en/component/card.mdx index f51dd974..a171bd65 100644 --- a/docs/content/en/component/card.mdx +++ b/docs/content/en/component/card.mdx @@ -5,6 +5,7 @@ description: Group related audio controls and status with Echo UI's compound Car import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Card @@ -22,6 +23,8 @@ import { Card } from '@nafr/echo-ui' + + ## Compose the slots ```tsx diff --git a/docs/content/en/component/checkbox.mdx b/docs/content/en/component/checkbox.mdx index 30c6bc85..be7a6bf6 100644 --- a/docs/content/en/component/checkbox.mdx +++ b/docs/content/en/component/checkbox.mdx @@ -5,6 +5,7 @@ description: Choose multiple audio options with Echo UI Checkbox and Checkbox.Gr import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Checkbox @@ -28,6 +29,8 @@ This controlled group writes the array from `event.value` back to `value`. + + ## Controlled and standalone use Without a group, the component keeps a local checked state initialized from `checked`; it also synchronizes when `checked` changes. `onChange` receives `{ value, nativeEvent }`, where `value` is the next Boolean. diff --git a/docs/content/en/component/envelope.mdx b/docs/content/en/component/envelope.mdx index 8aefab54..3870c438 100644 --- a/docs/content/en/component/envelope.mdx +++ b/docs/content/en/component/envelope.mdx @@ -5,6 +5,7 @@ description: Edit ADSR, AHDSR, and DADSR shapes with Echo UI Envelope. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Envelope @@ -31,6 +32,8 @@ Drag the SVG nodes or edit the equivalent native fields. Both paths update the s + + ## Data and limits `data` is required. Time stages use seconds (or any consistent duration unit); `sustain` is normalized from `0` to `1`. `limits` sets the maximum draggable duration for each time stage. If `delay` or `hold` is absent from `data`, that stage is removed and its limit becomes zero. diff --git a/docs/content/en/component/input.mdx b/docs/content/en/component/input.mdx index 918c08bc..408e5971 100644 --- a/docs/content/en/component/input.mdx +++ b/docs/content/en/component/input.mdx @@ -5,6 +5,7 @@ description: Enter or drag audio parameter values with Echo UI Input. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Input @@ -28,6 +29,8 @@ Type a gain value, or drag vertically after moving more than 20 pixels. The bila + + ## Value behavior The component keeps local state, initializes to `0`, and synchronizes when `value` changes. For application state, pass `value` and store `event.value` from `onChange`. Numeric values are clamped to `min` and `max`; dragging snaps to `step` and is scaled by `sensitivity`. diff --git a/docs/content/en/component/knob.mdx b/docs/content/en/component/knob.mdx index 26cce061..6e4f9181 100644 --- a/docs/content/en/component/knob.mdx +++ b/docs/content/en/component/knob.mdx @@ -5,6 +5,7 @@ description: Build rotary audio controls and parameter banks with Echo UI Knob. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Knob @@ -28,6 +29,8 @@ Drag upward or downward on either knob. The native range below mirrors Gain so k + + ## Values and groups The value defaults to `0`, is clamped to `min` and `max`, and snaps to `step` while dragging. `rotationRange` is clamped between 90 and 360 degrees. `bilateral` draws progress from the midpoint, which suits pan and bipolar modulation. diff --git a/docs/content/en/component/lfo.mdx b/docs/content/en/component/lfo.mdx index 49c91a2f..17b83740 100644 --- a/docs/content/en/component/lfo.mdx +++ b/docs/content/en/component/lfo.mdx @@ -5,6 +5,7 @@ description: Preview low-frequency modulation shapes and connect them to a real import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # LFO @@ -24,6 +25,8 @@ The controls below drive both the graph and a real oscillator-modulation chain. + + ## Customize the shape `amplitude` is normalized from `0` to `1`; `delay` is clamped to `0–1000` milliseconds. Give the parent an explicit height because the graph fills its container. diff --git a/docs/content/en/component/light.mdx b/docs/content/en/component/light.mdx index 08eacebd..d4fd8d53 100644 --- a/docs/content/en/component/light.mdx +++ b/docs/content/en/component/light.mdx @@ -5,6 +5,7 @@ description: Show audio and application state with Echo UI's compact indicator l import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Light @@ -24,6 +25,8 @@ This indicator is driven by the RMS level of a real `AnalyserNode`, rather than + + ## Color and size ```tsx diff --git a/docs/content/en/component/oscilloscope.mdx b/docs/content/en/component/oscilloscope.mdx index 57e71e53..13a2aa64 100644 --- a/docs/content/en/component/oscilloscope.mdx +++ b/docs/content/en/component/oscilloscope.mdx @@ -5,6 +5,7 @@ description: Render live time-domain audio samples with Echo UI Oscilloscope. import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Oscilloscope @@ -24,6 +25,8 @@ Start the bundled audio loop, stop its animation work, then reconnect the same m + + ## Convert analyser data ```tsx diff --git a/docs/content/en/component/radio.mdx b/docs/content/en/component/radio.mdx index b9857b0c..a2e3f6e4 100644 --- a/docs/content/en/component/radio.mdx +++ b/docs/content/en/component/radio.mdx @@ -5,6 +5,7 @@ description: Choose one audio option with Echo UI Radio and Radio.Group. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Radio @@ -28,6 +29,8 @@ The group keeps its selected option in React state and reports the next option t + + ## Controlled grouping A standalone radio initializes from `checked` and can synchronize from later `checked` props. `Radio.Group` is controlled: it compares the group's `value` with each child `value`, so update the group value from `onChange`. diff --git a/docs/content/en/component/slider.mdx b/docs/content/en/component/slider.mdx index 01b2088a..6de916d8 100644 --- a/docs/content/en/component/slider.mdx +++ b/docs/content/en/component/slider.mdx @@ -5,6 +5,7 @@ description: Display and edit continuous audio values with Echo UI Slider. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Slider @@ -28,6 +29,8 @@ Drag the track, or focus it and use an arrow key. The example adds the ARIA and + + ## Value behavior The value defaults to `0`, is clamped between `min` and `max`, and snaps to `step`. The component updates local state while dragging and synchronizes when `value` changes. Persist `onChange` for application state and use `onChangeEnd` for work that should run once, such as committing automation. diff --git a/docs/content/en/component/spectrogram.mdx b/docs/content/en/component/spectrogram.mdx index b9255827..b66f31e4 100644 --- a/docs/content/en/component/spectrogram.mdx +++ b/docs/content/en/component/spectrogram.mdx @@ -5,6 +5,7 @@ description: Plot live FFT data with logarithmic frequency axes, grids, and spec import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Spectrogram @@ -24,6 +25,8 @@ The trace below comes from `AnalyserNode.getFloatFrequencyData()` and is cleared + + ## Axis, grid, and fill ```tsx diff --git a/docs/content/en/component/switch.mdx b/docs/content/en/component/switch.mdx index 37fe8799..95847582 100644 --- a/docs/content/en/component/switch.mdx +++ b/docs/content/en/component/switch.mdx @@ -5,6 +5,7 @@ description: Toggle immediate audio settings with Echo UI Switch. import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Switch @@ -28,6 +29,8 @@ This controlled example supplies switch semantics and handles Space and Enter in + + ## State behavior `Switch` keeps an internal Boolean initialized from `toggled` and synchronizes when the prop changes. Its `onChange` effect runs on mount and after the internal state changes, so callback code should safely accept the initial value. diff --git a/docs/content/en/component/vumeter.mdx b/docs/content/en/component/vumeter.mdx index a613f04c..cd06e736 100644 --- a/docs/content/en/component/vumeter.mdx +++ b/docs/content/en/component/vumeter.mdx @@ -5,6 +5,7 @@ description: Monitor live mono or stereo signal levels with a configurable segme import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # VU Meter @@ -24,6 +25,8 @@ This meter derives its dB value from the RMS of real time-domain samples and sto + + ## Stereo and custom segments ```tsx diff --git a/docs/content/en/component/waveform.mdx b/docs/content/en/component/waveform.mdx index 650d579d..b6096f41 100644 --- a/docs/content/en/component/waveform.mdx +++ b/docs/content/en/component/waveform.mdx @@ -5,6 +5,7 @@ description: Display decoded audio peaks, playback progress, hover time, and see import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Waveform @@ -24,6 +25,8 @@ The first start decodes the bundled audio file, extracts real channel peaks, and + + ## Controlled progress and seeking ```tsx diff --git a/docs/content/en/guide/_meta.ts b/docs/content/en/guide/_meta.ts index 2621d243..c4336198 100644 --- a/docs/content/en/guide/_meta.ts +++ b/docs/content/en/guide/_meta.ts @@ -1,9 +1,17 @@ import type { MetaRecord } from 'nextra' const meta: MetaRecord = { + guideGroup: { + title: 'Guide', + type: 'separator', + }, introduction: 'Introduction', installation: 'Installation', declaration: 'Declaration', + aboutGroup: { + title: 'About', + type: 'separator', + }, about: 'About', } diff --git a/docs/content/en/guide/about.mdx b/docs/content/en/guide/about.mdx index c795fcd1..a66afb69 100644 --- a/docs/content/en/guide/about.mdx +++ b/docs/content/en/guide/about.mdx @@ -19,3 +19,7 @@ The project is still young and continues to evolve. Questions, bug reports, desi ## Join the community Join the [Echo UI Discord server](https://discord.gg/R9JX9twvXF) to talk with other users and contributors. + +You can also join through WeChat: + +![Echo UI WeChat community QR code](/wechat.jpg) diff --git a/docs/content/en/guide/installation.mdx b/docs/content/en/guide/installation.mdx index 0d0fb336..c6333aad 100644 --- a/docs/content/en/guide/installation.mdx +++ b/docs/content/en/guide/installation.mdx @@ -13,7 +13,7 @@ import { Callout, Steps, Tabs } from 'nextra/components' also supports matching React and React DOM versions from React `18.2` through React `19`. -## Compatibility +## 1. Check requirements and compatibility The `1.1.0` package is tested as an installed, packed dependency with Tailwind CSS `4.3.3` and `3.4.19`. Both fixtures compile representative controller, container, and visualization components from the published `dist` files, then compare their computed light and dark styles in Chromium. @@ -25,7 +25,7 @@ The `1.1.0` package is tested as an installed, packed dependency with Tailwind C The Tailwind packages are build-time dependencies in your application. Echo UI installs the listed `tailwind-variants` and `tailwind-merge` versions itself. -## Install Echo UI +## 2. Install Echo UI @@ -51,7 +51,9 @@ yarn add @nafr/echo-ui@^1.1.0 -## Tailwind CSS 4 (recommended) +## 3. Configure Tailwind CSS + +### Tailwind CSS 4 (recommended) @@ -98,7 +100,7 @@ export default function App() { `theme.css` contains the maintained light and dark tokens, the class-based dark variant, and Tailwind 4's CSS-first color and radius mappings. Override any `--echo-*` variable after this import to customize the theme. -## Tailwind CSS 3 +### Tailwind CSS 3 Use this path when an existing application cannot move to Tailwind 4 yet. @@ -151,6 +153,19 @@ Use the same component import shown in the Tailwind 4 path. +## 4. Import and render components + +Import the component and the application stylesheet that contains your selected Tailwind setup: + +```tsx filename="src/App.tsx" +import { Knob } from '@nafr/echo-ui' +import './index.css' + +export default function App() { + return +} +``` + ## Migrate from Tailwind CSS 3 to 4 1. Replace the Tailwind/PostCSS plugin setup with `tailwindcss@^4.3.3` and `@tailwindcss/vite@^4.3.3`. diff --git a/docs/content/en/guide/introduction.mdx b/docs/content/en/guide/introduction.mdx index 43785ace..411f4d12 100644 --- a/docs/content/en/guide/introduction.mdx +++ b/docs/content/en/guide/introduction.mdx @@ -20,22 +20,12 @@ The [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_A ## Features -### Out of the box +- **Out of the box**: Use purpose-built controls and visualizations to assemble experiences such as an equalizer, audio player, or browser-based instrument. -Use purpose-built controls and visualizations to assemble experiences such as an equalizer, audio player, or browser-based instrument. +- **High-quality interactions**: Interaction patterns take cues from established digital audio workstations such as [Ableton Live](https://www.ableton.com/en/live/) and [FL Studio](https://www.image-line.com/), where precision and immediate feedback matter. -### High-quality interactions +- **Customizable and extensible**: Echo UI is built with [React](https://react.dev/) and a token-based Tailwind theme, so applications can adapt its appearance and extend its components. See [Installation](../installation/) for the compatibility boundary of the current release. -Interaction patterns take cues from established digital audio workstations such as [Ableton Live](https://www.ableton.com/en/live/) and [FL Studio](https://www.image-line.com/), where precision and immediate feedback matter. +- **Audio-aware hooks**: Hooks for playback, loading, envelopes, meters, waveforms, oscilloscopes, and spectra help connect an interface to an audio graph. -### Customizable and extensible - -Echo UI is built with [React](https://react.dev/) and a token-based Tailwind theme, so applications can adapt its appearance and extend its components. See [Installation](../installation/) for the compatibility boundary of the current release. - -### Audio-aware hooks - -Hooks for playback, loading, envelopes, meters, waveforms, oscilloscopes, and spectra help connect an interface to an audio graph. - -### Responsive layouts - -Components adapt to the space available so the same controls can work across full workstations and compact layouts. +- **Responsive layouts**: Components adapt to the space available so the same controls can work across full workstations and compact layouts. diff --git a/docs/content/zh/_meta.ts b/docs/content/zh/_meta.ts index ad84d94e..0b66eeda 100644 --- a/docs/content/zh/_meta.ts +++ b/docs/content/zh/_meta.ts @@ -32,18 +32,18 @@ const meta: MetaRecord = { }, community: { items: { - discussions: { - href: 'https://github.com/codeacme17/echo-ui/discussions', - title: '讨论', - }, - issues: { - href: 'https://github.com/codeacme17/echo-ui/issues', - title: '问题反馈', + github: { + href: 'https://github.com/codeacme17/echo-ui', + title: 'GitHub', }, discord: { href: 'https://discord.gg/R9JX9twvXF', title: 'Discord', }, + twitter: { + href: 'https://twitter.com/codeacme17', + title: 'Twitter', + }, }, title: '链接', type: 'menu', diff --git a/docs/content/zh/component/button.mdx b/docs/content/zh/component/button.mdx index b4c4838e..a976399d 100644 --- a/docs/content/zh/component/button.mdx +++ b/docs/content/zh/component/button.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Button 构建可按下及分组的音频控件。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Button 按钮 @@ -28,6 +29,8 @@ export function AuditionButton() { + + ## 状态与分组 独立 `Button` 被点击时不会自行反转 `toggled`。应把 `toggled` 作为视觉状态,并在 `onClick` 或其他应用事件中更新它。`onToggleChange` 在渲染后观察有效状态,它并不是点击事件。 diff --git a/docs/content/zh/component/card.mdx b/docs/content/zh/component/card.mdx index 26f6cbb2..3c922bab 100644 --- a/docs/content/zh/component/card.mdx +++ b/docs/content/zh/component/card.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI 复合 Card 容器组织相关音频控件与状态 import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Card 卡片 @@ -22,6 +23,8 @@ import { Card } from '@nafr/echo-ui' + + ## 组合插槽 ```tsx diff --git a/docs/content/zh/component/checkbox.mdx b/docs/content/zh/component/checkbox.mdx index 0bd4b322..af190388 100644 --- a/docs/content/zh/component/checkbox.mdx +++ b/docs/content/zh/component/checkbox.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Checkbox 和 Checkbox.Group 选择多个音频选项 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Checkbox 复选框 @@ -28,6 +29,8 @@ export function NormalizeOption() { + + ## 受控与独立使用 不在分组中时,组件会保存一份由 `checked` 初始化的本地状态;外部 `checked` 改变时也会同步。`onChange` 接收 `{ value, nativeEvent }`,其中 `value` 是下一布尔值。 diff --git a/docs/content/zh/component/envelope.mdx b/docs/content/zh/component/envelope.mdx index 77ce68fa..db17dcff 100644 --- a/docs/content/zh/component/envelope.mdx +++ b/docs/content/zh/component/envelope.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Envelope 编辑 ADSR、AHDSR 和 DADSR 曲线。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Envelope 包络 @@ -31,6 +32,8 @@ const initial: EnvelopeData = { + + ## 数据与上限 `data` 为必填。时间阶段可使用秒或任意一致的时长单位;`sustain` 归一化到 `0` 至 `1`。`limits` 设置各时间阶段可拖动的最大时长。若 `data` 未包含 `delay` 或 `hold`,该阶段会被移除,对应上限也会变为零。 diff --git a/docs/content/zh/component/input.mdx b/docs/content/zh/component/input.mdx index 020d6b9b..d76c0634 100644 --- a/docs/content/zh/component/input.mdx +++ b/docs/content/zh/component/input.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Input 输入或拖动音频参数值。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Input 输入框 @@ -28,6 +29,8 @@ export function TrackName() { + + ## 数值行为 组件保存本地状态,默认值为 `0`,并在 `value` 改变时同步。应用状态应传入 `value`,并保存 `onChange` 的 `event.value`。数字值会限制在 `min` 和 `max` 之间;拖动按 `step` 吸附,并由 `sensitivity` 缩放。 diff --git a/docs/content/zh/component/knob.mdx b/docs/content/zh/component/knob.mdx index a4b7b8b8..b02695f4 100644 --- a/docs/content/zh/component/knob.mdx +++ b/docs/content/zh/component/knob.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Knob 构建旋转式音频控件和参数组。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Knob 旋钮 @@ -28,6 +29,8 @@ export function GainKnob() { + + ## 数值与分组 数值默认是 `0`,会限制在 `min` 与 `max` 之间,并在拖动时按 `step` 吸附。`rotationRange` 限制在 90 至 360 度。`bilateral` 从中点绘制进度,适合声像和双极调制。 diff --git a/docs/content/zh/component/lfo.mdx b/docs/content/zh/component/lfo.mdx index a347d227..e64bb48b 100644 --- a/docs/content/zh/component/lfo.mdx +++ b/docs/content/zh/component/lfo.mdx @@ -5,6 +5,7 @@ description: 预览低频调制波形,并将其连接到真实的 Web Audio import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # LFO 低频振荡器 @@ -24,6 +25,8 @@ import { LFO } from '@nafr/echo-ui' + + ## 自定义波形 `amplitude` 会限制在 `0` 到 `1`,`delay` 会限制在 `0–1000` 毫秒。图形会填满父容器,请为父容器设置明确高度。 diff --git a/docs/content/zh/component/light.mdx b/docs/content/zh/component/light.mdx index 4d50377a..deb118e4 100644 --- a/docs/content/zh/component/light.mdx +++ b/docs/content/zh/component/light.mdx @@ -5,6 +5,7 @@ description: 使用紧凑的 Echo UI 指示灯显示音频与应用状态。 import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Light 指示灯 @@ -24,6 +25,8 @@ import { Light } from '@nafr/echo-ui' + + ## 颜色与尺寸 ```tsx diff --git a/docs/content/zh/component/oscilloscope.mdx b/docs/content/zh/component/oscilloscope.mdx index 80b87a4d..b3ad4a4c 100644 --- a/docs/content/zh/component/oscilloscope.mdx +++ b/docs/content/zh/component/oscilloscope.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Oscilloscope 绘制实时音频时域采样。 import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Oscilloscope 示波器 @@ -24,6 +25,8 @@ import { Oscilloscope, type OscilloscopeDataPoint } from '@nafr/echo-ui' + + ## 转换分析器数据 ```tsx diff --git a/docs/content/zh/component/radio.mdx b/docs/content/zh/component/radio.mdx index 54816ad3..e041c2ec 100644 --- a/docs/content/zh/component/radio.mdx +++ b/docs/content/zh/component/radio.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Radio 和 Radio.Group 选择一个音频选项。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Radio 单选框 @@ -28,6 +29,8 @@ export function QualityChoice() { + + ## 受控分组 独立单选框由 `checked` 初始化,并可在后续 `checked` 属性改变时同步。`Radio.Group` 是受控的:它比较分组 `value` 与各子项 `value`,因此需要从 `onChange` 更新分组值。 diff --git a/docs/content/zh/component/slider.mdx b/docs/content/zh/component/slider.mdx index 90612834..8026969d 100644 --- a/docs/content/zh/component/slider.mdx +++ b/docs/content/zh/component/slider.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Slider 显示和编辑连续音频数值。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Slider 滑动条 @@ -28,6 +29,8 @@ export function MixSlider() { + + ## 数值行为 数值默认是 `0`,会限制在 `min` 和 `max` 之间,并按 `step` 吸附。拖动时组件更新本地状态,`value` 改变时会同步。应用状态应保存 `onChange`;提交自动化等只需执行一次的工作可放在 `onChangeEnd`。 diff --git a/docs/content/zh/component/spectrogram.mdx b/docs/content/zh/component/spectrogram.mdx index 02c7b8c9..5c740441 100644 --- a/docs/content/zh/component/spectrogram.mdx +++ b/docs/content/zh/component/spectrogram.mdx @@ -5,6 +5,7 @@ description: 使用对数频率轴、网格与填充绘制实时 FFT 数据。 import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Spectrogram 频谱图 @@ -24,6 +25,8 @@ import { Spectrogram, type SpectrogramDataPoint } from '@nafr/echo-ui' + + ## 坐标轴、网格与填充 ```tsx diff --git a/docs/content/zh/component/switch.mdx b/docs/content/zh/component/switch.mdx index ebec7e59..8d0b5f5a 100644 --- a/docs/content/zh/component/switch.mdx +++ b/docs/content/zh/component/switch.mdx @@ -5,6 +5,7 @@ description: 使用 Echo UI Switch 切换立即生效的音频设置。 import { ControllerApi } from '@/app/_components/controller-api' import { ControllerDemo } from '@/app/_components/controller-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Switch 开关 @@ -28,6 +29,8 @@ export function MonitoringSwitch() { + + ## 状态行为 `Switch` 保存一份由 `toggled` 初始化的内部布尔值,并在属性变化时同步。它的 `onChange` effect 会在挂载时以及内部状态变化后运行,因此回调代码应能安全接收初始值。 diff --git a/docs/content/zh/component/vumeter.mdx b/docs/content/zh/component/vumeter.mdx index 1ea9cb78..d166b525 100644 --- a/docs/content/zh/component/vumeter.mdx +++ b/docs/content/zh/component/vumeter.mdx @@ -5,6 +5,7 @@ description: 使用可配置的分段电平表监控实时单声道或立体声 import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # VU Meter 电平表 @@ -24,6 +25,8 @@ import { VuMeter } from '@nafr/echo-ui' + + ## 立体声与自定义分段 ```tsx diff --git a/docs/content/zh/component/waveform.mdx b/docs/content/zh/component/waveform.mdx index 0fd25006..bb78c41b 100644 --- a/docs/content/zh/component/waveform.mdx +++ b/docs/content/zh/component/waveform.mdx @@ -5,6 +5,7 @@ description: 显示解码后的音频峰值、播放进度、悬停时间与定 import { DisplayApi } from '@/app/_components/display-api' import { DisplayDemo } from '@/app/_components/display-demo' +import { ComponentVariantMatrix } from '@/app/_components/component-variant-matrix' import { InstallPackage } from '@/app/_components/install-package' # Waveform 波形 @@ -24,6 +25,8 @@ import { Waveform, type WaveformMouseEvent } from '@nafr/echo-ui' + + ## 受控进度与定位 ```tsx diff --git a/docs/content/zh/guide/_meta.ts b/docs/content/zh/guide/_meta.ts index d8758eed..c3c562e2 100644 --- a/docs/content/zh/guide/_meta.ts +++ b/docs/content/zh/guide/_meta.ts @@ -1,9 +1,17 @@ import type { MetaRecord } from 'nextra' const meta: MetaRecord = { + guideGroup: { + title: '指南', + type: 'separator', + }, introduction: '介绍', installation: '安装', declaration: '声明', + aboutGroup: { + title: '关于', + type: 'separator', + }, about: '关于', } diff --git a/docs/content/zh/guide/about.mdx b/docs/content/zh/guide/about.mdx index 19dca8bb..cd4ba7d7 100644 --- a/docs/content/zh/guide/about.mdx +++ b/docs/content/zh/guide/about.mdx @@ -19,3 +19,7 @@ Echo UI 由 [leyoonafr](https://github.com/codeacme17) 于 2023 年 10 月发起 ## 加入社区 加入 [Echo UI Discord 服务器](https://discord.gg/R9JX9twvXF),与其他用户和贡献者交流。 + +也可以通过 WeChat 加入交流群: + +![Echo UI WeChat 交流群二维码](/wechat.jpg) diff --git a/docs/content/zh/guide/installation.mdx b/docs/content/zh/guide/installation.mdx index 7acad861..f9852f23 100644 --- a/docs/content/zh/guide/installation.mdx +++ b/docs/content/zh/guide/installation.mdx @@ -13,7 +13,7 @@ import { Callout, Steps, Tabs } from 'nextra/components' React DOM 使用对应版本。 -## 兼容性 +## 1. 检查要求与兼容性 `1.1.0` 软件包会先被打包为已安装依赖,再分别使用 Tailwind CSS `4.3.3` 和 `3.4.19` 测试。两个 fixture 都会从已发布的 `dist` 文件编译具有代表性的控制器、容器和可视化组件,并在 Chromium 中比较亮色和暗色模式下的计算样式。 @@ -25,7 +25,7 @@ import { Callout, Steps, Tabs } from 'nextra/components' Tailwind 软件包是应用的构建时依赖。Echo UI 会自行安装表中对应版本的 `tailwind-variants` 与 `tailwind-merge`。 -## 安装 Echo UI +## 2. 安装 Echo UI @@ -51,7 +51,9 @@ yarn add @nafr/echo-ui@^1.1.0 -## Tailwind CSS 4(推荐) +## 3. 配置 Tailwind CSS + +### Tailwind CSS 4(推荐) @@ -98,7 +100,7 @@ export default function App() { `theme.css` 包含持续维护的亮色与暗色 token、基于 class 的暗色变体,以及 Tailwind 4 的 CSS-first 颜色和圆角映射。若要自定义主题,请在引入后覆盖任意 `--echo-*` 变量。 -## Tailwind CSS 3 +### Tailwind CSS 3 现有应用暂时无法迁移到 Tailwind 4 时,请使用此路径。 @@ -151,6 +153,19 @@ export default { +## 4. 引入并渲染组件 + +引入组件,以及包含所选 Tailwind 配置的应用样式表: + +```tsx filename="src/App.tsx" +import { Knob } from '@nafr/echo-ui' +import './index.css' + +export default function App() { + return +} +``` + ## 从 Tailwind CSS 3 迁移到 4 1. 使用 `tailwindcss@^4.3.3` 与 `@tailwindcss/vite@^4.3.3` 替换原有 Tailwind/PostCSS 插件配置。 diff --git a/docs/content/zh/guide/introduction.mdx b/docs/content/zh/guide/introduction.mdx index 3c90cfa7..8f4fb4b1 100644 --- a/docs/content/zh/guide/introduction.mdx +++ b/docs/content/zh/guide/introduction.mdx @@ -20,22 +20,12 @@ import { Callout } from 'nextra/components' ## 特性 -### 开箱即用 +- **开箱即用**:使用专为音频设计的控件和可视化组件,快速组装 EQ 均衡器、音频播放器或浏览器乐器。 -使用专为音频设计的控件和可视化组件,快速组装 EQ 均衡器、音频播放器或浏览器乐器。 +- **优质交互**:交互方式参考 [Ableton Live](https://www.ableton.com/en/live/) 和 [FL Studio](https://www.image-line.com/) 等成熟的数字音频工作站,强调精准操作与即时反馈。 -### 优质交互 +- **可定制、易扩展**:Echo UI 基于 [React](https://react.dev/) 和 token 化的 Tailwind 主题构建,便于调整视觉风格和扩展组件。当前发行版的兼容边界请查看[安装](../installation/)。 -交互方式参考 [Ableton Live](https://www.ableton.com/en/live/) 和 [FL Studio](https://www.image-line.com/) 等成熟的数字音频工作站,强调精准操作与即时反馈。 +- **懂音频的 Hook**:播放、加载、包络、电平、波形、示波和频谱等 Hook,可帮助界面与音频图建立联系。 -### 可定制、易扩展 - -Echo UI 基于 [React](https://react.dev/) 和 token 化的 Tailwind 主题构建,便于调整视觉风格和扩展组件。当前发行版的兼容边界请查看[安装](../installation/)。 - -### 懂音频的 Hook - -播放、加载、包络、电平、波形、示波和频谱等 Hook,可帮助界面与音频图建立联系。 - -### 响应式布局 - -组件会根据可用空间调整,同一套控件既可用于完整的桌面工作台,也可适应紧凑布局。 +- **响应式布局**:组件会根据可用空间调整,同一套控件既可用于完整的桌面工作台,也可适应紧凑布局。 diff --git a/docs/visual-baselines/island-v1.json b/docs/visual-baselines/island-v1.json new file mode 100644 index 00000000..5e987497 --- /dev/null +++ b/docs/visual-baselines/island-v1.json @@ -0,0 +1,99 @@ +{ + "version": 1, + "source": { + "kind": "preserved IslandJS build and source", + "commit": "86f2008^", + "liveReference": "https://echoui.dev/en/", + "capturedAt": "2026-07-24" + }, + "profiles": ["desktop-light", "desktop-dark", "mobile-light", "mobile-dark"], + "viewports": { + "desktop": { + "width": 1440, + "height": 900 + }, + "mobile": { + "width": 390, + "height": 844 + } + }, + "routes": { + "home": "/en/", + "guide": "/en/guide/introduction/", + "controller": "/en/component/button/", + "visualization": "/en/component/spectrogram/", + "hook": "/en/hook/usePlayer/" + }, + "categoryContracts": { + "guide": { + "selector": "article main .nextra-callout", + "desktopWidth": 704, + "mobileWidth": 318, + "borderRadius": "8px", + "borderWidth": "1px", + "padding": "16px 20px", + "iconCount": 0 + }, + "controller": { + "selector": "[data-component-variant-matrix=\"button\"] section:first-child [role=\"tabpanel\"]", + "desktopWidth": 704, + "mobileWidth": 318, + "borderRadius": "8px", + "borderWidth": "1px", + "minimumHeight": 112, + "variantCount": 6, + "tabCount": 12 + }, + "visualization": { + "selector": "[data-component-variant-matrix=\"spectrogram\"] section:first-child [role=\"tabpanel\"]", + "desktopWidth": 704, + "mobileWidth": 318, + "borderRadius": "8px", + "borderWidth": "1px", + "minimumHeight": 202, + "variantCount": 4, + "renderedGraphCount": 4 + }, + "hook": { + "selector": "section[data-hook-demo=\"usePlayer\"]", + "desktopWidth": 704, + "mobileWidth": 318, + "borderRadius": "8px", + "borderWidth": "1px", + "minimumHeight": 200, + "statusCount": 1 + } + }, + "shell": { + "desktop": { + "headerHeight": 60, + "sidebarWidth": 272, + "articleWidth": 704, + "articleX": 380, + "articleY": 84, + "tocWidth": 224, + "tocX": 1184, + "tocY": 84 + }, + "mobile": { + "headerHeight": 56, + "contentWidth": 318, + "contentX": 40, + "contentY": 116, + "menuHeight": 48 + }, + "colors": { + "lightBackground": "rgb(255, 255, 255)", + "lightText": "rgb(33, 53, 71)", + "darkBackground": "rgb(19, 19, 19)", + "darkText": "rgba(255, 255, 255, 0.87)", + "brand": "rgb(253, 170, 4)" + } + }, + "notes": [ + "Measurements originate in the preserved Island theme/build and are compared with a one-pixel tolerance.", + "Category contracts preserve route-specific geometry, chrome, counts, and rendered graph/demo state instead of checking marker presence alone.", + "Both locales reuse the same geometry; localized text, route language, and overflow are asserted separately.", + "React 19, Tailwind CSS 4, Tone.js 15, accessibility, lifecycle, error handling, and real-audio demonstrations are intentional modern additions." + ] +} diff --git a/screen-shots/20260724T132107Z-issue-108-743034/INDEX.md b/screen-shots/20260724T132107Z-issue-108-743034/INDEX.md new file mode 100644 index 00000000..0fece284 --- /dev/null +++ b/screen-shots/20260724T132107Z-issue-108-743034/INDEX.md @@ -0,0 +1,35 @@ +# Issue #108 UI evidence + +The route-specific `before-*` captures were rendered from the frozen base SHA `9eea05360a90e46a4c66c2e821e9ad5bd6c71c67`. The `after-*` captures were rendered from this implementation after `pnpm build:docs`. The two `before-migration-preview-*` files are preserved historical migration previews; they are context only and are not treated as Island baselines. + +## Focused before/after comparisons + +| Category | Before | After | Route | Locale | Theme | Viewport | Acceptance evidence | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Home/root | `before-root-language-picker-en-light-desktop.png` | `after-root-redirect-en-light-desktop.png` | `/` → `/en/` | English | Light | 1440×900 | The frozen-base editorial language picker is replaced by a verified direct redirect into the Island home. | +| Guide | `before-introduction-en-light-desktop.png` | `after-introduction-en-light-desktop-edit.png` | `/en/guide/introduction/` | English | Light | Neutral callout, compact feature-list rhythm, Guide/About grouping, and visible edit link. | +| Controller | `before-button-zh-light-mobile.png` | `after-button-zh-light-mobile-code-copy.png` | `/zh/component/button/` | Chinese | Light | 390×844 | Complete live variant matrix plus adjacent localized Code tab and successful copy state. | +| Visualization | `before-spectrogram-zh-light-desktop.png` | `after-spectrogram-zh-light-desktop-links.png` | `/zh/component/spectrogram/` | Chinese | Light | 1440×900 | Restored visualization variants and exact GitHub/Discord/Twitter Links menu. | +| Hook | `before-use-player-en-dark-desktop.png` | `after-use-player-en-dark-desktop-audio.png` | `/en/hook/usePlayer/` | English | Dark | 1440×900 | Rich real-audio demo, status, lifecycle, and error guidance remain available. | + +## Additional after-state interaction evidence + +| Capture | Route | Locale | Theme | Viewport | Interaction or acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `after-introduction-zh-dark-mobile-nav.png` | `/zh/guide/introduction/` | Chinese | Dark | 390×844 | Mobile section-navigation control expanded with `aria-expanded="true"`. | +| `after-about-en-dark-desktop-wechat.png` | `/en/guide/about/` | English | Dark | 1440×900 | Restored WeChat choice and shipped QR asset. | +| `after-knob-en-dark-mobile.png` | `/en/component/knob/` | English | Dark | 390×844 | Responsive controller variant matrix without horizontal overflow. | +| `after-introduction-en-light-desktop-pagination-footer.png` | `/en/guide/introduction/` | English | Light | 1440×900 | Visible next-page navigation and unobscured MIT license/copyright footer. | +| `after-introduction-en-light-desktop-edit.png` | `/en/guide/introduction/` | English | Light | 1440×900 | Visible “Edit this page on GitHub” control in the desktop outline. | +| `after-locale-switch-en-light-desktop.png` | `/en/guide/introduction/` | English | Light | 1440×900 | Locale switch opened from the header. | +| `after-theme-switch-en-dark-desktop.png` | `/en/guide/introduction/` | English | Dark | 1440×900 | Theme switch changed the rendered document to dark mode. | + +## Deterministic coverage and observations + +`node scripts/verify-docs-ui.mjs` exercises English and Chinese at 1440×900 and 390×844 in light and dark themes. It checks representative home, guide, controller, visualization, and Hook routes, then all 15 component routes. The final run passed 120 component and 8 localized-home checks, including shell geometry, visible desktop edit controls, previous/next navigation, footer behavior, route markers, and horizontal overflow. + +The after root capture starts navigation at `/`; the evidence generator asserts that the final browser pathname is `/en/` before writing the PNG. `node scripts/verify-nextra-output.mjs` also checks the exported root's canonical link, meta redirect, and JavaScript redirect. + +The Preview/Code control uses an ARIA tablist. Keyboard verification covers ArrowLeft, ArrowRight, Home, and End focus/selection behavior, while `:focus-visible` supplies a two-pixel brand outline for tabs and the copy control. Copy success is announced through a polite status region. Under `prefers-reduced-motion: reduce`, tab and copy-control transitions are removed. + +The checked-in maintained visual contract is `docs/visual-baselines/island-v1.json`, sourced from the preserved Island revision `86f2008^`. The PNGs in this folder are review evidence; the JSON contract and browser verifier are the deterministic regression gate. diff --git a/screen-shots/20260724T132107Z-issue-108-743034/after-about-en-dark-desktop-wechat.png b/screen-shots/20260724T132107Z-issue-108-743034/after-about-en-dark-desktop-wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..7002c9f5ddda3ec57c399373db965489eda9f3a3 GIT binary patch literal 202657 zcmd43bx@UE8$PO{pi+WJHv%Hv4bt66cb9b62I&Ur5R~pN>5vBL?(XjXt?m21-#P!D znR8~&GmZ?p_p{ft)}7aN-8)EDS_JVm_Uk84o*;^e3d%ou^5VynCosM*pMigwqJ8T3 zSVuE~%&MABIFT4~#FTx&i&NfQW&d<*mdHo<1e;q9T`fGaNhntz;^k*MmzW#uo z;OiShIRAY_f_1j>l!p^?;hZ>=I6wV$^YZ$5;g{X*LgM$+IlDjSA5=RrXOej`U?+{p9%uyRvcIOJ(O^>8ocu6`i6wibSS z`2^Z}MTfDCB+i*!8eY_Qh0F;n<33%*d(2REi)HB?zM!a{>Ih<|X?mgG3``zt9#jH%iXwVm(5lk!*rdz}Y+1A5UEC@9UE%=Z+Wk`%51|Z{B zpn&zH*CUvN1tI;4Ph;kHVwmyxexR>VD4l3|iw0e8T^}8Ie@cse`%`(U=6dAV;e!u3 z8HgDJSfiQ@DBxOmKwt~}FpD*U$M@KC{2*8!IJ^OmBPA2MP2KBR$M<)koUpipF^!l; zY=<;`Y$;(ZO!eFT(CF}e1g-zg&f`((5rq%Gwh5KO4&DGy>RYwog3QA#HllBzxZlF;|+cB$s6dW z;^B(3rUZUM=x4K~4hYwBy*Hc+VZpT+x4nfRvXC47U7)>_F1W4gA00!{3eG>nP8E8> z)CJ~2Y_!M@Em7C@?Ix>;a2bgDbqXpC9rixp)>{WH;F!uo+QF|?a{g!JH&&Svs88?t zacN!4u0#b3*U5H6W~hOlg%d~@ z%EAvXGJ=>P&Kk-xTTM4l2oBRism|UstQ-$|q!SF8X_npal;7R33#Ba}4%mjVdwZVa zTVt3RME8Dd6U-EU&rcJ2e(>xmmbpFDuTv-TtuRNlKN!A>H^xPB?9{Dfjt|Re!QOBB zcdL~3pj*|URQGcl=ld{fCEvY(YTq7VJr|W|&4K@LYZFUhm|i9H*bQO>0z|B>OPiaU zBO)Sla&qG2f`Wo}VEKbGTi7 zJ;kdV8wcyFhX>19zoc#D`S~>}=}D&_3}_Zh`p33QRTbKW-ydsh<5b5PIZ=%wLU*?y z7>z={RHrqW)oP*6fs%y5FXCIY|-S=mz`r>KLr@Ou8hXT7NbkKLT=s9yvRgGp2O+FqF7(b;TIc6<_Lq75nF?65~;V3=ouOW?3FW?M)RgWkx{L9bAMm6 z!TGqhwzfdI#E5LN)HgFj_9s6N56|Xc8rYx7a=-etv@~JCUzjU0?%PYVt@HETWMsm9 zBnZ`d2;&*Kw zePh<%XBeHGorp;X*RUs2Ui3{kPV3tnH8k3{_vR;9zCl5eqd`MOMa9Q2Ubhrwee-*+ z)@HRgmXd;kB1uBmJ1Q#bN=my>r7Sl$*8tA4%~0#$OS*im_41$ZoZ1b}HrFTX*u&g; zfNUk0zij2@QJV-G8XDdd7Hif!K0e&5;p>#Lv)tPY2w?~(E6mYPY>m~W{D@FY zp(dSGsj9D6c9-e znNJoIEe(~2QsGi^xSV9hotKj=Iqz3Z);S$ove?eoIb?`LR5M~AwRT65)L70ZC3=xC zG1>QgBL%;hEjBfJatW^#;d8sDa5#vwSgrgHI^7r;4YUoLsWRui*~)-J!cAZ{k5jY) zhM^7a=610c^yVz})kA+;fu6O_RWrS+oJ4EXO1b%DvJgVPOo-wy(if$lJ$$xdQKAZ5 z>dX;)$?%%@9GOR`=Y!N0rFZ1Xk7Lt3s25$U1@64<4$P4a7d;f5oSf$Dc$^M2`1!vI ztCk1^Ac;ia4{S`JOC>S2?l*p!t)5PL;`C7Guv_hXyfURSS#>?Y+#5qNTK#3V+^|m% zlXPM>5I!8 z@tA;^4|318JM%vmcwVn#oNume3?xGy?^#d6VG*&J%qJx6P#+M`Xf!Y%%~X5Z+cV@c zgsUf3ZoWb;L|*wz%0$Y+q+%;pnK2KXwI7su%2a-FN{frf8uic!jy;Cm9c2Jf$5wdz zYiCu7Q0hIG`*O%I9B(ieJH?9k%r;X4feoash2_LE&PH8Y_{X{C+&w zYj5vxZ|+V9j}J4&qK{^U`}&ett-{^Zk|dTrr!Mwq2ZWn$b_%ST@2lg8VBnAn0;HX^} zNg^TLteEm*7I^yor_BKC9KD_uKfl-SEXQh1?d`{QK2sJJ&gpDj9A$v$Xa1mN=n&Fh zO|uDq9sb3e{=2SEQPA`xuqTC&{@I1Dq#x;3aad-ZPU$1^I}~86r4tybHjZiU;|?pX zb-Eu$@A&WJi$x3<2jnEW8I1m<1TFFc$Lm<+yW7TPw_QtNw>u&sKU7+8p{;|*pxK+R zSI*#UJnqDq;THQm_av{1NDQtsoUAUVyjs3K-8AGH zX##FGR-lZ$UJ2IYal2oGL8~(!> zE^-PAvHa842;PU>^_M;&*~25-T4NV$+cI(Y>ub+mz-u;G0~L18M`a`l;{i$cX`;KJo}b=lEPCq+1E^8p$qOByO{ug zwA4aAST4C~M!oqco*)=!h=CsRsW%GVau9M@vl&{y!BLw<@b>NL!|kDjvfuIXaWt9K z$?0iK9k0qsq=&6y<5?3Qza&1qn>w`f8QPEv&nI!C<%XaN0&+p}^ z#)?2jd*FHw3%fE}1L7{Fa_ zJc2+|CJesi*M6VxeK6??lQft7O*a30=LPW=4NmsMryg`ehr6rRL-h9~jK+TizaGum z4gREy;D-yoWHz602bKlQ%z5SaD@mU#{k}Nr4B@c0i1af3F5*;`DzkUN9|=6pP+mU< z3dyc~O7TX0*i3^QEH8UE&j|P)`7|3TZ_>+J(2%)t99a;)8Xv z%gD$8W;D*>u%pB7c6rcYq(cG%c!0KQ0xQl9*_&#|-aqt;r+Vfn2ZTJ`JN7Wv@@sIJ z!056CyU#l?vby@FUk4pF-5!7pQE$Kf^}a2!>fB473Y|01ZQp3M`QgU=?xV1O zmLcc%+Ox@i1sQI`iEUUd@h;rr{NLW`l@+|hBqSu@xssQCUlg=&^7rXYV_2UZ%;WI+ zyIzmV@Pdj4$>}FOsx~EvMr_4gxU|o0?{Cf(p28uudOd|fBH#%fL=`t&?~QG50SA8U z{X6UK59cA3O6im6#`6hvWS%QRd2V+k=5#J32=l0i_}ho6rNiir1pTh?d8b7WPy>U! z|M`B&Bs&E^h-kuZ5U>0$0N?c`gzE?{gWvD9DECoNyS91e?fvcL z{X1v%>eez^42`B^S9sB6A#;#mOQqW-&0LQP-6Jbj^nrBNE!uehVd3!fx_T&s(T^Kg zP)VmFP$cpi_N2~A$@RXI-X7j^Tn#@`slh53J<#UvUZK@fjjHT@=Z|1qmAmO_SNz+uo5*7cp>{aU3^9(1pe0z?(4D2 zaWtB0jjj%+H{Lkuwu6teR?R|UnCsz3N7ga4NANke>%AX>OtRhjKBy8VxBT{l$2b_x zL4Fqg@pJx?7LsR==sv<-nDDa8Or>eL{LWof%zs#b0jWIa6H+uZvp4cOu6M-zLD(+J$G>!H|@QkHauSS5W zc6`mtzlSS;$>Yv8LU3nJN!!h#6p`AnzP|3am^LN4=VxR#;H_N^3i?h@qVcvD`kTX< zqVzkHB@t`_X*O#*bw3lUwHeP_C4 zl*&_w7;3k8yEVLcjV4PQRlKb2Zgg~bcYV5U_Z68P35!O-oy@R&wJTzE77pemvo+r; zWrjh|H{hr(Iq=FwnK(%lG<+>Y5+uF5kx8oxUO3N;#-E)ZnaYooj`%gpTuC~Bf+nal zkpbCq+dT}%&LAy+SP3in_ z=kgn?e9CAbX<23oR7mvh2XpL_5rb70j4Kk?zr5&GvNsC%#Ay(=r6Rw8CX2v*OV=lv zh@Oc4{d;X6*f5*kvwhj$2b!EmMQjFJM`q*ZxE#)(gpc23TdG z;dCLCs@hV@H}QQvL7|KqeSSp=$&hZoS ziU{K!15tr7%shu3L$h4eWSy7wj<-Bn$$Yn)fs}pNj}Nz2ziihFoBRkqUWMdYNqQ6T z?o5V|>{Fc0$LLM9x5M}$-Dyrlbe)uaV3vPDoWD|Z_gcOKYi_Gkij2Z(YZt{p;1;Q{ zt?)1iJm&RPCYd_$_gnK#%$0a@d4CLTca+PX4)Zhpj-J_tmEzbJ6f0br{gnmvOEuhcr)SS%(y94!r|T zmhm&EiO~tjF+H841i9gr>Nf5UiBZwqMCPWg&x7Tq2S|s7Tfe>-$5j2gj<}D*YWX7< z-6CChr6SDbn7yYu+fwikzsgXyR5B=w)SLWxqd{JpZStu9euJk(WW#H{)B;jgU?xlr z+EKjv#~{BPcKfX%kS0p+cE$@xI%z)VD@sa+et#%F3K&u<;ysUFSckNQAt5}nc6!I+ zP{Z2#p3%9U@4Rz2-=D7_XR6#f&}2De_x1bE?yRFdX*vJ>j~Q^D(W^xrj!`4Fc{+{+ z%e5qhPlEOlDh;z0&P_2a;}4Ww=&vR7>G%F4{pWANuVJyJX$VzGMsk_ z%vMepph+ClF(-xvGwLirklYXw*U2Blt|ksk8jJS~(EP^1Bd(BzVZVLz<_IK?6=g(F z^-HDaODu^XS-Ok6^z(ry8AjIkzM{7~+maLfm@nTrC&}%3S6k$#6IM$SvZ%J0{3ACM zGI~#)nO|&-tj=lph?#D}?S6G69EN?qKdam)l?v)e)&=KPPz{$T6(xo8rFbvam4KGB z9hoX;_wS=#{L1+{E?rc zpOBvB^>@a&{I=+RIWHne&f1XYUq7UWFG@DXKJiUv{pt>fQ7EA5U!d`l`h9?dj`o?8}`MqMTv6k+ryG% z%cMPk>T`)hmV`cgx?$3&NE=~dnJU>|m98wgn14yiPj^1m%PvB>uEwy{ZQvSh0 zqucI8(J{sgi1KT+4_?jdf%w%H(_dBIyvl9z3#5K|($Lsg4`3)zVgMYK80&X~@t>4d zd+tiJ%Y*rZ7Z8>;n~y3&b&!rP zWfmV-@|6r~Fi3d^Q`B;YTWuzC=vBUt={Vtcv6qwlfqO0-Ak5B^vHpA;Pi6x{P;i=r zr)TJFz>7CE!ZXW!jxrBVBy(cMS+8#K=V{)HJpxwObIWf-S(d~P_0E0!cT%ik>E|wI zK5ti!={KCKz-6j@ZFW(;G7?I!~(aiN$-Z$6V5Qfo(Y{ zlgJ>Hq_~7J47%dXg)Pu@-(JjG4JNY=j*h-%We^F&URSh20SMBkUmhULCYVo`8(y(z zCR*BLaDisYGj=)Ptx^vDj9#o{gehHPKmeR)j;_ys3C6D3TrK^>{&+$B&KQZr^mLwm z#Lr+<+45*Da?NK?1Gr?ALEotlFo7gSYq7CnO`L1^ugN#(yQ^nJ<$OWNZtuqtPa>_F zu7y_+24c)}k6-d=Bv_hci_gVUDmS^F=aUQwmwpap&$PlGP+TS)dd@12H}_FP@q@qU zy+4)V5bIet@s&7@*WStot1pXPb9 z&HH$lvDgswmR!vdg+J3!f>Vt1=n_YpTPPTfZ^9ZF*IROF(M$B&d=wfgt%j+nP?$v? zZr8IT~EsYP4{_&mjxR4oTBphz0@7G9^A6M6cqAhT zBEu&;2UD9~^-s;@h2phqyx=vrf!A0})DLeN)R|KlV-UQVkIW`O{Zdt~-^77{K4w&%>#z*8pVy2c1lSpMOPi! z2@0#8X|Hyq9=0Y>CxOP3oq_v7iRcdi`TY&Y#kcu-Ew~s&+{;Hibc&2_U`(%-hmgvhpTQNgpNsMQu}w3EWM{@LtgIHxP=)umk0 zf%0dnpI+c%N9`JrEp@YifGV(!`QkY>sKBY#3DaL51mU~*h$IAvQ^6Tt_IQ^92_Gp(Wq38_NFVg9R-$Ae`UeK z$rZ<%n_I8hZa>FWyTKAsL(;2cC~CC`rAIczwX{5FdU}nzlK%Fs#&y8+ZU6WPh{f1I z3|caTtB~bvXm8^M)}gxrr;I;0{_>vv|d zSPiA zHqwSL)cW#hM1!22;_1(zaVR(GS426x9^XLn%1?+H(I@QqFKzMxxtsE7zz6xvm*2cW z3>Ov>>gen=BHR8{yu7=M^X5$?t#%WrdkqDeaa;laH`3}wqK{C`Fb6C}I}FHjdVj`-_2{ZpK}gb7sgQ2L~Gl3Cd^cpD49F#mC2QZEbyc zcmRafONz=+el}DL3=BLxJbZj$Qw_!6JR*Wf)7>J@Hyg1lvRkaiFhUTWLMIt2g)z`G z_o+Uf2DEJ*p((Y!Fm@bCXuaH%0z7)@4ZaTo_=I!|AG(#gptyK?z(iB6mxs3RPzi?^ z|HQPA{Gy~*U6*UGlqTk1sAgRk(q~<)Yk%_rg1Gx17Jx`jCWB)t3Q1P=fHJp%xPO`3 zq_?KR8%?^QpidP4=b$76i!GC%4d(xn1hU z^jVMA93TTk;ofzL@W4U49y87W&Yu10GLt^+f{o5PjSR=g?hb#&cT3Fu{^&oPf64+` z5Ln1dS%L|KpzLJ14>RCeoowZFCv53q$#Vv~-#bZ~mY!-&(9K}$+uJw9z5D4O*2F?Z zR>2bowOh5^|;U3UFczY)R&K}Pg~+Guhp^u}A#P@=fr(4jk$d;~G-pxvCY^i2*~ z^>k*3B?K!`*WLsz<1Ytm3pI>h>J;h)&d)g{7}+>+46-@xTK6Gmb!b&sj+l%Nr3^D- zZ~}i{+=~WX#5ltQen&1Oys&lUo=S`rfnB5fPwN}9_HE&8ButWj?urL}VHSgik%+%; z<+=1t24mSw%0~xdi)h4)q{Jz=_Pgz(?f$rfHHwj@4bx|UI?Y)*8@YzP%iSV45aF!`WWBBu@0Kh>zro^SkXiIcjEN90O%1bTk{1*#QG2dttvaHT+E*Bsq4=ldsa@-DYO4*DEx74D@ zyT5&ECO1`z1#xSBC>Xr5v>9{=wz{`$Sw1~*HkY0Cy>#o~;pl+eM~!{o(;z>d{Yl^6 ze0=*QIj3l#rJGXQpLS-QeaoB|AuR>1Y~R-{jrNWi>RahBp>G)Qs3vvkFj@hX;VpA-?-Bh4W zE_*|%De3HzIni8;Zi>k@YBh*;nLO-IN-K2h!aj-BQLJzvbc&_kg!h9WF=plJnMMT` zR9_?LL;$rY#_&fs`xgBOGifz?njLXp_4-SgP*YM@NZQ!X42=0Gr=`Ut( Y_X!_) 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

`I>PvPIlFKk$B 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 literal 0 HcmV?d00001 diff --git a/screen-shots/20260724T132107Z-issue-108-743034/after-button-zh-light-mobile-code-copy.png b/screen-shots/20260724T132107Z-issue-108-743034/after-button-zh-light-mobile-code-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..30097d4b0405e4aa7532b94c78cc350a3dfc9445 GIT binary patch literal 44313 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