قصاصة الكود

قصاصة الكود displays formatted code blocks in single-line and multi-line layouts with optional tab navigation.

Loading demo: code-snippet-real-world

التثبيت

npx sdaia-ui@latest add code-snippet

الاستخدام

import { CodeSnippet } from "@/components/ui/code-snippet"
<CodeSnippet type="single-line" code="..." />

الأمثلة

مفرد Line

مقتطف كود مضغوط لعرض سطر واحد من الكود.

Loading demo: code-snippet-single-line

متعدد الأسطر مع علامات تبويب

مقتطف كود متعدد الأسطر مع التنقل بعلامات التبويب.

Loading demo: code-snippet-multi-line-tabs

مرجع الواجهة البرمجية

CodeSnippetBaseProps

خصائص مكوّن CodeSnippet.

Prop

Type

Default

Required

variant

'multi-line-with-tabs' | 'multi-line-without-tabs' | 'single-line'

-

required

showHeader

boolean

true for multi-line variants; no effect for single-line.

optional

showLineNumbers

boolean

true for multi-line variants; no effect for single-line.

optional

codeBodyMinHeight

string

-

optional

copyText

string

-

optional

onCopy

() => void | Promise<void>

-

optional

showMoreButton

boolean

true

optional

showMoreLabel

string

"Show More"

optional

onShowMore

() => void

-

optional

showCopyButton

boolean

true

optional

CodeSnippetMultiLineTabsProps

Multi-line body with language tabs (`Tabs` type `underline`, size `md`).

Prop

Type

Default

Required

variant

'multi-line-with-tabs'

-

required

tabItems

TabItem[]

-

required

tabPanels

Record<string, string>

-

required

tabValue

string

-

optional

defaultTabValue

string

-

optional

onTabValueChange

(value: string) => void

-

optional

showHeader

boolean

true for multi-line variants; no effect for single-line.

optional

showLineNumbers

boolean

true for multi-line variants; no effect for single-line.

optional

codeBodyMinHeight

string

-

optional

copyText

string

-

optional

onCopy

() => void | Promise<void>

-

optional

showMoreButton

boolean

true

optional

showMoreLabel

string

"Show More"

optional

onShowMore

() => void

-

optional

showCopyButton

boolean

true

optional

CodeSnippetMultiLineFileProps

Multi-line body with optional file-style header (icon + title).

Prop

Type

Default

Required

variant

'multi-line-without-tabs'

-

required

code

string

-

optional

codeContent

ReactNode

-

optional

lineCount

number

derived from `code`

optional

fileTitle

string

""

optional

headerIcon

ReactNode

-

optional

showHeader

boolean

true for multi-line variants; no effect for single-line.

optional

showLineNumbers

boolean

true for multi-line variants; no effect for single-line.

optional

codeBodyMinHeight

string

-

optional

copyText

string

-

optional

onCopy

() => void | Promise<void>

-

optional

showMoreButton

boolean

true

optional

showMoreLabel

string

"Show More"

optional

onShowMore

() => void

-

optional

showCopyButton

boolean

true

optional

CodeSnippetSingleLineProps

One-line install / CLI style row.

Prop

Type

Default

Required

variant

'single-line'

-

required

commandPrefix

ReactNode

-

required

command

ReactNode

-

required

showHeader

boolean

true for multi-line variants; no effect for single-line.

optional

showLineNumbers

boolean

true for multi-line variants; no effect for single-line.

optional

codeBodyMinHeight

string

-

optional

copyText

string

-

optional

onCopy

() => void | Promise<void>

-

optional

showMoreButton

boolean

true

optional

showMoreLabel

string

"Show More"

optional

onShowMore

() => void

-

optional

showCopyButton

boolean

true

optional