create-react-docs-ui 0.2.0 → 0.4.0

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.
Files changed (41) hide show
  1. package/README-zh.md +33 -85
  2. package/README.md +33 -85
  3. package/package.json +44 -42
  4. package/template/index.html +13 -15
  5. package/template/package.json +32 -32
  6. package/template/public/config/site.en.yaml +177 -155
  7. package/template/public/config/site.yaml +179 -166
  8. package/template/public/docs/en/{guide → docs/guide}/configuration.md +195 -149
  9. package/template/public/docs/en/{guide → docs/guide}/installation.md +2 -2
  10. package/template/public/docs/en/docs/guide/quick-start.md +96 -0
  11. package/template/public/docs/en/docs/guide.md +10 -0
  12. package/template/public/docs/en/docs/test/katex-test.md +258 -0
  13. package/template/public/docs/en/docs/test/mdx-test.mdx +136 -0
  14. package/template/public/docs/en/docs/test/test.md +212 -0
  15. package/template/public/docs/en/docs/test.md +9 -0
  16. package/template/public/docs/en/docs.md +16 -0
  17. package/template/public/docs/zh-cn/{guide → docs/guide}/configuration.md +196 -150
  18. package/template/public/docs/zh-cn/{guide → docs/guide}/installation.md +2 -2
  19. package/template/public/docs/zh-cn/{guide → docs/guide}/quick-start.md +13 -25
  20. package/template/public/docs/zh-cn/docs/guide.md +10 -0
  21. package/template/public/docs/zh-cn/docs/test/katex-test.md +260 -0
  22. package/template/public/docs/zh-cn/docs/test/mdx-test.mdx +139 -0
  23. package/template/public/docs/zh-cn/docs/test/test.md +215 -0
  24. package/template/public/docs/zh-cn/docs/test.md +9 -0
  25. package/template/public/docs/zh-cn/docs.md +16 -0
  26. package/template/public/images/yrzx.png +0 -0
  27. package/template/src/components/Alert.tsx +30 -0
  28. package/template/src/components/BadgeList.tsx +38 -0
  29. package/template/src/components/Callout.tsx +20 -0
  30. package/template/src/components/Feature.tsx +15 -0
  31. package/template/src/components/MyTip.tsx +19 -0
  32. package/template/src/components/StepList.tsx +62 -0
  33. package/template/src/main.tsx +14 -16
  34. package/template/tsconfig.app.json +24 -26
  35. package/template/vite-plugin-mdx-components.ts +169 -0
  36. package/template/vite.config.ts +17 -4
  37. package/template/public/docs/en/guide/quick-start.md +0 -108
  38. package/template/public/docs/en/guide.md +0 -10
  39. package/template/public/docs/zh-cn/guide.md +0 -10
  40. /package/template/public/docs/en/{guide → docs/guide}/introduction.md +0 -0
  41. /package/template/public/docs/zh-cn/{guide → docs/guide}/introduction.md +0 -0
@@ -0,0 +1,260 @@
1
+ # 🧪 KaTeX 全功能测试
2
+
3
+ > 用于验证 KaTeX 是否正确加载所有扩展(mhchem / physics / mathtools 等)
4
+
5
+ ---
6
+
7
+ ## ✅ 行内公式
8
+
9
+ 爱因斯坦质能方程:
10
+ $E = mc^2$
11
+
12
+ 欧拉公式:
13
+ $e^{i\pi} + 1 = 0$
14
+
15
+ 分数测试:
16
+ $\frac{a+b}{c+d}$
17
+
18
+ 根号测试:
19
+ $\sqrt{2},\ \sqrt[n]{x}$
20
+
21
+ ---
22
+
23
+ ## ✅ 块级公式
24
+
25
+ $$
26
+ \int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}
27
+ $$
28
+
29
+ $$
30
+ \sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
31
+ $$
32
+
33
+ ---
34
+
35
+ ## ✅ 矩阵(mathtools)
36
+
37
+ ### 基础矩阵
38
+
39
+ $$
40
+ \begin{matrix}
41
+ 1 & 2 \\
42
+ 3 & 4
43
+ \end{matrix}
44
+ $$
45
+
46
+ ### 括号矩阵
47
+
48
+ $$
49
+ \begin{pmatrix}
50
+ a & b \\
51
+ c & d
52
+ \end{pmatrix}
53
+ $$
54
+
55
+ ### 方括号矩阵
56
+
57
+ $$
58
+ \begin{bmatrix}
59
+ 1 & 0 \\
60
+ 0 & 1
61
+ \end{bmatrix}
62
+ $$
63
+
64
+ ### 行列式
65
+
66
+ $$
67
+ \begin{vmatrix}
68
+ a & b \\
69
+ c & d
70
+ \end{vmatrix}
71
+ $$
72
+
73
+ ---
74
+
75
+ ## ✅ 对齐环境(ams)
76
+
77
+ $$
78
+ \begin{aligned}
79
+ a^2 + b^2 &= c^2 \\
80
+ e^{i\theta} &= \cos\theta + i\sin\theta
81
+ \end{aligned}
82
+ $$
83
+
84
+ ---
85
+
86
+ ## ✅ 分段函数
87
+
88
+ $$
89
+ f(x) =
90
+ \begin{cases}
91
+ x^2 & x \ge 0 \\
92
+ -x & x < 0
93
+ \end{cases}
94
+ $$
95
+
96
+ ---
97
+
98
+ ## ✅ 化学公式(mhchem)
99
+
100
+ 水:
101
+
102
+ $$
103
+ \ce{H2O}
104
+ $$
105
+
106
+ 燃烧反应:
107
+
108
+ $$
109
+ \ce{CH4 + 2O2 -> CO2 + 2H2O}
110
+ $$
111
+
112
+ 可逆反应:
113
+
114
+ $$
115
+ \ce{A <=> B}
116
+ $$
117
+
118
+ 离子:
119
+
120
+ $$
121
+ \ce{Na+ + Cl- -> NaCl}
122
+ $$
123
+
124
+ ---
125
+
126
+ ## ✅ physics 宏测试
127
+
128
+ 导数:
129
+
130
+ $$
131
+ \dv{y}{x}
132
+ $$
133
+
134
+ 偏导:
135
+
136
+ $$
137
+ \pdv{f}{x}
138
+ $$
139
+
140
+ 二阶导:
141
+
142
+ $$
143
+ \dv[2]{y}{x}
144
+ $$
145
+
146
+ 绝对值:
147
+
148
+ $$
149
+ \abs{x}
150
+ $$
151
+
152
+ 范数:
153
+
154
+ $$
155
+ \norm{\vec{v}}
156
+ $$
157
+
158
+ 期望值:
159
+
160
+ $$
161
+ \expval{A}
162
+ $$
163
+
164
+ 括号自动伸缩:
165
+
166
+ $$
167
+ \qty(\frac{a}{b})
168
+ $$
169
+
170
+ ---
171
+
172
+ ## ✅ mathtools 扩展
173
+
174
+ 多行对齐:
175
+
176
+ $$
177
+ \begin{aligned}
178
+ \max_x \quad & x^2 + 2x \\
179
+ \text{s.t.}\quad & x \ge 0
180
+ \end{aligned}
181
+ $$
182
+
183
+ 带标签:
184
+
185
+ $$
186
+ \underbrace{a+b+\cdots+z}_{26}
187
+ $$
188
+
189
+ ---
190
+
191
+ ## ✅ 常用数学符号
192
+
193
+ 希腊字母:
194
+
195
+ $$
196
+ \alpha,\ \beta,\ \gamma,\ \Gamma,\ \Delta,\ \Omega
197
+ $$
198
+
199
+ 关系符号:
200
+
201
+ $$
202
+ \le,\ \ge,\ \neq,\ \approx,\ \equiv
203
+ $$
204
+
205
+ 集合符号:
206
+
207
+ $$
208
+ \in,\ \notin,\ \subset,\ \supset,\ \cup,\ \cap
209
+ $$
210
+
211
+ 箭头:
212
+
213
+ $$
214
+ \rightarrow,\ \Rightarrow,\ \leftrightarrow,\ \mapsto
215
+ $$
216
+
217
+ ---
218
+
219
+ ## 🚨 极限压力测试(很重要)
220
+
221
+ > 如果这一段渲染正常,说明 KaTeX 基本完全 OK
222
+
223
+ $$
224
+ \pdv{ }{t}\qty(
225
+ \int_{V} \rho(\vb{r},t)\, dV
226
+ ) =
227
+ - \oint_{S} \rho \vb{v} \cdot d\vb{S}
228
+ $$
229
+
230
+ $$
231
+ \ce{^{235}_{92}U + ^1_0n -> ^{236}_{92}U -> ^{141}_{56}Ba + ^{92}_{36}Kr + 3^1_0n}
232
+ $$
233
+
234
+ $$
235
+ \begin{aligned}
236
+ \mathcal{L} &= \frac{1}{2} m \dot{x}^2 - V(x) \\
237
+ \hat{H}\psi &= i\hbar \pdv{\psi}{t}
238
+ \end{aligned}
239
+ $$
240
+
241
+ ---
242
+
243
+ ## ✅ 渲染检查清单
244
+
245
+ - [ ] 行内公式正常
246
+ - [ ] 块级公式居中
247
+ - [ ] 矩阵对齐正确
248
+ - [ ] mhchem 正常
249
+ - [ ] physics 宏正常
250
+ - [ ] 对齐环境正常
251
+ - [ ] 移动端不溢出
252
+ - [ ] 暗色模式可见
253
+
254
+ ---
255
+
256
+
257
+
258
+ # 🎉 如果全部通过
259
+
260
+ 👉 你的 KaTeX 配置已经是**完整版**
@@ -0,0 +1,139 @@
1
+ # MDX 组件使用示例
2
+
3
+ 本页面演示了如何在 Markdown 文档中使用自定义 React 组件。
4
+
5
+ ## 使用内置组件
6
+
7
+ react-docs-ui 提供了一些内置的 MDX 组件,可以直接使用。
8
+
9
+ **注意**:组件名称支持 PascalCase(推荐)和小写两种写法。例如,`<CodeBlock>` 和 `<codeblock>` 都可以正常工作。
10
+
11
+ <Tip title="这是提示">
12
+ 这是一个提示组件的内容。你可以在这里放置重要的提示信息。
13
+ </Tip>
14
+
15
+ <Warning title="这是警告">
16
+ 这是一个警告组件的内容。用于提醒用户注意潜在的问题或风险。
17
+ </Warning>
18
+
19
+ <Card title="这是卡片">
20
+ 这是一个卡片组件的内容。卡片可以用来组织相关的内容块。
21
+ </Card>
22
+
23
+ ## 使用自定义组件
24
+
25
+ 在 template 的 `src/components` 目录下创建的 React 组件会自动被扫描并注册,可以直接在 MDX 文档中使用:
26
+
27
+ <MyTip>
28
+ 这是来自 template/src/components 的自定义组件!你可以在 `src/components`
29
+ 目录下创建任何 React 组件,它们都会自动在 MDX 文档中可用。
30
+ </MyTip>
31
+
32
+ ## 新增组件示例
33
+
34
+ ### Alert 组件
35
+
36
+ Alert 组件支持多种类型:info、success、warning、error
37
+
38
+ <Alert type="info" title="信息提示">
39
+ 这是一条普通的信息提示,用于展示一般性的信息。
40
+ </Alert>
41
+
42
+ <Alert type="success" title="操作成功">
43
+ 恭喜!操作已成功完成。
44
+ </Alert>
45
+
46
+ <Alert type="warning" title="注意">
47
+ 请注意,这里有一些需要注意的事项。
48
+ </Alert>
49
+
50
+ <Alert type="error" title="错误提示">
51
+ 发生了一个错误,请检查后重试。
52
+ </Alert>
53
+
54
+
55
+
56
+ ### Feature 组件
57
+
58
+ Feature 组件用于展示功能特性:
59
+
60
+ <Feature
61
+ icon="⚡"
62
+ title="快速启动"
63
+ description="只需几秒钟即可启动项目,无需复杂配置。"
64
+ ></Feature>
65
+ <Feature
66
+ icon="🎨"
67
+ title="主题定制"
68
+ description="支持亮色和暗色主题,完全可定制。"
69
+ ></Feature>
70
+ <Feature
71
+ icon="📱"
72
+ title="响应式设计"
73
+ description="完美适配各种设备,提供最佳用户体验。"
74
+ ></Feature>
75
+
76
+ ### Callout 组件
77
+
78
+ Callout 组件用于强调重要内容:
79
+
80
+ <Callout variant="default">
81
+ 这是一个默认样式的 Callout,用于强调重要的内容。
82
+ </Callout>
83
+
84
+ <Callout variant="primary">
85
+ 这是一个主要样式的 Callout,用于突出显示核心信息。
86
+ </Callout>
87
+
88
+ <Callout variant="secondary">
89
+ 这是一个次要样式的 Callout,用于补充说明。
90
+ </Callout>
91
+
92
+ ### StepList 组件
93
+
94
+ StepList 组件用于展示步骤流程:
95
+
96
+ <StepList>
97
+ <StepList.Step title="安装依赖">
98
+ 运行 `npm install` 命令安装项目所需的依赖包。
99
+ </StepList.Step>
100
+ <StepList.Step title="配置环境">
101
+ 根据项目需求配置环境变量和开发环境。
102
+ </StepList.Step>
103
+ <StepList.Step title="启动项目">
104
+ 运行 `npm run dev` 启动开发服务器。
105
+ </StepList.Step>
106
+ <StepList.Step title="开始开发">
107
+ 开始编写代码,实现你的功能需求。
108
+ </StepList.Step>
109
+ </StepList>
110
+
111
+ ### BadgeList 组件
112
+
113
+ BadgeList 组件用于展示标签或状态:
114
+
115
+ <BadgeList>
116
+ <BadgeList.Badge variant="default">默认标签</BadgeList.Badge>
117
+ <BadgeList.Badge variant="success">成功状态</BadgeList.Badge>
118
+ <BadgeList.Badge variant="warning">警告状态</BadgeList.Badge>
119
+ <BadgeList.Badge variant="error">错误状态</BadgeList.Badge>
120
+ <BadgeList.Badge variant="info">信息标签</BadgeList.Badge>
121
+ </BadgeList>
122
+
123
+ ## 代码块示例
124
+
125
+ 你可以在 MDX 中使用标准的 Markdown 代码块语法:
126
+
127
+ ```tsx
128
+ // 这是一个 TypeScript 代码块示例
129
+ function Greeting({ name }: { name: string }) {
130
+ return <div>Hello, {name}!</div>;
131
+ }
132
+ ```
133
+
134
+ ```javascript
135
+ // 这是一个 JavaScript 代码块示例
136
+ function add(a, b) {
137
+ return a + b;
138
+ }
139
+ ```
@@ -0,0 +1,215 @@
1
+
2
+ # 📄 文档渲染测试页
3
+
4
+ > 用于测试文档网站是否正确渲染各种 Markdown / MDX 功能。
5
+
6
+ ---
7
+
8
+ ## 🧭 目录
9
+
10
+ - [标题测试](#标题测试)
11
+ - [文本样式](#文本样式)
12
+ - [列表](#列表)
13
+ - [代码块](#代码块)
14
+ - [表格](#表格)
15
+ - [引用块](#引用块)
16
+ - [提示块](#提示块)
17
+ - [图片](#图片)
18
+ - [数学公式](#数学公式)
19
+ - [MDX 组件(可选)](#mdx-组件可选)
20
+
21
+ ---
22
+
23
+ ## 标题测试
24
+
25
+ ### H3 标题
26
+ #### H4 标题
27
+ ##### H5 标题
28
+ ###### H6 标题
29
+
30
+ ---
31
+
32
+ ## 文本样式
33
+
34
+ **粗体**
35
+
36
+ *斜体*
37
+
38
+ ~~删除线~~
39
+
40
+ `行内代码`
41
+
42
+ <kbd>Ctrl</kbd> + <kbd>C</kbd>
43
+
44
+ ---
45
+
46
+ ## 列表
47
+
48
+ ### 无序列表
49
+
50
+ - Apple
51
+ - Banana
52
+ - 子项 1
53
+ - 子项 2
54
+ - Orange
55
+
56
+ ### 有序列表
57
+
58
+ 1. 第一步
59
+ 2. 第二步
60
+ 3. 第三步
61
+
62
+ ### 任务列表
63
+
64
+ - [x] 已完成
65
+ - [ ] 未完成
66
+
67
+ ---
68
+
69
+ ## 代码块
70
+
71
+ ### JavaScript
72
+
73
+ ```js
74
+ function greet(name) {
75
+ console.log(`Hello, ${name}!`)
76
+ }
77
+
78
+ greet("World")
79
+ ````
80
+
81
+ ### Bash
82
+
83
+ ```bash
84
+ pnpm install
85
+ pnpm dev
86
+ ```
87
+
88
+ ### JSON
89
+
90
+ ```json
91
+ {
92
+ "name": "docs-test",
93
+ "version": "1.0.0"
94
+ }
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 表格
100
+
101
+ | 功能 | 是否支持 | 备注 |
102
+ | ---- | ---- | ----- |
103
+ | 标题 | ✅ | 正常 |
104
+ | 代码块 | ✅ | 高亮 |
105
+ | 数学公式 | ⏳ | 视主题而定 |
106
+
107
+ ---
108
+
109
+ ## 引用块
110
+
111
+ > 这是一个引用块
112
+ > 用于测试样式。
113
+
114
+ ---
115
+
116
+ ## 提示块
117
+
118
+ > [!NOTE]
119
+ > 这是 NOTE 提示块(部分主题支持)
120
+
121
+ > [!TIP]
122
+ > 这是 TIP 提示块
123
+
124
+ > [!WARNING]
125
+ > 这是 WARNING 提示块
126
+
127
+ ---
128
+
129
+ ## 图片
130
+
131
+ ![示例图片](https://picsum.photos/800/400)
132
+ ![01-image](/images/yrzx.png)
133
+
134
+ ---
135
+
136
+ ## 数学公式
137
+
138
+ 行内公式:
139
+
140
+ $E = mc^2$
141
+
142
+ 块级公式:
143
+
144
+ $$
145
+ \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
146
+ $$
147
+
148
+ ---
149
+
150
+ ## MDX 组件(可选)
151
+
152
+ 如果你的文档系统支持 MDX,可以测试:
153
+
154
+ ```jsx
155
+ export function Hello() {
156
+ return <div style={{color: 'red'}}>Hello MDX!</div>
157
+ }
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 🔥 折叠块(部分主题支持)
163
+
164
+ <details>
165
+ <summary>点击展开</summary>
166
+
167
+ 这里是折叠内容。
168
+
169
+ </details>
170
+
171
+ ---
172
+
173
+ ## 🧪 长内容滚动测试
174
+
175
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
176
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
177
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
178
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
179
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
180
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
181
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
182
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
183
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
184
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
185
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
186
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
187
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
188
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
189
+ (你可以复制多几段测试滚动)
190
+
191
+ ---
192
+
193
+ ## ✅ 渲染检查清单
194
+
195
+ * [ ] 代码高亮正常
196
+ * [ ] 表格样式正常
197
+ * [ ] 提示块有样式
198
+ * [ ] 数学公式正常
199
+ * [ ] 图片自适应
200
+ * [ ] 移动端响应式正常
201
+
202
+ ---
203
+
204
+ **测试完成 🎉**
205
+
206
+
207
+ ---
208
+
209
+ 如果你愿意,我可以帮你再生成一个:
210
+
211
+ - 🔥 专门针对 **Nextra** 的测试版
212
+ - 🚀 专门针对 **VitePress** 的测试版
213
+ - 🎨 极限压力测试版(专测样式崩不崩)
214
+
215
+ 你只要说一声 👍
@@ -0,0 +1,9 @@
1
+ # 文档测试
2
+
3
+ 这里汇集了各种文档功能的测试页面,用于验证 React Docs UI 的渲染能力。
4
+
5
+ ## 测试页面
6
+
7
+ - [MD 测试](/docs/test/test) - 测试各种 Markdown 语法和功能
8
+ - [KaTeX 测试](/docs/test/katex-test) - 测试数学公式的完整功能
9
+ - [MDX 演示](/docs/test/mdx-test) - 查看 MDX 组件的使用示例
@@ -0,0 +1,16 @@
1
+ # 文档
2
+
3
+ 欢迎使用 React Docs UI 文档系统。
4
+
5
+ ## 快速开始
6
+
7
+ - [介绍](/docs/guide/introduction) - 了解 React Docs UI 的核心理念
8
+ - [安装](/docs/guide/installation) - 学习如何安装和配置
9
+ - [快速上手](/docs/guide/quick-start) - 在 5 分钟内创建你的第一个文档网站
10
+ - [配置说明](/docs/guide/configuration) - 深入了解配置选项
11
+
12
+ ## 文档测试
13
+
14
+ - [MD 测试](/docs/test/test) - 测试 Markdown 渲染功能
15
+ - [KaTeX 测试](/docs/test/katex-test) - 测试数学公式渲染
16
+ - [MDX 演示](/docs/test/mdx-test) - 查看 MDX 组件使用示例
Binary file
@@ -0,0 +1,30 @@
1
+ import * as React from 'react'
2
+
3
+ interface AlertProps {
4
+ type?: 'info' | 'success' | 'warning' | 'error'
5
+ title?: string
6
+ children: React.ReactNode
7
+ }
8
+
9
+ export function Alert({ type = 'info', title, children }: AlertProps) {
10
+ const styles = {
11
+ info: 'border-blue-200 bg-blue-50 text-blue-800 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-200',
12
+ success: 'border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950 dark:text-green-200',
13
+ warning: 'border-yellow-200 bg-yellow-50 text-yellow-800 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-200',
14
+ error: 'border-red-200 bg-red-50 text-red-800 dark:border-red-800 dark:bg-red-950 dark:text-red-200'
15
+ }
16
+
17
+ const icons = {
18
+ info: 'ℹ️',
19
+ success: '✅',
20
+ warning: '⚠️',
21
+ error: '❌'
22
+ }
23
+
24
+ return (
25
+ <div className={`my-4 rounded-lg border p-4 ${styles[type]}`}>
26
+ {title && <div className="mb-2 font-semibold">{icons[type]} {title}</div>}
27
+ <div>{children}</div>
28
+ </div>
29
+ )
30
+ }
@@ -0,0 +1,38 @@
1
+ import * as React from 'react'
2
+
3
+ interface BadgeProps {
4
+ variant?: 'default' | 'success' | 'warning' | 'error' | 'info'
5
+ children: React.ReactNode
6
+ }
7
+
8
+ interface BadgeListProps {
9
+ children: React.ReactNode
10
+ }
11
+
12
+ function Badge({ variant = 'default', children }: BadgeProps) {
13
+ const styles = {
14
+ default: 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200',
15
+ success: 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200',
16
+ warning: 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200',
17
+ error: 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200',
18
+ info: 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200'
19
+ }
20
+
21
+ return (
22
+ <span className={`inline-block rounded-full px-3 py-1 text-sm ${styles[variant]}`}>
23
+ {children}
24
+ </span>
25
+ )
26
+ }
27
+
28
+ export function BadgeList({ children }: BadgeListProps) {
29
+ return (
30
+ <div className="my-4 flex flex-wrap gap-2">
31
+ {React.Children.map(children, child =>
32
+ React.isValidElement(child) ? child : null
33
+ )}
34
+ </div>
35
+ )
36
+ }
37
+
38
+ BadgeList.Badge = Badge