@next-bricks/presentational 1.21.9 → 1.21.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +1 -1
- package/dist/chunks/1614.5ce43617.js +2 -0
- package/dist/chunks/1614.5ce43617.js.map +1 -0
- package/dist/chunks/{1889.4559a6f7.js → 1889.01e1c38a.js} +2 -2
- package/dist/chunks/{1889.4559a6f7.js.map → 1889.01e1c38a.js.map} +1 -1
- package/dist/chunks/3171.7708784b.js +2 -0
- package/dist/chunks/3171.7708784b.js.map +1 -0
- package/dist/chunks/5399.2ab60504.js +2 -0
- package/dist/chunks/5399.2ab60504.js.map +1 -0
- package/dist/chunks/5552.f77213dd.js +2 -0
- package/dist/chunks/5552.f77213dd.js.map +1 -0
- package/dist/chunks/7116.05a51bac.js +2 -0
- package/dist/chunks/7116.05a51bac.js.map +1 -0
- package/dist/chunks/7455.0f5298ce.js +3 -0
- package/dist/chunks/7455.0f5298ce.js.LICENSE.txt +11 -0
- package/dist/chunks/7455.0f5298ce.js.map +1 -0
- package/dist/chunks/948.b8effe9f.js +3 -0
- package/dist/chunks/948.b8effe9f.js.map +1 -0
- package/dist/chunks/code-wrapper.40655769.js.map +1 -1
- package/dist/chunks/{eo-card-item.fbff6f7e.js → eo-card-item.f56c41e5.js} +3 -3
- package/dist/chunks/eo-card-item.f56c41e5.js.map +1 -0
- package/dist/chunks/eo-carousel-text.d8e8c2c9.js.map +1 -1
- package/dist/chunks/{eo-code-block.7efe5647.js → eo-code-block.a7162247.js} +2 -2
- package/dist/chunks/eo-code-block.a7162247.js.map +1 -0
- package/dist/chunks/eo-code-display.ffd79558.js.map +1 -1
- package/dist/chunks/eo-current-time.7cbef918.js.map +1 -1
- package/dist/chunks/{eo-descriptions.b8320ca9.js → eo-descriptions.1ab98c43.js} +3 -3
- package/dist/chunks/{eo-descriptions.b8320ca9.js.map → eo-descriptions.1ab98c43.js.map} +1 -1
- package/dist/chunks/eo-humanize-time.2397ce6e.js.map +1 -1
- package/dist/chunks/{eo-info-card-item.0d15cb28.js → eo-info-card-item.e6403b4d.js} +3 -3
- package/dist/chunks/eo-info-card-item.e6403b4d.js.map +1 -0
- package/dist/chunks/{eo-loading-step.834e0aa3.js → eo-loading-step.259d7985.js} +3 -3
- package/dist/chunks/{eo-loading-step.834e0aa3.js.map → eo-loading-step.259d7985.js.map} +1 -1
- package/dist/chunks/eo-pagination.16fd816a.js.map +1 -1
- package/dist/chunks/eo-statistics-card.410b5416.js.map +1 -1
- package/dist/chunks/{main.7a4b0b01.js → main.519bfa38.js} +2 -2
- package/dist/chunks/main.519bfa38.js.map +1 -0
- package/dist/examples.json +13 -13
- package/dist/{index.db5144bf.js → index.71ea98e1.js} +2 -2
- package/dist/index.71ea98e1.js.map +1 -0
- package/dist/manifest.json +49 -39
- package/dist/types.json +2 -2
- package/dist-types/card-item/index.d.ts +8 -4
- package/dist-types/carousel-text/index.d.ts +1 -1
- package/dist-types/code-block/index.d.ts +12 -3
- package/dist-types/code-display/index.d.ts +0 -1
- package/dist-types/code-wrapper/index.d.ts +7 -2
- package/dist-types/current-time/index.d.ts +1 -1
- package/dist-types/descriptions/index.d.ts +4 -3
- package/dist-types/humanize-time/index.d.ts +8 -8
- package/dist-types/info-card-item/index.d.ts +10 -9
- package/dist-types/loading-step/index.d.ts +8 -8
- package/dist-types/pagination/index.d.ts +7 -0
- package/dist-types/statistics-card/index.d.ts +2 -2
- package/docs/eo-alert.md +65 -1
- package/docs/eo-alert.react.md +127 -0
- package/docs/eo-card-item.md +179 -210
- package/docs/eo-card-item.react.md +578 -0
- package/docs/eo-carousel-text.md +49 -2
- package/docs/eo-carousel-text.react.md +62 -0
- package/docs/eo-code-block.md +135 -4
- package/docs/eo-code-block.react.md +146 -0
- package/docs/eo-code-display.md +97 -1
- package/docs/eo-code-display.react.md +116 -0
- package/docs/eo-code-wrapper.md +108 -0
- package/docs/eo-code-wrapper.react.md +100 -0
- package/docs/eo-current-time.md +40 -1
- package/docs/eo-current-time.react.md +53 -0
- package/docs/eo-descriptions.md +74 -4
- package/docs/eo-descriptions.react.md +329 -0
- package/docs/eo-divider.md +105 -17
- package/docs/eo-divider.react.md +129 -0
- package/docs/eo-humanize-time.md +89 -42
- package/docs/eo-humanize-time.react.md +109 -0
- package/docs/eo-info-card-item.md +129 -183
- package/docs/eo-info-card-item.react.md +188 -0
- package/docs/eo-loading-step.md +96 -1
- package/docs/eo-loading-step.react.md +102 -0
- package/docs/eo-pagination.md +74 -1
- package/docs/eo-pagination.react.md +93 -0
- package/docs/eo-statistics-card.md +175 -456
- package/docs/eo-statistics-card.react.md +376 -0
- package/package.json +2 -2
- package/dist/chunks/3171.3bb3ff80.js +0 -2
- package/dist/chunks/3171.3bb3ff80.js.map +0 -1
- package/dist/chunks/4837.3ae6253e.js +0 -2
- package/dist/chunks/4837.3ae6253e.js.map +0 -1
- package/dist/chunks/5045.b0f85f6b.js +0 -2
- package/dist/chunks/5045.b0f85f6b.js.map +0 -1
- package/dist/chunks/5399.23640b2d.js +0 -2
- package/dist/chunks/5399.23640b2d.js.map +0 -1
- package/dist/chunks/5552.5d29c532.js +0 -2
- package/dist/chunks/5552.5d29c532.js.map +0 -1
- package/dist/chunks/7218.4acefe69.js +0 -2
- package/dist/chunks/7218.4acefe69.js.map +0 -1
- package/dist/chunks/948.817a1ef0.js +0 -3
- package/dist/chunks/948.817a1ef0.js.map +0 -1
- package/dist/chunks/eo-card-item.fbff6f7e.js.map +0 -1
- package/dist/chunks/eo-code-block.7efe5647.js.map +0 -1
- package/dist/chunks/eo-info-card-item.0d15cb28.js.map +0 -1
- package/dist/chunks/main.7a4b0b01.js.map +0 -1
- package/dist/index.db5144bf.js.map +0 -1
- /package/dist/chunks/{948.817a1ef0.js.LICENSE.txt → 948.b8effe9f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-card-item.fbff6f7e.js.LICENSE.txt → eo-card-item.f56c41e5.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-descriptions.b8320ca9.js.LICENSE.txt → eo-descriptions.1ab98c43.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-info-card-item.0d15cb28.js.LICENSE.txt → eo-info-card-item.e6403b4d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-loading-step.834e0aa3.js.LICENSE.txt → eo-loading-step.259d7985.js.LICENSE.txt} +0 -0
package/docs/eo-code-block.md
CHANGED
|
@@ -1,15 +1,146 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-code-block
|
|
3
|
+
displayName: WrappedEoCodeBlock
|
|
4
|
+
description: 代码块展示构件,基于 Shiki 进行语法高亮,支持多种编程语言、亮色/暗色主题自动切换及复制功能。
|
|
5
|
+
category: presentational
|
|
6
|
+
source: "@next-bricks/presentational"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-code-block
|
|
10
|
+
|
|
11
|
+
> 代码块展示构件,基于 Shiki 进行语法高亮,支持多种编程语言、亮色/暗色主题自动切换及复制功能。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------------- | --------------------------------------- | ---- | -------- | -------------------------------------------------------------- |
|
|
17
|
+
| language | `string` | 否 | - | 代码语言,用于语法高亮,例如 `javascript`、`python`、`yaml` 等 |
|
|
18
|
+
| source | `string` | 否 | - | 代码内容字符串 |
|
|
19
|
+
| theme | `"auto" \| "light-plus" \| "dark-plus"` | 否 | `"auto"` | 代码高亮主题。`auto` 跟随系统主题自动切换亮色/暗色 |
|
|
20
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体,影响代码块的整体样式风格 |
|
|
21
|
+
| showCopyButton | `boolean` | 否 | `true` | 是否展示复制按钮 |
|
|
22
|
+
|
|
23
|
+
## CSS Parts
|
|
24
|
+
|
|
25
|
+
| 名称 | 说明 |
|
|
26
|
+
| ------- | --------------------------- |
|
|
27
|
+
| pre | 包裹代码内容的 `<pre>` 元素 |
|
|
28
|
+
| copy | 复制按钮 |
|
|
29
|
+
| mermaid | Mermaid 图表 |
|
|
30
|
+
| wrapper | code-wrapper 构件 |
|
|
2
31
|
|
|
3
32
|
## Examples
|
|
4
33
|
|
|
5
34
|
### Basic
|
|
6
35
|
|
|
36
|
+
展示代码块的基本用法,通过 `language` 和 `source` 属性渲染带语法高亮的代码。
|
|
37
|
+
|
|
7
38
|
```yaml preview
|
|
8
39
|
brick: eo-code-block
|
|
9
40
|
properties:
|
|
10
|
-
language:
|
|
41
|
+
language: javascript
|
|
11
42
|
source: |
|
|
12
|
-
function
|
|
13
|
-
console.log("Hello,
|
|
43
|
+
function greet(name) {
|
|
44
|
+
console.log("Hello, " + name + "!");
|
|
14
45
|
}
|
|
46
|
+
greet("world");
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Multiple Languages
|
|
50
|
+
|
|
51
|
+
展示对不同编程语言的语法高亮支持,包括 Python、YAML 和 Shell。
|
|
52
|
+
|
|
53
|
+
```yaml preview
|
|
54
|
+
- brick: eo-code-block
|
|
55
|
+
properties:
|
|
56
|
+
language: python
|
|
57
|
+
source: |
|
|
58
|
+
def greet(name):
|
|
59
|
+
print(f"Hello, {name}!")
|
|
60
|
+
|
|
61
|
+
greet("world")
|
|
62
|
+
- brick: eo-code-block
|
|
63
|
+
properties:
|
|
64
|
+
language: yaml
|
|
65
|
+
source: |
|
|
66
|
+
name: Alice
|
|
67
|
+
age: 30
|
|
68
|
+
hobbies:
|
|
69
|
+
- reading
|
|
70
|
+
- coding
|
|
71
|
+
- brick: eo-code-block
|
|
72
|
+
properties:
|
|
73
|
+
language: shell
|
|
74
|
+
source: |
|
|
75
|
+
echo "Hello, world!"
|
|
76
|
+
ls -la /tmp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Theme
|
|
80
|
+
|
|
81
|
+
通过 `theme` 属性指定代码高亮主题,支持 `light-plus`(亮色)、`dark-plus`(暗色)和 `auto`(跟随系统)。
|
|
82
|
+
|
|
83
|
+
```yaml preview
|
|
84
|
+
- brick: eo-code-block
|
|
85
|
+
properties:
|
|
86
|
+
language: javascript
|
|
87
|
+
theme: light-plus
|
|
88
|
+
source: |
|
|
89
|
+
const x = 42;
|
|
90
|
+
console.log(x);
|
|
91
|
+
- brick: eo-code-block
|
|
92
|
+
properties:
|
|
93
|
+
language: javascript
|
|
94
|
+
theme: dark-plus
|
|
95
|
+
source: |
|
|
96
|
+
const x = 42;
|
|
97
|
+
console.log(x);
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Theme Variant Elevo
|
|
101
|
+
|
|
102
|
+
设置 `themeVariant` 为 `elevo` 以使用 Elevo 风格的代码块样式。
|
|
103
|
+
|
|
104
|
+
```yaml preview
|
|
105
|
+
brick: eo-code-block
|
|
106
|
+
properties:
|
|
107
|
+
language: javascript
|
|
108
|
+
themeVariant: elevo
|
|
109
|
+
source: |
|
|
110
|
+
const greet = (name) => {
|
|
111
|
+
return `Hello, ${name}!`;
|
|
112
|
+
};
|
|
113
|
+
console.log(greet("world"));
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Hide Copy Button
|
|
117
|
+
|
|
118
|
+
设置 `showCopyButton` 为 `false` 隐藏复制按钮。
|
|
119
|
+
|
|
120
|
+
```yaml preview
|
|
121
|
+
brick: eo-code-block
|
|
122
|
+
properties:
|
|
123
|
+
language: python
|
|
124
|
+
showCopyButton: false
|
|
125
|
+
source: |
|
|
126
|
+
for i in range(10):
|
|
127
|
+
print(i)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### CSS Parts
|
|
131
|
+
|
|
132
|
+
通过 CSS Parts 自定义代码块样式,例如为 `pre` 部分设置圆角和边框,为 `copy` 按钮设置颜色。
|
|
133
|
+
|
|
134
|
+
```yaml preview
|
|
135
|
+
- brick: eo-code-block
|
|
136
|
+
properties:
|
|
137
|
+
style:
|
|
138
|
+
"--part-pre-border-radius": "8px"
|
|
139
|
+
language: typescript
|
|
140
|
+
source: |
|
|
141
|
+
interface User {
|
|
142
|
+
name: string;
|
|
143
|
+
age: number;
|
|
144
|
+
}
|
|
145
|
+
const user: User = { name: "Alice", age: 30 };
|
|
15
146
|
```
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-code-block
|
|
3
|
+
displayName: WrappedEoCodeBlock
|
|
4
|
+
description: 代码块展示构件,基于 Shiki 进行语法高亮,支持多种编程语言、亮色/暗色主题自动切换及复制功能。
|
|
5
|
+
category: presentational
|
|
6
|
+
source: "@next-bricks/presentational"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoCodeBlock
|
|
10
|
+
|
|
11
|
+
> 代码块展示构件,基于 Shiki 进行语法高亮,支持多种编程语言、亮色/暗色主题自动切换及复制功能。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoCodeBlock } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| -------------- | --------------------------------------- | ---- | -------- | -------------------------------------------------------------- |
|
|
23
|
+
| language | `string` | 否 | - | 代码语言,用于语法高亮,例如 `javascript`、`python`、`yaml` 等 |
|
|
24
|
+
| source | `string` | 否 | - | 代码内容字符串 |
|
|
25
|
+
| theme | `"auto" \| "light-plus" \| "dark-plus"` | 否 | `"auto"` | 代码高亮主题。`auto` 跟随系统主题自动切换亮色/暗色 |
|
|
26
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体,影响代码块的整体样式风格 |
|
|
27
|
+
| showCopyButton | `boolean` | 否 | `true` | 是否展示复制按钮 |
|
|
28
|
+
|
|
29
|
+
## CSS Parts
|
|
30
|
+
|
|
31
|
+
| 名称 | 说明 |
|
|
32
|
+
| ------- | --------------------------- |
|
|
33
|
+
| pre | 包裹代码内容的 `<pre>` 元素 |
|
|
34
|
+
| copy | 复制按钮 |
|
|
35
|
+
| mermaid | Mermaid 图表 |
|
|
36
|
+
| wrapper | code-wrapper 构件 |
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
### Basic
|
|
41
|
+
|
|
42
|
+
展示代码块的基本用法,通过 `language` 和 `source` 属性渲染带语法高亮的代码。
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
<WrappedEoCodeBlock
|
|
46
|
+
language="javascript"
|
|
47
|
+
source={`function greet(name) {
|
|
48
|
+
console.log("Hello, " + name + "!");
|
|
49
|
+
}
|
|
50
|
+
greet("world");`}
|
|
51
|
+
/>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Multiple Languages
|
|
55
|
+
|
|
56
|
+
展示对不同编程语言的语法高亮支持,包括 Python、YAML 和 Shell。
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<>
|
|
60
|
+
<WrappedEoCodeBlock
|
|
61
|
+
language="python"
|
|
62
|
+
source={`def greet(name):
|
|
63
|
+
print(f"Hello, {name}!")
|
|
64
|
+
|
|
65
|
+
greet("world")`}
|
|
66
|
+
/>
|
|
67
|
+
<WrappedEoCodeBlock
|
|
68
|
+
language="yaml"
|
|
69
|
+
source={`name: Alice
|
|
70
|
+
age: 30
|
|
71
|
+
hobbies:
|
|
72
|
+
- reading
|
|
73
|
+
- coding`}
|
|
74
|
+
/>
|
|
75
|
+
<WrappedEoCodeBlock
|
|
76
|
+
language="shell"
|
|
77
|
+
source={`echo "Hello, world!"
|
|
78
|
+
ls -la /tmp`}
|
|
79
|
+
/>
|
|
80
|
+
</>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Theme
|
|
84
|
+
|
|
85
|
+
通过 `theme` 属性指定代码高亮主题,支持 `light-plus`(亮色)、`dark-plus`(暗色)和 `auto`(跟随系统)。
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
<>
|
|
89
|
+
<WrappedEoCodeBlock
|
|
90
|
+
language="javascript"
|
|
91
|
+
theme="light-plus"
|
|
92
|
+
source={`const x = 42;
|
|
93
|
+
console.log(x);`}
|
|
94
|
+
/>
|
|
95
|
+
<WrappedEoCodeBlock
|
|
96
|
+
language="javascript"
|
|
97
|
+
theme="dark-plus"
|
|
98
|
+
source={`const x = 42;
|
|
99
|
+
console.log(x);`}
|
|
100
|
+
/>
|
|
101
|
+
</>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Theme Variant Elevo
|
|
105
|
+
|
|
106
|
+
设置 `themeVariant` 为 `elevo` 以使用 Elevo 风格的代码块样式。
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
<WrappedEoCodeBlock
|
|
110
|
+
language="javascript"
|
|
111
|
+
themeVariant="elevo"
|
|
112
|
+
source={`const greet = (name) => {
|
|
113
|
+
return \`Hello, \${name}!\`;
|
|
114
|
+
};
|
|
115
|
+
console.log(greet("world"));`}
|
|
116
|
+
/>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Hide Copy Button
|
|
120
|
+
|
|
121
|
+
设置 `showCopyButton` 为 `false` 隐藏复制按钮。
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
<WrappedEoCodeBlock
|
|
125
|
+
language="python"
|
|
126
|
+
showCopyButton={false}
|
|
127
|
+
source={`for i in range(10):
|
|
128
|
+
print(i)`}
|
|
129
|
+
/>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### CSS Parts
|
|
133
|
+
|
|
134
|
+
通过 CSS Parts 自定义代码块样式,例如为 `pre` 部分设置圆角和边框,为 `copy` 按钮设置颜色。
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
<WrappedEoCodeBlock
|
|
138
|
+
language="typescript"
|
|
139
|
+
style={{ "--part-pre-border-radius": "8px" } as React.CSSProperties}
|
|
140
|
+
source={`interface User {
|
|
141
|
+
name: string;
|
|
142
|
+
age: number;
|
|
143
|
+
}
|
|
144
|
+
const user: User = { name: "Alice", age: 30 };`}
|
|
145
|
+
/>
|
|
146
|
+
```
|
package/docs/eo-code-display.md
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-code-display
|
|
3
|
+
displayName: WrappedEoCodeDisplay
|
|
4
|
+
description: 代码展示
|
|
5
|
+
category: display-component
|
|
6
|
+
source: "@next-bricks/presentational"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-code-display
|
|
10
|
+
|
|
11
|
+
> 代码展示
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ---------------- | --------- | ---- | ------ | ------------------------------------------------------------------------------ |
|
|
17
|
+
| value | `string` | - | `""` | 代码内容 |
|
|
18
|
+
| language | `string` | - | - | 语言,具体查阅 [Supported languages](https://prismjs.com/#supported-languages) |
|
|
19
|
+
| hideLineNumber | `boolean` | - | - | 是否隐藏行号 |
|
|
20
|
+
| maxLines | `number` | - | - | 最大行数 |
|
|
21
|
+
| minLines | `number` | - | - | 最小行数 |
|
|
22
|
+
| showCopyButton | `boolean` | - | `true` | 是否显示复制按钮 |
|
|
23
|
+
| showExportButton | `boolean` | - | - | 是否显示导出按钮 |
|
|
24
|
+
| exportFileName | `string` | - | - | 导出的文件名 |
|
|
2
25
|
|
|
3
26
|
## Examples
|
|
4
27
|
|
|
5
28
|
### Basic
|
|
6
29
|
|
|
30
|
+
基本用法,展示一段 JavaScript 代码并显示行号。
|
|
31
|
+
|
|
7
32
|
```yaml preview
|
|
8
33
|
- brick: eo-code-display
|
|
9
34
|
properties:
|
|
@@ -17,3 +42,74 @@
|
|
|
17
42
|
};
|
|
18
43
|
}
|
|
19
44
|
```
|
|
45
|
+
|
|
46
|
+
### 隐藏行号
|
|
47
|
+
|
|
48
|
+
隐藏代码行号显示。
|
|
49
|
+
|
|
50
|
+
```yaml preview
|
|
51
|
+
- brick: eo-code-display
|
|
52
|
+
properties:
|
|
53
|
+
language: javascript
|
|
54
|
+
hideLineNumber: true
|
|
55
|
+
value: |
|
|
56
|
+
const greeting = "Hello, World!";
|
|
57
|
+
console.log(greeting);
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 限制行数
|
|
61
|
+
|
|
62
|
+
通过 maxLines 和 minLines 控制代码展示区域的行数范围。
|
|
63
|
+
|
|
64
|
+
```yaml preview
|
|
65
|
+
- brick: eo-code-display
|
|
66
|
+
properties:
|
|
67
|
+
language: javascript
|
|
68
|
+
maxLines: 5
|
|
69
|
+
minLines: 3
|
|
70
|
+
value: |
|
|
71
|
+
const a = 1;
|
|
72
|
+
const b = 2;
|
|
73
|
+
const c = 3;
|
|
74
|
+
const d = 4;
|
|
75
|
+
const e = 5;
|
|
76
|
+
const f = 6;
|
|
77
|
+
const g = 7;
|
|
78
|
+
const h = 8;
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 工具栏按钮
|
|
82
|
+
|
|
83
|
+
显示复制和导出按钮,支持将代码复制到剪贴板或导出为文件。
|
|
84
|
+
|
|
85
|
+
```yaml preview
|
|
86
|
+
- brick: eo-code-display
|
|
87
|
+
properties:
|
|
88
|
+
language: json
|
|
89
|
+
showCopyButton: true
|
|
90
|
+
showExportButton: true
|
|
91
|
+
exportFileName: config.json
|
|
92
|
+
value: |
|
|
93
|
+
{
|
|
94
|
+
"name": "my-app",
|
|
95
|
+
"version": "1.0.0",
|
|
96
|
+
"description": "A sample application"
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 隐藏复制按钮
|
|
101
|
+
|
|
102
|
+
将 showCopyButton 设置为 false 隐藏默认的复制按钮。
|
|
103
|
+
|
|
104
|
+
```yaml preview
|
|
105
|
+
- brick: eo-code-display
|
|
106
|
+
properties:
|
|
107
|
+
language: css
|
|
108
|
+
showCopyButton: false
|
|
109
|
+
value: |
|
|
110
|
+
.container {
|
|
111
|
+
display: flex;
|
|
112
|
+
justify-content: center;
|
|
113
|
+
align-items: center;
|
|
114
|
+
}
|
|
115
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-code-display
|
|
3
|
+
displayName: WrappedEoCodeDisplay
|
|
4
|
+
description: 代码展示
|
|
5
|
+
category: display-component
|
|
6
|
+
source: "@next-bricks/presentational"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoCodeDisplay
|
|
10
|
+
|
|
11
|
+
> 代码展示
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoCodeDisplay } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ---------------- | --------- | ---- | ------ | ------------------------------------------------------------------------------ |
|
|
23
|
+
| value | `string` | - | `""` | 代码内容 |
|
|
24
|
+
| language | `string` | - | - | 语言,具体查阅 [Supported languages](https://prismjs.com/#supported-languages) |
|
|
25
|
+
| hideLineNumber | `boolean` | - | - | 是否隐藏行号 |
|
|
26
|
+
| maxLines | `number` | - | - | 最大行数 |
|
|
27
|
+
| minLines | `number` | - | - | 最小行数 |
|
|
28
|
+
| showCopyButton | `boolean` | - | `true` | 是否显示复制按钮 |
|
|
29
|
+
| showExportButton | `boolean` | - | - | 是否显示导出按钮 |
|
|
30
|
+
| exportFileName | `string` | - | - | 导出的文件名 |
|
|
31
|
+
|
|
32
|
+
## Examples
|
|
33
|
+
|
|
34
|
+
### Basic
|
|
35
|
+
|
|
36
|
+
基本用法,展示一段 JavaScript 代码并显示行号。
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
<WrappedEoCodeDisplay
|
|
40
|
+
language="javascript"
|
|
41
|
+
value={`function onSubmit (e) {
|
|
42
|
+
const fn = () => 123;
|
|
43
|
+
const job = {
|
|
44
|
+
title: 'Developer',
|
|
45
|
+
company: 'Facebook'
|
|
46
|
+
};
|
|
47
|
+
}`}
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 隐藏行号
|
|
52
|
+
|
|
53
|
+
隐藏代码行号显示。
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
<WrappedEoCodeDisplay
|
|
57
|
+
language="javascript"
|
|
58
|
+
hideLineNumber={true}
|
|
59
|
+
value={`const greeting = "Hello, World!";
|
|
60
|
+
console.log(greeting);`}
|
|
61
|
+
/>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 限制行数
|
|
65
|
+
|
|
66
|
+
通过 maxLines 和 minLines 控制代码展示区域的行数范围。
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<WrappedEoCodeDisplay
|
|
70
|
+
language="javascript"
|
|
71
|
+
maxLines={5}
|
|
72
|
+
minLines={3}
|
|
73
|
+
value={`const a = 1;
|
|
74
|
+
const b = 2;
|
|
75
|
+
const c = 3;
|
|
76
|
+
const d = 4;
|
|
77
|
+
const e = 5;
|
|
78
|
+
const f = 6;
|
|
79
|
+
const g = 7;
|
|
80
|
+
const h = 8;`}
|
|
81
|
+
/>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 工具栏按钮
|
|
85
|
+
|
|
86
|
+
显示复制和导出按钮,支持将代码复制到剪贴板或导出为文件。
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<WrappedEoCodeDisplay
|
|
90
|
+
language="json"
|
|
91
|
+
showCopyButton={true}
|
|
92
|
+
showExportButton={true}
|
|
93
|
+
exportFileName="config.json"
|
|
94
|
+
value={`{
|
|
95
|
+
"name": "my-app",
|
|
96
|
+
"version": "1.0.0",
|
|
97
|
+
"description": "A sample application"
|
|
98
|
+
}`}
|
|
99
|
+
/>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 隐藏复制按钮
|
|
103
|
+
|
|
104
|
+
将 showCopyButton 设置为 false 隐藏默认的复制按钮。
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
<WrappedEoCodeDisplay
|
|
108
|
+
language="css"
|
|
109
|
+
showCopyButton={false}
|
|
110
|
+
value={`.container {
|
|
111
|
+
display: flex;
|
|
112
|
+
justify-content: center;
|
|
113
|
+
align-items: center;
|
|
114
|
+
}`}
|
|
115
|
+
/>
|
|
116
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: presentational.code-wrapper
|
|
3
|
+
displayName: WrappedPresentationalCodeWrapper
|
|
4
|
+
description: 代码内容包裹容器,提供统一的代码展示结构并支持一键复制功能。
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/presentational"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# presentational.code-wrapper
|
|
10
|
+
|
|
11
|
+
> 代码内容包裹容器,提供统一的代码展示结构并支持一键复制功能。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------------- | ------------------------------------------------------- | ---- | ------ | ----------------------------------------------------------------- |
|
|
17
|
+
| preProps | `React.PropsWithChildren<JSX.IntrinsicElements["pre"]>` | 否 | - | 传递给 `<pre>` 元素的额外属性,例如 `className`、`style` 等 |
|
|
18
|
+
| showCopyButton | `boolean` | 否 | `true` | 是否展示复制按钮 |
|
|
19
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体,影响复制按钮等内部元素的样式风格。`elevo` 为 Elevo 风格 |
|
|
20
|
+
|
|
21
|
+
## CSS Parts
|
|
22
|
+
|
|
23
|
+
| 名称 | 说明 |
|
|
24
|
+
| ---- | --------------------------- |
|
|
25
|
+
| pre | 包裹代码内容的 `<pre>` 元素 |
|
|
26
|
+
| copy | 复制按钮 |
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
### Basic
|
|
31
|
+
|
|
32
|
+
展示代码包裹容器的基本用法,将代码内容放入 `<code>` 子节点,默认展示复制按钮。
|
|
33
|
+
|
|
34
|
+
```yaml preview
|
|
35
|
+
brick: presentational.code-wrapper
|
|
36
|
+
properties:
|
|
37
|
+
preProps:
|
|
38
|
+
children:
|
|
39
|
+
- brick: code
|
|
40
|
+
properties:
|
|
41
|
+
textContent: "const greeting = 'Hello, World!';"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 隐藏复制按钮
|
|
45
|
+
|
|
46
|
+
设置 `showCopyButton` 为 `false` 可隐藏右上角的复制按钮。
|
|
47
|
+
|
|
48
|
+
```yaml preview
|
|
49
|
+
brick: presentational.code-wrapper
|
|
50
|
+
properties:
|
|
51
|
+
showCopyButton: false
|
|
52
|
+
preProps:
|
|
53
|
+
children:
|
|
54
|
+
- brick: code
|
|
55
|
+
properties:
|
|
56
|
+
textContent: "const greeting = 'Hello, World!';"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Elevo 主题变体
|
|
60
|
+
|
|
61
|
+
设置 `themeVariant` 为 `"elevo"` 使复制按钮采用 Elevo 主题样式。
|
|
62
|
+
|
|
63
|
+
```yaml preview
|
|
64
|
+
brick: presentational.code-wrapper
|
|
65
|
+
properties:
|
|
66
|
+
themeVariant: elevo
|
|
67
|
+
preProps:
|
|
68
|
+
children:
|
|
69
|
+
- brick: code
|
|
70
|
+
properties:
|
|
71
|
+
textContent: "const greeting = 'Hello, World!';"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 自定义 pre 元素样式
|
|
75
|
+
|
|
76
|
+
通过 `preProps` 的 `style` 字段为 `<pre>` 元素设置自定义内联样式。
|
|
77
|
+
|
|
78
|
+
```yaml preview
|
|
79
|
+
brick: presentational.code-wrapper
|
|
80
|
+
properties:
|
|
81
|
+
preProps:
|
|
82
|
+
style:
|
|
83
|
+
background: "#1e1e1e"
|
|
84
|
+
color: "#d4d4d4"
|
|
85
|
+
padding: 16px
|
|
86
|
+
borderRadius: 8px
|
|
87
|
+
children:
|
|
88
|
+
- brick: code
|
|
89
|
+
properties:
|
|
90
|
+
textContent: "const greeting = 'Hello, World!';"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 自定义 CSS Parts
|
|
94
|
+
|
|
95
|
+
通过 `pre` 和 `copy` CSS Parts 对内部元素进行样式定制,例如修改 `<pre>` 背景色和圆角、调整复制按钮颜色。
|
|
96
|
+
|
|
97
|
+
```yaml preview
|
|
98
|
+
brick: presentational.code-wrapper
|
|
99
|
+
properties:
|
|
100
|
+
style:
|
|
101
|
+
"--part-pre-border-radius": "8px"
|
|
102
|
+
"--part-copy-color": "var(--color-brand)"
|
|
103
|
+
preProps:
|
|
104
|
+
children:
|
|
105
|
+
- brick: code
|
|
106
|
+
properties:
|
|
107
|
+
textContent: "const greeting = 'Hello, World!';"
|
|
108
|
+
```
|