starry-sky-ui 0.4.0 → 0.4.1
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/AdUI/index.d.ts +5 -0
- package/dist/AdUI/index.d.ts.map +1 -0
- package/dist/AdUI/index.js +602 -0
- package/dist/AdUI/index.js.map +1 -0
- package/dist/AdUI/index.scss +461 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AdUI/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,cAAc,CAAC;AAwmCtB,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAyIjB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
|
+
import React, { useState, useRef, useCallback, useEffect } from 'react';
|
|
12
|
+
import { message, Select, Modal, Table, Pagination, Input, Textarea, ContentRenderer, ChatInput, Starfield } from '../index';
|
|
13
|
+
import { adUtils } from '../index';
|
|
14
|
+
import './index.scss';
|
|
15
|
+
const categories = [
|
|
16
|
+
{ id: 'feedback', label: '反馈' },
|
|
17
|
+
{ id: 'data-entry', label: '数据录入' },
|
|
18
|
+
{ id: 'data-display', label: '数据展示' },
|
|
19
|
+
{ id: 'navigation', label: '导航' },
|
|
20
|
+
{ id: 'decoration', label: '装饰' },
|
|
21
|
+
{ id: 'utils', label: '工具函数' },
|
|
22
|
+
];
|
|
23
|
+
const components = [
|
|
24
|
+
{ id: 'message', label: 'Message 消息提示', category: 'feedback', desc: '全局消息提示,支持 info / success / error / warning / loading 五种类型,自动消失。' },
|
|
25
|
+
{ id: 'modal', label: 'Modal 弹窗', category: 'feedback', desc: '模态弹窗,支持标题、底部按钮、确认/取消、loading 态、居中、destroyOnClose 等。' },
|
|
26
|
+
{ id: 'select', label: 'Select 选择器', category: 'data-entry', desc: '下拉选择器,支持受控/非受控、搜索过滤、清除按钮、键盘导航、三种尺寸。' },
|
|
27
|
+
{ id: 'input', label: 'Input 输入框', category: 'data-entry', desc: '输入框组件,支持文本输入、密码、Textarea 多行文本、前缀后缀图标、清除按钮、字符计数等。' },
|
|
28
|
+
{ id: 'table', label: 'Table 表格', category: 'data-display', desc: '功能丰富的表格组件,支持排序、分页、行选择、自定义渲染、固定表头等。' },
|
|
29
|
+
{ id: 'pagination', label: 'Pagination 分页', category: 'navigation', desc: '分页组件,支持受控/非受控、简洁模式、每页条数切换、快速跳转等。' },
|
|
30
|
+
{ id: 'content-renderer', label: 'ContentRenderer 内容渲染', category: 'data-display', desc: '基于 react-markdown 的内容展示组件,支持 GFM 语法和代码语法高亮。' },
|
|
31
|
+
{ id: 'chat-input', label: 'ChatInput 聊天输入框', category: 'data-entry', desc: '仿 DeepSeek 聊天输入框,支持多行输入、回车发送、自动撑高、停止生成。' },
|
|
32
|
+
{ id: 'starfield', label: 'Starfield 星空背景', category: 'decoration', desc: '星空背景组件,在容器内生成随机分布的闪烁星星,支持自定义数量、颜色和闪烁速度。' },
|
|
33
|
+
{ id: 'utils', label: 'Utils 工具函数', category: 'utils', desc: '轻量级通用工具函数集合,涵盖文件处理、图片处理、事件控制三类,无需安装额外依赖。' },
|
|
34
|
+
];
|
|
35
|
+
const anchorMap = {
|
|
36
|
+
message: [
|
|
37
|
+
{ id: 'message-when', label: '何时使用' },
|
|
38
|
+
{ id: 'message-how', label: '如何使用' },
|
|
39
|
+
{ id: 'message-demo-base', label: '基础用法' },
|
|
40
|
+
{ id: 'message-demo-types', label: '消息类型' },
|
|
41
|
+
{ id: 'message-demo-open', label: '通用方法' },
|
|
42
|
+
{ id: 'message-demo-config', label: '全局配置' },
|
|
43
|
+
],
|
|
44
|
+
modal: [
|
|
45
|
+
{ id: 'modal-when', label: '何时使用' },
|
|
46
|
+
{ id: 'modal-how', label: '如何使用' },
|
|
47
|
+
{ id: 'modal-demo-base', label: '基础弹窗' },
|
|
48
|
+
{ id: 'modal-demo-confirm', label: '确认弹窗' },
|
|
49
|
+
{ id: 'modal-demo-custom', label: '自定义底部' },
|
|
50
|
+
],
|
|
51
|
+
select: [
|
|
52
|
+
{ id: 'select-when', label: '何时使用' },
|
|
53
|
+
{ id: 'select-how', label: '如何使用' },
|
|
54
|
+
{ id: 'select-demo-base', label: '基本用法' },
|
|
55
|
+
{ id: 'select-demo-search', label: '搜索与清除' },
|
|
56
|
+
{ id: 'select-demo-size', label: '三种尺寸' },
|
|
57
|
+
],
|
|
58
|
+
input: [
|
|
59
|
+
{ id: 'input-when', label: '何时使用' },
|
|
60
|
+
{ id: 'input-how', label: '如何使用' },
|
|
61
|
+
{ id: 'input-demo-base', label: '基本用法' },
|
|
62
|
+
{ id: 'input-demo-size', label: '三种尺寸' },
|
|
63
|
+
{ id: 'input-demo-prefix', label: '前缀与后缀' },
|
|
64
|
+
{ id: 'input-demo-clear', label: '清除与计数' },
|
|
65
|
+
{ id: 'input-demo-password', label: '密码框' },
|
|
66
|
+
{ id: 'input-demo-status', label: '状态' },
|
|
67
|
+
{ id: 'input-demo-textarea', label: '多行文本' },
|
|
68
|
+
],
|
|
69
|
+
table: [
|
|
70
|
+
{ id: 'table-when', label: '何时使用' },
|
|
71
|
+
{ id: 'table-how', label: '如何使用' },
|
|
72
|
+
{ id: 'table-demo-base', label: '基本用法' },
|
|
73
|
+
{ id: 'table-demo-sort', label: '排序' },
|
|
74
|
+
{ id: 'table-demo-select', label: '行选择' },
|
|
75
|
+
{ id: 'table-demo-loading', label: '加载 & 空态' },
|
|
76
|
+
],
|
|
77
|
+
pagination: [
|
|
78
|
+
{ id: 'pagination-when', label: '何时使用' },
|
|
79
|
+
{ id: 'pagination-how', label: '如何使用' },
|
|
80
|
+
{ id: 'pagination-demo-base', label: '基本用法' },
|
|
81
|
+
{ id: 'pagination-demo-controlled', label: '受控模式' },
|
|
82
|
+
{ id: 'pagination-demo-more', label: '更多功能' },
|
|
83
|
+
],
|
|
84
|
+
'content-renderer': [
|
|
85
|
+
{ id: 'cr-when', label: '何时使用' },
|
|
86
|
+
{ id: 'cr-how', label: '如何使用' },
|
|
87
|
+
{ id: 'cr-demo-base', label: '基本用法' },
|
|
88
|
+
{ id: 'cr-demo-code', label: '代码高亮' },
|
|
89
|
+
{ id: 'cr-demo-gfm', label: 'GFM 语法' },
|
|
90
|
+
],
|
|
91
|
+
'chat-input': [
|
|
92
|
+
{ id: 'ci-when', label: '何时使用' },
|
|
93
|
+
{ id: 'ci-how', label: '如何使用' },
|
|
94
|
+
{ id: 'ci-demo-base', label: '基本用法' },
|
|
95
|
+
{ id: 'ci-demo-loading', label: '加载状态' },
|
|
96
|
+
],
|
|
97
|
+
starfield: [
|
|
98
|
+
{ id: 'starfield-when', label: '何时使用' },
|
|
99
|
+
{ id: 'starfield-how', label: '如何使用' },
|
|
100
|
+
{ id: 'starfield-demo-basic', label: '基本用法' },
|
|
101
|
+
{ id: 'starfield-demo-custom', label: '自定义参数' },
|
|
102
|
+
],
|
|
103
|
+
utils: [
|
|
104
|
+
{ id: 'utils-when', label: '何时使用' },
|
|
105
|
+
{ id: 'utils-how', label: '如何使用' },
|
|
106
|
+
{ id: 'utils-demo-file', label: '文件工具' },
|
|
107
|
+
{ id: 'utils-demo-image', label: '图片工具' },
|
|
108
|
+
{ id: 'utils-demo-event', label: '事件工具' },
|
|
109
|
+
],
|
|
110
|
+
};
|
|
111
|
+
const demoOptions = [
|
|
112
|
+
{ label: 'React', value: 'react' },
|
|
113
|
+
{ label: 'Vue', value: 'vue' },
|
|
114
|
+
{ label: 'Angular', value: 'angular' },
|
|
115
|
+
{ label: 'Svelte(禁用)', value: 'svelte', disabled: true },
|
|
116
|
+
{ label: 'Solid.js', value: 'solid' },
|
|
117
|
+
{ label: 'Next.js', value: 'next' },
|
|
118
|
+
{ label: 'Nuxt', value: 'nuxt' },
|
|
119
|
+
{ label: 'Remix', value: 'remix' },
|
|
120
|
+
];
|
|
121
|
+
/* ========== 辅助组件 ========== */
|
|
122
|
+
const CodeBlock = ({ code }) => (_jsxs("div", Object.assign({ className: "adui-code-panel" }, { children: [_jsx("pre", { children: _jsx("code", { children: code }) }), _jsx("button", Object.assign({ className: "adui-copy-btn", onClick: () => { navigator.clipboard.writeText(code); message.success('已复制'); }, title: "\u590D\u5236\u4EE3\u7801" }, { children: "\uD83D\uDCCB" }))] })));
|
|
123
|
+
const DemoCard = ({ title, children, code }) => (_jsxs("div", Object.assign({ className: "adui-demo-card" }, { children: [_jsxs("div", Object.assign({ className: "adui-demo-preview" }, { children: [title && _jsx("h4", Object.assign({ className: "adui-demo-title" }, { children: title })), _jsx("div", Object.assign({ className: "adui-demo-stage" }, { children: children }))] })), _jsx(CodeBlock, { code: code })] })));
|
|
124
|
+
const WhenUse = ({ children }) => (_jsx("div", Object.assign({ className: "adui-when-use" }, { children: _jsx("ul", { children: React.Children.map(children, (c, i) => _jsx("li", { children: c }, i)) }) })));
|
|
125
|
+
const HowUse = ({ importCode }) => (_jsx("div", Object.assign({ className: "adui-how-use" }, { children: _jsx(CodeBlock, { code: importCode }) })));
|
|
126
|
+
/* ========== 各组件内容 ========== */
|
|
127
|
+
const MessageContent = () => (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "message-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u5411\u7528\u6237\u5C55\u793A\u975E\u963B\u585E\u7684\u5168\u5C40\u53CD\u9988\u4FE1\u606F\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9002\u5408\u64CD\u4F5C\u6210\u529F\u3001\u64CD\u4F5C\u5931\u8D25\u3001\u8B66\u544A\u63D0\u793A\u3001\u52A0\u8F7D\u4E2D\u72B6\u6001\u7B49\u8F7B\u91CF\u573A\u666F\u3002" }), _jsx("span", { children: "\u65E0\u9700\u7528\u6237\u4EA4\u4E92\u5373\u53EF\u81EA\u52A8\u6D88\u5931\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "message-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Message, message } from 'starry-sky-ui';
|
|
128
|
+
|
|
129
|
+
function App() {
|
|
130
|
+
return <Message />
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
message.success('操作成功');` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "message-demo-base" }, { children: "\u57FA\u7840\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u4E94\u79CD\u6D88\u606F\u7C7B\u578B", code: `message.info('信息提示');
|
|
134
|
+
message.success('操作成功!');
|
|
135
|
+
message.error('操作失败!');
|
|
136
|
+
message.warning('警告提示');
|
|
137
|
+
message.loading('加载中...', 2000);` }, { children: _jsxs("div", Object.assign({ className: "adui-btn-group" }, { children: [_jsx("button", Object.assign({ className: "adui-btn", onClick: () => message.info('这是一条信息提示') }, { children: "info" })), _jsx("button", Object.assign({ className: "adui-btn adui-btn-green", onClick: () => message.success('操作成功!') }, { children: "success" })), _jsx("button", Object.assign({ className: "adui-btn adui-btn-red", onClick: () => message.error('操作失败!') }, { children: "error" })), _jsx("button", Object.assign({ className: "adui-btn adui-btn-orange", onClick: () => message.warning('警告提示') }, { children: "warning" })), _jsx("button", Object.assign({ className: "adui-btn", onClick: () => message.loading('加载中...', 3000) }, { children: "loading" }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "message-demo-types" }, { children: "\u6D88\u606F\u7C7B\u578B" })), _jsx(DemoCard, Object.assign({ title: "\u652F\u6301 then \u94FE\u5F0F\u8C03\u7528", code: `const ins = message.loading('提交中...', 0);
|
|
138
|
+
await saveData();
|
|
139
|
+
message.success('提交成功');` }, { children: _jsx("button", Object.assign({ className: "adui-btn", onClick: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
140
|
+
message.loading('异步处理中...', 0);
|
|
141
|
+
yield new Promise(r => setTimeout(r, 1500));
|
|
142
|
+
message.success('处理完成');
|
|
143
|
+
}) }, { children: "\u6A21\u62DF\u5F02\u6B65" })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "message-demo-open" }, { children: "\u901A\u7528\u65B9\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "message.open", code: `message.open({
|
|
144
|
+
type: 'success',
|
|
145
|
+
content: '通过 open 打开的消息',
|
|
146
|
+
duration: 5000,
|
|
147
|
+
onClose: () => console.log('closed'),
|
|
148
|
+
});` }, { children: _jsx("button", Object.assign({ className: "adui-btn adui-btn-green", onClick: () => message.open({ type: 'success', content: '通过 open 方法打开的消息', duration: 5000 }) }, { children: "\u6253\u5F00" })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "message-demo-config" }, { children: "\u5168\u5C40\u914D\u7F6E" })), _jsx(DemoCard, Object.assign({ title: "message.config", code: `message.config({
|
|
149
|
+
maxCount: 3, // 最大显示数量
|
|
150
|
+
duration: 4000, // 默认显示时长
|
|
151
|
+
});
|
|
152
|
+
message.destroy(); // 销毁所有消息` }, { children: _jsxs("div", Object.assign({ className: "adui-btn-group" }, { children: [_jsx("button", Object.assign({ className: "adui-btn", onClick: () => {
|
|
153
|
+
message.config({ maxCount: 3 });
|
|
154
|
+
for (let i = 0; i < 5; i++)
|
|
155
|
+
message.info(`消息 ${i + 1}`);
|
|
156
|
+
} }, { children: "maxCount \u6D4B\u8BD5" })), _jsx("button", Object.assign({ className: "adui-btn adui-btn-red", onClick: () => message.destroy() }, { children: "\u5168\u90E8\u9500\u6BC1" }))] })) }))] }));
|
|
157
|
+
const ModalContent = () => {
|
|
158
|
+
const [modalOpen, setModalOpen] = useState(false);
|
|
159
|
+
const [confirmOpen, setConfirmOpen] = useState(false);
|
|
160
|
+
const [customOpen, setCustomOpen] = useState(false);
|
|
161
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "modal-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u7528\u6237\u5904\u7406\u4E8B\u52A1\u3001\u4F46\u4E0D\u5E0C\u671B\u8DF3\u8F6C\u9875\u9762\u6253\u65AD\u5DE5\u4F5C\u6D41\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9002\u5408\u786E\u8BA4\u64CD\u4F5C\u3001\u8868\u5355\u586B\u5199\u3001\u8BE6\u7EC6\u5185\u5BB9\u5C55\u793A\u7B49\u573A\u666F\u3002" }), _jsx("span", { children: "\u652F\u6301\u901A\u8FC7\u786E\u5B9A/\u53D6\u6D88\u6309\u94AE\u3001\u906E\u7F69\u70B9\u51FB\u6216 ESC \u952E\u5173\u95ED\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "modal-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Modal } from 'starry-sky-ui';
|
|
162
|
+
const [open, setOpen] = useState(false);
|
|
163
|
+
<Modal open={open} onClose={() => setOpen(false)} title="标题">
|
|
164
|
+
<p>内容</p>
|
|
165
|
+
</Modal>` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "modal-demo-base" }, { children: "\u57FA\u7840\u5F39\u7A97" })), _jsxs(DemoCard, Object.assign({ title: "\u57FA\u672C\u7528\u6CD5", code: `const [open, setOpen] = useState(false);
|
|
166
|
+
<Modal open={open} onClose={() => setOpen(false)} title="基本弹窗">
|
|
167
|
+
<p>弹窗内容</p>
|
|
168
|
+
</Modal>` }, { children: [_jsx("button", Object.assign({ className: "adui-btn", onClick: () => setModalOpen(true) }, { children: "\u6253\u5F00\u5F39\u7A97" })), _jsxs(Modal, Object.assign({ open: modalOpen, onClose: () => setModalOpen(false), title: "\u57FA\u672C\u5F39\u7A97" }, { children: [_jsx("p", { children: "\u8FD9\u662F\u4E00\u4E2A\u57FA\u672C\u7684 Modal \u5F39\u7A97\uFF0C\u5305\u542B\u6807\u9898\u3001\u5185\u5BB9\u533A\u57DF\u548C\u5173\u95ED\u6309\u94AE\u3002" }), _jsx("p", { children: "\u652F\u6301\u70B9\u51FB\u906E\u7F69\u5173\u95ED\u3001ESC \u952E\u5173\u95ED\u3002" })] }))] })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "modal-demo-confirm" }, { children: "\u786E\u8BA4\u5F39\u7A97" })), _jsxs(DemoCard, Object.assign({ title: "\u786E\u8BA4\u4E0E\u5F02\u6B65", code: `<Modal
|
|
169
|
+
open={open} title="确认删除"
|
|
170
|
+
onOk={async () => { await deleteItem(); }}
|
|
171
|
+
confirmLoading okText="确认删除" cancelText="取消" centered>
|
|
172
|
+
<p>确定要删除吗?</p>
|
|
173
|
+
</Modal>` }, { children: [_jsx("button", Object.assign({ className: "adui-btn adui-btn-red", onClick: () => setConfirmOpen(true) }, { children: "\u5220\u9664\u786E\u8BA4" })), _jsx(Modal, Object.assign({ open: confirmOpen, onClose: () => setConfirmOpen(false), title: "\u786E\u8BA4\u5220\u9664", onOk: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
|
+
yield new Promise((r) => setTimeout(r, 1500));
|
|
175
|
+
setConfirmOpen(false);
|
|
176
|
+
message.success('删除成功');
|
|
177
|
+
}), onCancel: () => setConfirmOpen(false), confirmLoading: true, okText: "\u786E\u8BA4\u5220\u9664", cancelText: "\u53D6\u6D88", centered: true }, { children: _jsx("p", { children: "\u786E\u5B9A\u8981\u5220\u9664\u6B64\u9879\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002" }) }))] })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "modal-demo-custom" }, { children: "\u81EA\u5B9A\u4E49\u5E95\u90E8" })), _jsxs(DemoCard, Object.assign({ title: "\u9690\u85CF\u5173\u95ED\u6309\u94AE + \u81EA\u5B9A\u4E49 footer", code: `<Modal
|
|
178
|
+
open={open} closable={false} maskClosable={false}
|
|
179
|
+
footer={<button onClick={...}>我知道了</button>}>
|
|
180
|
+
<p>只能通过自定义按钮关闭</p>
|
|
181
|
+
</Modal>` }, { children: [_jsx("button", Object.assign({ className: "adui-btn", onClick: () => setCustomOpen(true) }, { children: "\u81EA\u5B9A\u4E49\u5F39\u7A97" })), _jsxs(Modal, Object.assign({ open: customOpen, onClose: () => setCustomOpen(false), title: "\u81EA\u5B9A\u4E49\u5E95\u90E8", closable: false, maskClosable: false, footer: _jsx("div", Object.assign({ style: { textAlign: 'center', padding: '10px 0' } }, { children: _jsx("button", Object.assign({ className: "adui-btn adui-btn-green", onClick: () => setCustomOpen(false), style: { width: 120 } }, { children: "\u6211\u77E5\u9053\u4E86" })) })) }, { children: [_jsx("p", { children: "\u8FD9\u4E2A\u5F39\u7A97\u9690\u85CF\u4E86\u53F3\u4E0A\u89D2\u5173\u95ED\u6309\u94AE\uFF0C\u7981\u6B62\u70B9\u51FB\u906E\u7F69\u5173\u95ED\u3002" }), _jsx("p", { children: "\u5E95\u90E8\u4F7F\u7528\u4E86\u81EA\u5B9A\u4E49\u6309\u94AE\uFF0C\u53EA\u80FD\u901A\u8FC7\u70B9\u51FB\"\u6211\u77E5\u9053\u4E86\"\u5173\u95ED\u3002" })] }))] }))] }));
|
|
182
|
+
};
|
|
183
|
+
const SelectContent = () => {
|
|
184
|
+
const [selectValue, setSelectValue] = useState('');
|
|
185
|
+
const [selectSearch, setSelectSearch] = useState('');
|
|
186
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "select-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u4ECE\u4E00\u7EC4\u9884\u5B9A\u4E49\u9009\u9879\u4E2D\u9009\u62E9\u4E00\u4E2A\u503C\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9009\u9879\u6570\u91CF\u8F83\u591A\u65F6\uFF0C\u5EFA\u8BAE\u914D\u5408\u641C\u7D22\u529F\u80FD\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u652F\u6301\u53D7\u63A7\u548C\u975E\u53D7\u63A7\u4E24\u79CD\u6A21\u5F0F\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "select-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Select } from 'starry-sky-ui';
|
|
187
|
+
import type { SelectOption } from 'starry-sky-ui';
|
|
188
|
+
const options: SelectOption[] = [
|
|
189
|
+
{ label: 'React', value: 'react' },
|
|
190
|
+
{ label: 'Vue', value: 'vue', disabled: true },
|
|
191
|
+
];` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "select-demo-base" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u53D7\u63A7\u9009\u62E9", code: `const [value, setValue] = useState('');
|
|
192
|
+
<Select options={options} value={value}
|
|
193
|
+
onChange={(val) => setValue(String(val))} placeholder="请选择框架" />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx(Select, { options: demoOptions, value: selectValue, onChange: (val) => setSelectValue(val), placeholder: "\u8BF7\u9009\u62E9\u6846\u67B6", style: { width: 240 } }), _jsxs("span", Object.assign({ className: "adui-demo-badge" }, { children: ["\u9009\u4E2D\u503C\uFF1A", String(selectValue) || '—'] }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "select-demo-search" }, { children: "\u641C\u7D22\u4E0E\u6E05\u9664" })), _jsx(DemoCard, Object.assign({ title: "showSearch + allowClear", code: `<Select options={options}
|
|
194
|
+
showSearch allowClear placeholder="搜索框架..." />` }, { children: _jsx("div", Object.assign({ className: "adui-demo-row" }, { children: _jsx(Select, { options: demoOptions, value: selectSearch, onChange: (val) => setSelectSearch(val), showSearch: true, allowClear: true, placeholder: "\u641C\u7D22\u6846\u67B6...", style: { width: 260 } }) })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "select-demo-size" }, { children: "\u4E09\u79CD\u5C3A\u5BF8" })), _jsx(DemoCard, Object.assign({ title: "small / middle / large", code: `<Select options={options} size="small" placeholder="Small" />
|
|
195
|
+
<Select options={options} size="middle" placeholder="Middle" />
|
|
196
|
+
<Select options={options} size="large" placeholder="Large" />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx(Select, { options: demoOptions, size: "small", placeholder: "Small", style: { width: 150 } }), _jsx(Select, { options: demoOptions, size: "middle", placeholder: "Middle", style: { width: 150 } }), _jsx(Select, { options: demoOptions, size: "large", placeholder: "Large", style: { width: 150 } })] })) }))] }));
|
|
197
|
+
};
|
|
198
|
+
/* ========== Input 内容 ========== */
|
|
199
|
+
const InputContent = () => {
|
|
200
|
+
const [inputVal, setInputVal] = useState('');
|
|
201
|
+
const [inputVal2, setInputVal2] = useState('可清除的文本');
|
|
202
|
+
const [pwdVal, setPwdVal] = useState('password123');
|
|
203
|
+
const [taVal, setTaVal] = useState('');
|
|
204
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u7528\u6237\u8F93\u5165\u6587\u672C\u5185\u5BB9\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u652F\u6301\u5355\u884C\u8F93\u5165\uFF08Input\uFF09\u548C\u591A\u884C\u6587\u672C\uFF08Textarea\uFF09\u4E24\u79CD\u5F62\u6001\u3002" }), _jsx("span", { children: "\u63D0\u4F9B\u524D\u7F00/\u540E\u7F00\u56FE\u6807\u3001\u6E05\u9664\u6309\u94AE\u3001\u5B57\u7B26\u8BA1\u6570\u3001\u5BC6\u7801\u5207\u6362\u3001\u72B6\u6001\u53CD\u9988\u7B49\u4E30\u5BCC\u529F\u80FD\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Input, Textarea } from 'starry-sky-ui';
|
|
205
|
+
import type { InputProps, TextareaProps } from 'starry-sky-ui';
|
|
206
|
+
|
|
207
|
+
// 受控使用
|
|
208
|
+
const [value, setValue] = useState('');
|
|
209
|
+
<Input value={value} onChange={(val) => setValue(val)} placeholder="请输入" />
|
|
210
|
+
|
|
211
|
+
// 多行文本
|
|
212
|
+
<Textarea rows={3} placeholder="请输入内容" />` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-base" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u53D7\u63A7\u8F93\u5165\u6846", code: `const [value, setValue] = useState('');
|
|
213
|
+
<Input value={value} onChange={(val) => setValue(val)} placeholder="请输入内容" />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 280 } }, { children: _jsx(Input, { value: inputVal, onChange: (val) => setInputVal(val), placeholder: "\u8BF7\u8F93\u5165\u5185\u5BB9" }) })), _jsxs("span", Object.assign({ className: "adui-demo-badge" }, { children: ["\u503C\uFF1A", inputVal || '—'] }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-size" }, { children: "\u4E09\u79CD\u5C3A\u5BF8" })), _jsx(DemoCard, Object.assign({ title: "small / middle / large", code: `<Input size="small" placeholder="Small" />
|
|
214
|
+
<Input size="middle" placeholder="Middle" />
|
|
215
|
+
<Input size="large" placeholder="Large" />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 200 } }, { children: _jsx(Input, { size: "small", placeholder: "Small" }) })), _jsx("div", Object.assign({ style: { width: 200 } }, { children: _jsx(Input, { size: "middle", placeholder: "Middle" }) })), _jsx("div", Object.assign({ style: { width: 200 } }, { children: _jsx(Input, { size: "large", placeholder: "Large" }) }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-prefix" }, { children: "\u524D\u7F00\u4E0E\u540E\u7F00" })), _jsxs(DemoCard, Object.assign({ title: "prefix / suffix", code: `<Input prefix="🔍" placeholder="搜索..." />
|
|
216
|
+
<Input suffix="📅" placeholder="选择日期" />
|
|
217
|
+
<Input prefix="💰" suffix="元" placeholder="金额" />` }, { children: [_jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 240 } }, { children: _jsx(Input, { prefix: "\uD83D\uDD0D", placeholder: "\u641C\u7D22..." }) })), _jsx("div", Object.assign({ style: { width: 240 } }, { children: _jsx(Input, { suffix: "\uD83D\uDCC5", placeholder: "\u9009\u62E9\u65E5\u671F" }) }))] })), _jsx("div", Object.assign({ style: { width: 240, marginTop: 12 } }, { children: _jsx(Input, { prefix: "\uD83D\uDCB0", suffix: "\u5143", placeholder: "\u91D1\u989D" }) }))] })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-clear" }, { children: "\u6E05\u9664\u4E0E\u8BA1\u6570" })), _jsxs(DemoCard, Object.assign({ title: "allowClear + showCount", code: `<Input allowClear placeholder="可清除" />
|
|
218
|
+
<Input maxLength={20} showCount placeholder="输入计数" />
|
|
219
|
+
<Input allowClear maxLength={50} showCount defaultValue="可清除且计数" />` }, { children: [_jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 220 } }, { children: _jsx(Input, { allowClear: true, placeholder: "\u53EF\u6E05\u9664" }) })), _jsx("div", Object.assign({ style: { width: 220 } }, { children: _jsx(Input, { maxLength: 20, showCount: true, placeholder: "\u8F93\u5165\u8BA1\u6570" }) }))] })), _jsx("div", Object.assign({ style: { width: 320, marginTop: 12 } }, { children: _jsx(Input, { allowClear: true, maxLength: 50, showCount: true, value: inputVal2, onChange: (val) => setInputVal2(val) }) }))] })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-password" }, { children: "\u5BC6\u7801\u6846" })), _jsx(DemoCard, Object.assign({ title: "type=\"password\"", code: `<Input type="password" placeholder="请输入密码" />
|
|
220
|
+
<Input type="password" value={pwd} onChange={setPwd} />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 260 } }, { children: _jsx(Input, { type: "password", placeholder: "\u8BF7\u8F93\u5165\u5BC6\u7801" }) })), _jsx("div", Object.assign({ style: { width: 260 } }, { children: _jsx(Input, { type: "password", value: pwdVal, onChange: (val) => setPwdVal(val), placeholder: "\u53D7\u63A7\u5BC6\u7801" }) }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-status" }, { children: "\u72B6\u6001" })), _jsx(DemoCard, Object.assign({ title: "status \u53CD\u9988", code: `<Input status="error" placeholder="错误状态" />
|
|
221
|
+
<Input status="warning" placeholder="警告状态" />
|
|
222
|
+
<Input status="error" placeholder="禁用" disabled />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 220 } }, { children: _jsx(Input, { status: "error", placeholder: "\u9519\u8BEF\u72B6\u6001" }) })), _jsx("div", Object.assign({ style: { width: 220 } }, { children: _jsx(Input, { status: "warning", placeholder: "\u8B66\u544A\u72B6\u6001" }) })), _jsx("div", Object.assign({ style: { width: 220 } }, { children: _jsx(Input, { status: "error", placeholder: "\u7981\u7528\u9519\u8BEF", disabled: true }) }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "input-demo-textarea" }, { children: "\u591A\u884C\u6587\u672C" })), _jsx(DemoCard, Object.assign({ title: "Textarea \u57FA\u672C\u7528\u6CD5", code: `<Textarea rows={3} placeholder="请输入内容" />
|
|
223
|
+
<Textarea rows={3} maxLength={200} showCount placeholder="带字符计数" />` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 320 } }, { children: _jsx(Textarea, { rows: 3, placeholder: "\u8BF7\u8F93\u5165\u5185\u5BB9", value: taVal, onChange: (val) => setTaVal(val) }) })), _jsx("div", Object.assign({ style: { width: 320 } }, { children: _jsx(Textarea, { rows: 3, maxLength: 200, showCount: true, placeholder: "\u5E26\u5B57\u7B26\u8BA1\u6570" }) }))] })) })), _jsxs(DemoCard, Object.assign({ title: "Textarea \u5C3A\u5BF8\u4E0E\u81EA\u9002\u5E94", code: `<Textarea size="small" rows={2} placeholder="Small" />
|
|
224
|
+
<Textarea size="large" rows={4} placeholder="Large" />
|
|
225
|
+
<Textarea autoSize rows={1} placeholder="自适应高度(试试输入多行)" />` }, { children: [_jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 260 } }, { children: _jsx(Textarea, { size: "small", rows: 2, placeholder: "Small" }) })), _jsx("div", Object.assign({ style: { width: 260 } }, { children: _jsx(Textarea, { size: "large", rows: 4, placeholder: "Large" }) }))] })), _jsx("div", Object.assign({ style: { width: 400, marginTop: 12 } }, { children: _jsx(Textarea, { autoSize: true, rows: 1, placeholder: "\u81EA\u9002\u5E94\u9AD8\u5EA6\uFF08\u8BD5\u8BD5\u8F93\u5165\u591A\u884C\uFF09" }) }))] }))] }));
|
|
226
|
+
};
|
|
227
|
+
/* ========== Table 内容 ========== */
|
|
228
|
+
const tableData = [
|
|
229
|
+
{ key: '1', name: 'React', version: '18.3.1', type: '前端框架', usage: '81%', author: 'Meta' },
|
|
230
|
+
{ key: '2', name: 'Vue', version: '3.4.0', type: '前端框架', usage: '65%', author: '尤雨溪' },
|
|
231
|
+
{ key: '3', name: 'Angular', version: '17.0.0', type: '前端框架', usage: '42%', author: 'Google' },
|
|
232
|
+
{ key: '4', name: 'Node.js', version: '22.0.0', type: '运行时', usage: '78%', author: 'OpenJS' },
|
|
233
|
+
{ key: '5', name: 'TypeScript', version: '5.4.0', type: '语言', usage: '73%', author: 'Microsoft' },
|
|
234
|
+
{ key: '6', name: 'Webpack', version: '5.90.0', type: '构建工具', usage: '89%', author: 'Webpack' },
|
|
235
|
+
{ key: '7', name: 'Vite', version: '5.2.0', type: '构建工具', usage: '58%', author: 'Evan You' },
|
|
236
|
+
{ key: '8', name: 'Express', version: '4.18.0', type: '后端框架', usage: '70%', author: 'TJ' },
|
|
237
|
+
{ key: '9', name: 'Next.js', version: '14.2.0', type: '全栈框架', usage: '52%', author: 'Vercel' },
|
|
238
|
+
{ key: '10', name: 'Tailwind CSS', version: '3.4.0', type: 'CSS 框架', usage: '45%', author: 'Tailwind Labs' },
|
|
239
|
+
{ key: '11', name: 'Docker', version: '26.0.0', type: '容器', usage: '61%', author: 'Docker Inc' },
|
|
240
|
+
{ key: '12', name: 'Redis', version: '7.4.0', type: '缓存', usage: '55%', author: 'Redis Labs' },
|
|
241
|
+
];
|
|
242
|
+
const sortByName = (a, b) => a.name.localeCompare(b.name);
|
|
243
|
+
const sortByVersion = (a, b) => parseFloat(b.version) - parseFloat(a.version);
|
|
244
|
+
const sortByUsage = (a, b) => parseFloat(b.usage) - parseFloat(a.usage);
|
|
245
|
+
const TableContent = () => {
|
|
246
|
+
const [selectedKeys, setSelectedKeys] = useState([]);
|
|
247
|
+
const baseColumns = [
|
|
248
|
+
{ title: '名称', dataIndex: 'name', key: 'name', sorter: sortByName, width: 140 },
|
|
249
|
+
{ title: '版本', dataIndex: 'version', key: 'version', sorter: sortByVersion, width: 100 },
|
|
250
|
+
{ title: '分类', dataIndex: 'type', key: 'type', width: 110 },
|
|
251
|
+
{
|
|
252
|
+
title: '使用率',
|
|
253
|
+
dataIndex: 'usage',
|
|
254
|
+
key: 'usage',
|
|
255
|
+
sorter: sortByUsage,
|
|
256
|
+
width: 100,
|
|
257
|
+
render: (val) => (_jsxs("span", Object.assign({ style: { display: 'flex', alignItems: 'center', gap: 6 } }, { children: [_jsx("span", Object.assign({ style: {
|
|
258
|
+
display: 'inline-block',
|
|
259
|
+
width: 60,
|
|
260
|
+
height: 6,
|
|
261
|
+
borderRadius: 3,
|
|
262
|
+
background: 'rgba(139,92,246,0.2)',
|
|
263
|
+
overflow: 'hidden',
|
|
264
|
+
} }, { children: _jsx("span", { style: {
|
|
265
|
+
display: 'block',
|
|
266
|
+
width: val,
|
|
267
|
+
height: '100%',
|
|
268
|
+
borderRadius: 3,
|
|
269
|
+
background: 'linear-gradient(90deg, #8b5cf6, #3b82f6)',
|
|
270
|
+
} }) })), val] }))),
|
|
271
|
+
},
|
|
272
|
+
{ title: '作者', dataIndex: 'author', key: 'author', width: 120 },
|
|
273
|
+
];
|
|
274
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "table-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u4EE5\u8868\u683C\u5F62\u5F0F\u5C55\u793A\u5927\u91CF\u7ED3\u6784\u5316\u6570\u636E\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9002\u5408\u9700\u8981\u5BF9\u6570\u636E\u8FDB\u884C\u6392\u5E8F\u3001\u7B5B\u9009\u3001\u5206\u9875\u6D4F\u89C8\u7684\u573A\u666F\u3002" }), _jsx("span", { children: "\u652F\u6301\u884C\u9009\u62E9\u64CD\u4F5C\uFF0C\u9002\u5408\u6279\u91CF\u5904\u7406\u6570\u636E\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "table-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Table } from 'starry-sky-ui';
|
|
275
|
+
import type { ColumnType } from 'starry-sky-ui';
|
|
276
|
+
|
|
277
|
+
const columns: ColumnType[] = [
|
|
278
|
+
{ title: '名称', dataIndex: 'name', key: 'name', sorter: (a, b) => a.name.localeCompare(b.name) },
|
|
279
|
+
{ title: '版本', dataIndex: 'version', key: 'version' },
|
|
280
|
+
];` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "table-demo-base" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u57FA\u7840\u8868\u683C\uFF08\u5E26\u5206\u9875\uFF09", code: `<Table
|
|
281
|
+
columns={columns}
|
|
282
|
+
dataSource={data}
|
|
283
|
+
rowKey="key"
|
|
284
|
+
pagination={{
|
|
285
|
+
pageSize: 5,
|
|
286
|
+
showSizeChanger: true,
|
|
287
|
+
showTotal: true,
|
|
288
|
+
}}
|
|
289
|
+
/>` }, { children: _jsx(Table, { columns: baseColumns, dataSource: tableData, rowKey: "key", pagination: { pageSize: 5, showSizeChanger: true, showTotal: true }, size: "middle" }) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "table-demo-sort" }, { children: "\u6392\u5E8F" })), _jsx(DemoCard, Object.assign({ title: "\u70B9\u51FB\u5217\u5934\u6392\u5E8F", code: `{ title: '名称', dataIndex: 'name', sorter: (a, b) => a.name.localeCompare(b.name) }
|
|
290
|
+
{ title: '版本', dataIndex: 'version', sorter: (a, b) => b.version - a.version }
|
|
291
|
+
{ title: '使用率', dataIndex: 'usage', sorter: (a, b) => b.usage - a.usage }` }, { children: _jsx(Table, { columns: baseColumns, dataSource: tableData, rowKey: "key", pagination: { pageSize: 5, showTotal: true }, size: "middle", bordered: true }) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "table-demo-select" }, { children: "\u884C\u9009\u62E9" })), _jsxs(DemoCard, Object.assign({ title: "\u590D\u9009\u6846\u884C\u9009\u62E9", code: `const [selectedKeys, setSelectedKeys] = useState([]);
|
|
292
|
+
|
|
293
|
+
<Table
|
|
294
|
+
rowSelection={{
|
|
295
|
+
selectedRowKeys: selectedKeys,
|
|
296
|
+
onChange: (keys, rows) => setSelectedKeys(keys),
|
|
297
|
+
}}
|
|
298
|
+
columns={columns}
|
|
299
|
+
dataSource={data}
|
|
300
|
+
rowKey="key"
|
|
301
|
+
/>` }, { children: [_jsx(Table, { columns: baseColumns, dataSource: tableData, rowKey: "key", pagination: { pageSize: 5, showTotal: true }, size: "middle", rowSelection: {
|
|
302
|
+
selectedRowKeys: selectedKeys,
|
|
303
|
+
onChange: (keys) => setSelectedKeys(keys),
|
|
304
|
+
} }), selectedKeys.length > 0 && (_jsxs("div", Object.assign({ className: "adui-table-selected-info", style: { marginTop: 8, fontSize: 13, color: '#888' } }, { children: ["\u5DF2\u9009\u62E9 ", selectedKeys.length, " \u9879"] })))] })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "table-demo-loading" }, { children: "\u52A0\u8F7D & \u7A7A\u6001" })), _jsx(DemoCard, Object.assign({ title: "\u52A0\u8F7D\u72B6\u6001", code: `<Table columns={columns} dataSource={[]} loading />` }, { children: _jsx(Table, { columns: baseColumns, dataSource: tableData.slice(0, 3), rowKey: "key", loading: true, size: "middle" }) })), _jsx(DemoCard, Object.assign({ title: "\u7A7A\u6570\u636E", code: `<Table columns={columns} dataSource={[]} emptyText="暂无数据" />` }, { children: _jsx(Table, { columns: baseColumns, dataSource: [], rowKey: "key", emptyText: "\u6682\u65E0\u6570\u636E", size: "middle" }) }))] }));
|
|
305
|
+
};
|
|
306
|
+
/* ========== Pagination 内容 ========== */
|
|
307
|
+
const PaginationContent = () => {
|
|
308
|
+
const [controlledPage, setControlledPage] = useState(3);
|
|
309
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "pagination-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u5C06\u5927\u91CF\u6570\u636E\u5206\u6279\u6B21\u5C55\u793A\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9002\u5408\u6570\u636E\u91CF\u8D85\u8FC7\u4E00\u9875\u663E\u793A\u8303\u56F4\u3001\u9700\u8981\u7FFB\u9875\u6D4F\u89C8\u7684\u573A\u666F\u3002" }), _jsx("span", { children: "\u652F\u6301\u53D7\u63A7\u548C\u975E\u53D7\u63A7\u4E24\u79CD\u6A21\u5F0F\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "pagination-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Pagination } from 'starry-sky-ui';
|
|
310
|
+
|
|
311
|
+
<Pagination total={100} defaultCurrent={1} defaultPageSize={10} onChange={(page, size) => console.log(page, size)} />` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "pagination-demo-base" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u975E\u53D7\u63A7\u5206\u9875", code: `<Pagination total={200} defaultCurrent={1} showTotal showSizeChanger />` }, { children: _jsx(Pagination, { total: 200, defaultCurrent: 1, showTotal: true, showSizeChanger: true, onChange: (p) => console.log(p) }) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "pagination-demo-controlled" }, { children: "\u53D7\u63A7\u6A21\u5F0F" })), _jsxs(DemoCard, Object.assign({ title: "\u53D7\u63A7\u5206\u9875", code: `const [page, setPage] = useState(3);
|
|
312
|
+
const [size, setSize] = useState(10);
|
|
313
|
+
|
|
314
|
+
<Pagination
|
|
315
|
+
current={page}
|
|
316
|
+
pageSize={size}
|
|
317
|
+
total={500}
|
|
318
|
+
showTotal
|
|
319
|
+
showSizeChanger
|
|
320
|
+
onChange={(p, s) => { setPage(p); setSize(s); }}
|
|
321
|
+
/>` }, { children: [_jsx(Pagination, { current: controlledPage, total: 200, showTotal: true, showSizeChanger: true, onChange: (p) => setControlledPage(p) }), _jsxs("div", Object.assign({ className: "adui-demo-badge", style: { marginTop: 8, display: 'inline-block' } }, { children: ["\u5F53\u524D\u9875: ", controlledPage] }))] })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "pagination-demo-more" }, { children: "\u66F4\u591A\u529F\u80FD" })), _jsx(DemoCard, Object.assign({ title: "\u7B80\u6D01\u6A21\u5F0F", code: `<Pagination total={100} simple />` }, { children: _jsx(Pagination, { total: 100, simple: true }) })), _jsx(DemoCard, Object.assign({ title: "\u5FEB\u901F\u8DF3\u8F6C", code: `<Pagination total={500} showQuickJumper />` }, { children: _jsx(Pagination, { total: 500, showQuickJumper: true, onChange: (p) => console.log(p) }) })), _jsx(DemoCard, Object.assign({ title: "\u5C0F\u5C3A\u5BF8", code: `<Pagination total={200} size="small" showTotal showSizeChanger />` }, { children: _jsx(Pagination, { total: 200, size: "small", showTotal: true, showSizeChanger: true }) })), _jsx(DemoCard, Object.assign({ title: "\u7981\u7528", code: `<Pagination total={200} disabled />` }, { children: _jsx(Pagination, { total: 200, disabled: true, showTotal: true }) }))] }));
|
|
322
|
+
};
|
|
323
|
+
/* ========== ContentRenderer 内容 ========== */
|
|
324
|
+
const crDemoMarkdown = `## 欢迎使用 Markdown 渲染
|
|
325
|
+
|
|
326
|
+
这是一个 **内容展示组件** 的演示,支持以下语法:
|
|
327
|
+
|
|
328
|
+
### 基础格式
|
|
329
|
+
|
|
330
|
+
- **粗体**、*斜体*、~~删除线~~
|
|
331
|
+
- [链接文本](https://example.com)
|
|
332
|
+
- \`行内代码\`
|
|
333
|
+
|
|
334
|
+
### 引用块
|
|
335
|
+
|
|
336
|
+
> 这是一段引用文字,
|
|
337
|
+
> 支持多行引用。
|
|
338
|
+
|
|
339
|
+
### 表格
|
|
340
|
+
|
|
341
|
+
| 特性 | 状态 | 版本 |
|
|
342
|
+
|------|------|------|
|
|
343
|
+
| GFM 表格 | ✅ | 1.0 |
|
|
344
|
+
| 代码高亮 | ✅ | 1.0 |
|
|
345
|
+
| 复制按钮 | ✅ | 1.1 |
|
|
346
|
+
`;
|
|
347
|
+
const crCodeDemo = `\`\`\`typescript
|
|
348
|
+
// 类型安全的 React Hook
|
|
349
|
+
import { useState, useCallback } from 'react';
|
|
350
|
+
|
|
351
|
+
interface UseToggleReturn {
|
|
352
|
+
value: boolean;
|
|
353
|
+
toggle: () => void;
|
|
354
|
+
setTrue: () => void;
|
|
355
|
+
setFalse: () => void;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
function useToggle(initial = false): UseToggleReturn {
|
|
359
|
+
const [value, setValue] = useState(initial);
|
|
360
|
+
const toggle = useCallback(() => setValue(v => !v), []);
|
|
361
|
+
const setTrue = useCallback(() => setValue(true), []);
|
|
362
|
+
const setFalse = useCallback(() => setValue(false), []);
|
|
363
|
+
|
|
364
|
+
return { value, toggle, setTrue, setFalse };
|
|
365
|
+
}
|
|
366
|
+
\`\`\`
|
|
367
|
+
|
|
368
|
+
\`\`\`css
|
|
369
|
+
/* 响应式卡片布局 */
|
|
370
|
+
.articles-grid {
|
|
371
|
+
display: grid;
|
|
372
|
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
373
|
+
gap: 1.5rem;
|
|
374
|
+
padding: 2rem 0;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
@media (max-width: 768px) {
|
|
378
|
+
.articles-grid {
|
|
379
|
+
grid-template-columns: 1fr;
|
|
380
|
+
gap: 1rem;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
\`\`\`
|
|
384
|
+
`;
|
|
385
|
+
const crGfmDemo = `## GFM 扩展语法
|
|
386
|
+
|
|
387
|
+
### 任务列表
|
|
388
|
+
|
|
389
|
+
- [x] 完成基础渲染
|
|
390
|
+
- [x] 支持代码高亮
|
|
391
|
+
- [ ] 添加复制按钮 (已完成)
|
|
392
|
+
- [ ] 支持数学公式
|
|
393
|
+
|
|
394
|
+
### 自动链接
|
|
395
|
+
|
|
396
|
+
访问 https://github.com 自动转为链接。
|
|
397
|
+
|
|
398
|
+
### 表格中对齐
|
|
399
|
+
|
|
400
|
+
| 左对齐 | 居中对齐 | 右对齐 |
|
|
401
|
+
|:-------|:--------:|-------:|
|
|
402
|
+
| 内容 A | 内容 B | 内容 C |
|
|
403
|
+
| 内容 D | 内容 E | 内容 F |
|
|
404
|
+
`;
|
|
405
|
+
const ContentRendererContent = () => (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "cr-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u6E32\u67D3 Markdown \u683C\u5F0F\u7684\u5185\u5BB9\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9002\u5408\u5C55\u793A AI \u56DE\u590D\u3001\u535A\u5BA2\u5185\u5BB9\u3001\u6587\u6863\u8BF4\u660E\u7B49\u5BCC\u6587\u672C\u573A\u666F\u3002" }), _jsx("span", { children: "\u652F\u6301\u4EE3\u7801\u8BED\u6CD5\u9AD8\u4EAE\u3001\u8868\u683C\u3001\u5217\u8868\u3001\u5F15\u7528\u5757\u7B49\u4E30\u5BCC\u683C\u5F0F\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "cr-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { ContentRenderer } from 'starry-sky-ui';
|
|
406
|
+
import type { ContentRendererProps } from 'starry-sky-ui';
|
|
407
|
+
|
|
408
|
+
<ContentRenderer content="# Hello\\n\\nMarkdown **内容**" />` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "cr-demo-base" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u6E32\u67D3 Markdown \u5185\u5BB9", code: `<ContentRenderer content={markdownText} />` }, { children: _jsx(ContentRenderer, { content: crDemoMarkdown }) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "cr-demo-code" }, { children: "\u4EE3\u7801\u9AD8\u4EAE" })), _jsx(DemoCard, Object.assign({ title: "TypeScript + CSS \u4EE3\u7801\u5757", code: `<ContentRenderer content={codeExample} />` }, { children: _jsx(ContentRenderer, { content: crCodeDemo }) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "cr-demo-gfm" }, { children: "GFM \u8BED\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u4EFB\u52A1\u5217\u8868 + \u8868\u683C\u5BF9\u9F50", code: `<ContentRenderer content={gfmText} />` }, { children: _jsx(ContentRenderer, { content: crGfmDemo }) }))] }));
|
|
409
|
+
/* ========== ChatInput 内容 ========== */
|
|
410
|
+
const ChatInputContent = () => {
|
|
411
|
+
const [chatLoading, setChatLoading] = useState(false);
|
|
412
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "ci-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u7528\u6237\u8F93\u5165\u6D88\u606F\u8FDB\u884C\u5BF9\u8BDD\u4EA4\u4E92\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u4EFF DeepSeek \u8F93\u5165\u6846\u8BBE\u8BA1\uFF0C\u652F\u6301\u591A\u884C\u8F93\u5165\u3001\u56DE\u8F66\u53D1\u9001\u3002" }), _jsx("span", { children: "\u914D\u5957 ContentRenderer \u7EC4\u4EF6\u53EF\u5B8C\u7F8E\u5C55\u793A AI \u56DE\u590D\u5185\u5BB9\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "ci-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { ChatInput } from 'starry-sky-ui';
|
|
413
|
+
import type { ChatInputProps } from 'starry-sky-ui';
|
|
414
|
+
|
|
415
|
+
<ChatInput
|
|
416
|
+
onSend={(msg) => console.log(msg)}
|
|
417
|
+
loading={false}
|
|
418
|
+
placeholder="输入消息..."
|
|
419
|
+
/>` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "ci-demo-base" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u9ED8\u8BA4\u72B6\u6001", code: `<ChatInput
|
|
420
|
+
onSend={(msg) => console.log(msg)}
|
|
421
|
+
placeholder="输入消息..."
|
|
422
|
+
/>` }, { children: _jsx("div", Object.assign({ style: { maxWidth: 500, margin: '0 auto' } }, { children: _jsx(ChatInput, { onSend: (msg) => message.info(`发送: ${msg}`), placeholder: "\u8F93\u5165\u6D88\u606F\uFF0CEnter \u53D1\u9001..." }) })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "ci-demo-loading" }, { children: "\u52A0\u8F7D\u72B6\u6001" })), _jsx(DemoCard, Object.assign({ title: "loading \u505C\u6B62\u751F\u6210", code: `const [loading, setLoading] = useState(false);
|
|
423
|
+
<ChatInput
|
|
424
|
+
onSend={loading ? undefined : () => setLoading(true)}
|
|
425
|
+
loading={loading}
|
|
426
|
+
placeholder={loading ? 'AI 正在回复...' : '输入消息...'}
|
|
427
|
+
/>` }, { children: _jsx("div", Object.assign({ style: { maxWidth: 500, margin: '0 auto' } }, { children: _jsx(ChatInput, { onSend: chatLoading ? () => setChatLoading(false) : () => setChatLoading(true), loading: chatLoading, placeholder: chatLoading ? '点击停止生成' : '点击发送开始模拟加载' }) })) }))] }));
|
|
428
|
+
};
|
|
429
|
+
/* ========== Starfield ========== */
|
|
430
|
+
const StarfieldContent = () => (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "starfield-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u4E3A\u9875\u9762\u6DFB\u52A0\u661F\u7A7A\u80CC\u666F\u88C5\u9970\u6548\u679C\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u9002\u5408\u9996\u9875\u3001\u767B\u5F55\u9875\u3001\u843D\u5730\u9875\u7B49\u9700\u8981\u89C6\u89C9\u6C1B\u56F4\u7684\u573A\u666F\u3002" }), _jsx("span", { children: "\u652F\u6301\u81EA\u5B9A\u4E49\u661F\u661F\u6570\u91CF\u3001\u989C\u8272\u548C\u95EA\u70C1\u901F\u5EA6\uFF0C\u878D\u5165\u4E0D\u540C\u89C6\u89C9\u98CE\u683C\u3002" })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "starfield-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { Starfield } from 'starry-sky-ui';
|
|
431
|
+
|
|
432
|
+
// 直接使用,默认参数即可呈现星空效果
|
|
433
|
+
<Starfield />` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "starfield-demo-basic" }, { children: "\u57FA\u672C\u7528\u6CD5" })), _jsx(DemoCard, Object.assign({ title: "\u9ED8\u8BA4\u53C2\u6570", code: `<Starfield />` }, { children: _jsxs("div", Object.assign({ style: { position: 'relative', height: 240, borderRadius: 8, overflow: 'hidden', background: '#0a0a1a' } }, { children: [_jsx(Starfield, {}), _jsx("div", Object.assign({ style: { position: 'relative', zIndex: 2, display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', color: '#fff', fontSize: 18, opacity: 0.7 } }, { children: "\u9ED8\u8BA4 350 \u9897\u661F\u661F" }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "starfield-demo-custom" }, { children: "\u81EA\u5B9A\u4E49\u53C2\u6570" })), _jsx(DemoCard, Object.assign({ title: "\u81EA\u5B9A\u4E49\u989C\u8272\u4E0E\u6570\u91CF", code: `<Starfield
|
|
434
|
+
starCount={100}
|
|
435
|
+
starColors={['#ff6b6b', '#ffd93d', '#6bcb77']}
|
|
436
|
+
time={5}
|
|
437
|
+
/>` }, { children: _jsxs("div", Object.assign({ style: { position: 'relative', height: 240, borderRadius: 8, overflow: 'hidden', background: '#0a0a1a' } }, { children: [_jsx(Starfield, { starCount: 100, starColors: ['#ff6b6b', '#ffd93d', '#6bcb77'], time: 5 }), _jsx("div", Object.assign({ style: { position: 'relative', zIndex: 2, display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', color: '#fff', fontSize: 18, opacity: 0.7 } }, { children: "100 \u9897\u5F69\u8272\u661F\u661F\uFF0C5s \u6700\u5927\u5EF6\u8FDF" }))] })) }))] }));
|
|
438
|
+
/* ========== Utils 工具函数 ========== */
|
|
439
|
+
const UtilsContent = () => {
|
|
440
|
+
const [formatResult, setFormatResult] = useState('');
|
|
441
|
+
// 文件上传相关
|
|
442
|
+
const fileInputRef = useRef(null);
|
|
443
|
+
const [imageInfo, setImageInfo] = useState('');
|
|
444
|
+
const handleImageSelect = useCallback((e) => __awaiter(void 0, void 0, void 0, function* () {
|
|
445
|
+
var _a;
|
|
446
|
+
const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
447
|
+
if (!file)
|
|
448
|
+
return;
|
|
449
|
+
try {
|
|
450
|
+
const info = yield adUtils.getImageInfo(file);
|
|
451
|
+
setImageInfo(`${info.width} × ${info.height} | ${file.type}`);
|
|
452
|
+
}
|
|
453
|
+
catch (_b) {
|
|
454
|
+
message.error('读取图片信息失败');
|
|
455
|
+
}
|
|
456
|
+
}), []);
|
|
457
|
+
const handleCompress = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
458
|
+
var _c, _d;
|
|
459
|
+
const file = (_d = (_c = fileInputRef.current) === null || _c === void 0 ? void 0 : _c.files) === null || _d === void 0 ? void 0 : _d[0];
|
|
460
|
+
if (!file) {
|
|
461
|
+
message.warning('请先选择一张图片');
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
try {
|
|
465
|
+
const blob = yield adUtils.compressImage(file, { quality: 0.5, maxDimension: 600, format: 'image/webp' });
|
|
466
|
+
message.success(`压缩完成!大小:${adUtils.formatFileSize(blob.size)}`);
|
|
467
|
+
// 触发下载
|
|
468
|
+
adUtils.downloadFile(blob, { filename: 'compressed.webp' });
|
|
469
|
+
}
|
|
470
|
+
catch (_e) {
|
|
471
|
+
message.error('压缩失败');
|
|
472
|
+
}
|
|
473
|
+
}), []);
|
|
474
|
+
return (_jsxs(_Fragment, { children: [_jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "utils-when" }, { children: "\u4F55\u65F6\u4F7F\u7528" })), _jsxs(WhenUse, { children: [_jsx("span", { children: "\u9700\u8981\u4F7F\u7528\u6587\u4EF6\u5904\u7406\uFF08\u4E0B\u8F7D\u3001\u683C\u5F0F\u8F6C\u6362\uFF09\u3001\u56FE\u7247\u5904\u7406\uFF08\u538B\u7F29\u3001\u83B7\u53D6\u4FE1\u606F\uFF09\u3001\u4E8B\u4EF6\u63A7\u5236\uFF08\u9632\u6296\u3001\u8282\u6D41\uFF09\u7B49\u8F7B\u91CF\u5DE5\u5177\u65F6\u4F7F\u7528\u3002" }), _jsx("span", { children: "\u65E0\u9700\u5B89\u88C5\u989D\u5916\u4F9D\u8D56\uFF0C\u6240\u6709\u51FD\u6570\u5747\u4E3A\u96F6\u4F9D\u8D56\u7EAF\u51FD\u6570\u3002" }), _jsxs("span", { children: ["\u6240\u6709\u5DE5\u5177\u51FD\u6570\u901A\u8FC7 ", _jsx("code", { children: "adUtils" }), " \u547D\u540D\u7A7A\u95F4\u7EDF\u4E00\u8BBF\u95EE\u3002"] })] }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "utils-how" }, { children: "\u5982\u4F55\u4F7F\u7528" })), _jsx(HowUse, { importCode: `import { adUtils } from 'starry-sky-ui';
|
|
475
|
+
|
|
476
|
+
// 文件工具
|
|
477
|
+
adUtils.formatFileSize(1536); // "1.50 KB"
|
|
478
|
+
adUtils.downloadFile(url, { filename: 'doc.xlsx' });
|
|
479
|
+
|
|
480
|
+
// 图片工具
|
|
481
|
+
const info = await adUtils.getImageInfo(file);
|
|
482
|
+
const blob = await adUtils.compressImage(file, { quality: 0.75 });
|
|
483
|
+
|
|
484
|
+
// 事件工具
|
|
485
|
+
const handleSearch = adUtils.debounce((val) => fetch(val), 500);
|
|
486
|
+
await adUtils.sleep(1000);` }), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "utils-demo-file" }, { children: "\u6587\u4EF6\u5DE5\u5177" })), _jsx(DemoCard, Object.assign({ title: "formatFileSize \u6587\u4EF6\u5927\u5C0F\u683C\u5F0F\u5316", code: `import { adUtils } from 'starry-sky-ui';
|
|
487
|
+
|
|
488
|
+
adUtils.formatFileSize(0); // "0 B"
|
|
489
|
+
adUtils.formatFileSize(1024); // "1.00 KB"
|
|
490
|
+
adUtils.formatFileSize(1536); // "1.50 KB"
|
|
491
|
+
adUtils.formatFileSize(1048576); // "1.00 MB"` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("div", Object.assign({ style: { width: 280 } }, { children: _jsx(Input, { placeholder: "\u8F93\u5165\u5B57\u8282\u6570\uFF0C\u5982 1536", onChange: (val) => {
|
|
492
|
+
const num = parseInt(val);
|
|
493
|
+
setFormatResult(isNaN(num) ? '' : adUtils.formatFileSize(num));
|
|
494
|
+
} }) })), _jsx("span", Object.assign({ className: "adui-demo-badge" }, { children: formatResult || '等待输入...' }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "utils-demo-image" }, { children: "\u56FE\u7247\u5DE5\u5177" })), _jsx(DemoCard, Object.assign({ title: "getImageInfo + compressImage", code: `import { adUtils } from 'starry-sky-ui';
|
|
495
|
+
|
|
496
|
+
// 获取图片信息
|
|
497
|
+
const info = await adUtils.getImageInfo(file);
|
|
498
|
+
// { width: 1920, height: 1080, type: 'image/jpeg' }
|
|
499
|
+
|
|
500
|
+
// 压缩并下载
|
|
501
|
+
const blob = await adUtils.compressImage(file, {
|
|
502
|
+
quality: 0.5,
|
|
503
|
+
maxDimension: 600,
|
|
504
|
+
format: 'image/webp'
|
|
505
|
+
});
|
|
506
|
+
adUtils.downloadFile(blob, { filename: 'compressed.webp' });` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row", style: { flexDirection: 'column', gap: 12 } }, { children: [_jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: handleImageSelect }), _jsxs("div", Object.assign({ style: { display: 'flex', gap: 8, flexWrap: 'wrap' } }, { children: [_jsx("button", Object.assign({ className: "adui-btn", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); } }, { children: "\u9009\u62E9\u56FE\u7247" })), _jsx("button", Object.assign({ className: "adui-btn adui-btn-green", onClick: handleCompress }, { children: "\u538B\u7F29\u5E76\u4E0B\u8F7D WebP" }))] })), imageInfo && _jsx("span", Object.assign({ className: "adui-demo-badge" }, { children: imageInfo }))] })) })), _jsx("h3", Object.assign({ className: "adui-anchor-heading", id: "utils-demo-event" }, { children: "\u4E8B\u4EF6\u5DE5\u5177" })), _jsx(DemoCard, Object.assign({ title: "debounce \u9632\u6296 + sleep \u5EF6\u8FDF", code: `import { adUtils } from 'starry-sky-ui';
|
|
507
|
+
|
|
508
|
+
// 防抖:快速点击只执行最后一次
|
|
509
|
+
const handleSearch = adUtils.debounce((val) => {
|
|
510
|
+
fetchResults(val);
|
|
511
|
+
}, 500);
|
|
512
|
+
|
|
513
|
+
// sleep:异步等待
|
|
514
|
+
await adUtils.sleep(1000); // 等待 1 秒` }, { children: _jsxs("div", Object.assign({ className: "adui-demo-row" }, { children: [_jsx("button", Object.assign({ className: "adui-btn", onClick: adUtils.debounce(() => {
|
|
515
|
+
message.success('防抖执行!快速点击只触发一次');
|
|
516
|
+
}, 800) }, { children: "\u5FEB\u901F\u70B9\u51FB\u6D4B\u8BD5\u9632\u6296" })), _jsx("button", Object.assign({ className: "adui-btn adui-btn-green", onClick: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
517
|
+
message.loading('等待 2 秒...', 0);
|
|
518
|
+
yield adUtils.sleep(2000);
|
|
519
|
+
message.success('sleep 结束!');
|
|
520
|
+
}) }, { children: "sleep 2\u79D2" }))] })) }))] }));
|
|
521
|
+
};
|
|
522
|
+
const componentContent = {
|
|
523
|
+
message: MessageContent,
|
|
524
|
+
modal: ModalContent,
|
|
525
|
+
select: SelectContent,
|
|
526
|
+
input: InputContent,
|
|
527
|
+
table: TableContent,
|
|
528
|
+
pagination: PaginationContent,
|
|
529
|
+
'content-renderer': ContentRendererContent,
|
|
530
|
+
'chat-input': ChatInputContent,
|
|
531
|
+
starfield: StarfieldContent,
|
|
532
|
+
utils: UtilsContent,
|
|
533
|
+
};
|
|
534
|
+
/* ========== 主页面 ========== */
|
|
535
|
+
const AdUI = () => {
|
|
536
|
+
const [currentComp, setCurrentComp] = useState('message');
|
|
537
|
+
const [activeAnchor, setActiveAnchor] = useState('message-when');
|
|
538
|
+
const layoutRef = useRef(null);
|
|
539
|
+
const currentAnchors = anchorMap[currentComp];
|
|
540
|
+
const compMeta = components.find((c) => c.id === currentComp);
|
|
541
|
+
const ContentComp = componentContent[currentComp];
|
|
542
|
+
// IntersectionObserver 跟踪可见锚点
|
|
543
|
+
useEffect(() => {
|
|
544
|
+
// 阻止外层 main-content 滚动,避免双滚动条
|
|
545
|
+
const main = document.querySelector('.main-content');
|
|
546
|
+
if (main) {
|
|
547
|
+
const prev = main.style.overflow;
|
|
548
|
+
main.style.overflow = 'hidden';
|
|
549
|
+
// 组件卸载时恢复
|
|
550
|
+
return () => { main.style.overflow = prev; };
|
|
551
|
+
}
|
|
552
|
+
}, []);
|
|
553
|
+
// 锚点滚动跟踪
|
|
554
|
+
useEffect(() => {
|
|
555
|
+
const anchors = anchorMap[currentComp];
|
|
556
|
+
const els = anchors
|
|
557
|
+
.map((a) => document.getElementById(a.id))
|
|
558
|
+
.filter(Boolean);
|
|
559
|
+
if (!els.length)
|
|
560
|
+
return;
|
|
561
|
+
const observer = new IntersectionObserver((entries) => {
|
|
562
|
+
for (const entry of entries) {
|
|
563
|
+
if (entry.isIntersecting) {
|
|
564
|
+
setActiveAnchor(entry.target.id);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}, {
|
|
568
|
+
root: layoutRef.current,
|
|
569
|
+
rootMargin: '-80px 0px -60% 0px',
|
|
570
|
+
threshold: 0,
|
|
571
|
+
});
|
|
572
|
+
els.forEach((el) => observer.observe(el));
|
|
573
|
+
return () => observer.disconnect();
|
|
574
|
+
}, [currentComp]);
|
|
575
|
+
// 切换组件
|
|
576
|
+
const switchComp = useCallback((id) => {
|
|
577
|
+
var _a;
|
|
578
|
+
setCurrentComp(id);
|
|
579
|
+
// 切换到第一个锚点
|
|
580
|
+
const firstId = (_a = anchorMap[id][0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
581
|
+
if (firstId) {
|
|
582
|
+
setActiveAnchor(firstId);
|
|
583
|
+
// 等 DOM 渲染完后滚动到顶部
|
|
584
|
+
requestAnimationFrame(() => {
|
|
585
|
+
var _a;
|
|
586
|
+
(_a = layoutRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({ top: 0, behavior: 'smooth' });
|
|
587
|
+
});
|
|
588
|
+
}
|
|
589
|
+
}, []);
|
|
590
|
+
// 点击右侧锚点
|
|
591
|
+
const scrollToAnchor = useCallback((anchorId) => {
|
|
592
|
+
const el = document.getElementById(anchorId);
|
|
593
|
+
if (el)
|
|
594
|
+
el.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
|
595
|
+
setActiveAnchor(anchorId);
|
|
596
|
+
}, []);
|
|
597
|
+
return (_jsxs("div", Object.assign({ className: "adui-layout", ref: layoutRef }, { children: [_jsx("aside", Object.assign({ className: "adui-sider" }, { children: _jsxs("div", Object.assign({ className: "adui-sider-inner" }, { children: [_jsxs("div", Object.assign({ className: "adui-sider-logo" }, { children: [_jsx("span", Object.assign({ className: "adui-sider-logo-icon" }, { children: "A" })), _jsx("span", { children: "AdUI \u7EC4\u4EF6" })] })), categories.map((cat) => (_jsxs("div", Object.assign({ className: "adui-nav-group" }, { children: [_jsx("div", Object.assign({ className: "adui-nav-group-title" }, { children: cat.label })), components
|
|
598
|
+
.filter((c) => c.category === cat.id)
|
|
599
|
+
.map((comp) => (_jsx("div", Object.assign({ className: `adui-nav-item ${currentComp === comp.id ? 'active' : ''}`, onClick: () => switchComp(comp.id) }, { children: comp.label }), comp.id)))] }), cat.id)))] })) })), _jsxs("main", Object.assign({ className: "adui-content" }, { children: [_jsxs("section", Object.assign({ className: "adui-hero" }, { children: [_jsx("h1", Object.assign({ className: "adui-hero-title" }, { children: "AdUI" })), _jsx("p", Object.assign({ className: "adui-hero-desc" }, { children: "\u963F\u5446 UI \u7EC4\u4EF6\u5E93 \u2014 \u8F7B\u91CF\u7EA7 React \u7EC4\u4EF6\uFF0CAPI \u8BBE\u8BA1\u53C2\u8003 Ant Design \u6807\u51C6" })), _jsxs("div", Object.assign({ className: "adui-hero-tags" }, { children: [_jsx("span", Object.assign({ className: "adui-tag" }, { children: "React 18" })), _jsx("span", Object.assign({ className: "adui-tag" }, { children: "TypeScript" })), _jsx("span", Object.assign({ className: "adui-tag" }, { children: "SCSS Modules" }))] }))] })), _jsxs("section", Object.assign({ className: "adui-comp-section", id: `${currentComp}-when` }, { children: [_jsx("h2", Object.assign({ className: "adui-comp-title" }, { children: compMeta.label })), _jsx("p", Object.assign({ className: "adui-comp-desc" }, { children: compMeta.desc })), _jsx(ContentComp, {})] }))] })), _jsx("aside", Object.assign({ className: "adui-anchor" }, { children: _jsxs("div", Object.assign({ className: "adui-anchor-inner" }, { children: [_jsx("div", Object.assign({ className: "adui-anchor-title" }, { children: "\u76EE\u5F55" })), currentAnchors.map((anchor) => (_jsx("div", Object.assign({ className: `adui-anchor-item ${activeAnchor === anchor.id ? 'active' : ''}`, onClick: () => scrollToAnchor(anchor.id) }, { children: anchor.label }), anchor.id)))] })) }))] })));
|
|
600
|
+
};
|
|
601
|
+
export default AdUI;
|
|
602
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/AdUI/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
/* ==========================================================
|
|
2
|
+
AdUI 文档 — 三栏布局(Ant Design 风格)
|
|
3
|
+
========================================================== */
|
|
4
|
+
|
|
5
|
+
$sider-width: 240px;
|
|
6
|
+
$anchor-width: 180px;
|
|
7
|
+
$primary: #8b5cf6;
|
|
8
|
+
$primary-light: rgba(139, 92, 246, 0.12);
|
|
9
|
+
$text: #e0e0e0;
|
|
10
|
+
$text-secondary: #888;
|
|
11
|
+
$border: rgba(255, 255, 255, 0.08);
|
|
12
|
+
$bg-card: rgba(255, 255, 255, 0.02);
|
|
13
|
+
|
|
14
|
+
/* ===================== 三栏布局 ===================== */
|
|
15
|
+
|
|
16
|
+
.adui-layout {
|
|
17
|
+
display: flex;
|
|
18
|
+
height: calc(100vh - 70px);
|
|
19
|
+
|
|
20
|
+
overflow-y: auto;
|
|
21
|
+
color: $text;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* ===================== 左侧导航 ===================== */
|
|
25
|
+
|
|
26
|
+
.adui-sider {
|
|
27
|
+
width: $sider-width;
|
|
28
|
+
flex-shrink: 0;
|
|
29
|
+
border-right: 1px solid $border;
|
|
30
|
+
position: sticky;
|
|
31
|
+
top: 0;
|
|
32
|
+
align-self: flex-start;
|
|
33
|
+
overflow-y: auto;
|
|
34
|
+
z-index: 10;
|
|
35
|
+
height: calc(100vh - 70px);
|
|
36
|
+
max-height: calc(100vh - 70px);
|
|
37
|
+
|
|
38
|
+
&::-webkit-scrollbar { width: 4px; }
|
|
39
|
+
&::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 2px; }
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.adui-sider-inner {
|
|
43
|
+
padding: 24px 0 40px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.adui-sider-logo {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: 10px;
|
|
50
|
+
padding: 0 20px 20px;
|
|
51
|
+
font-size: 16px;
|
|
52
|
+
font-weight: 700;
|
|
53
|
+
color: #fff;
|
|
54
|
+
border-bottom: 1px solid $border;
|
|
55
|
+
margin-bottom: 12px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.adui-sider-logo-icon {
|
|
59
|
+
display: inline-flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
width: 30px;
|
|
63
|
+
height: 30px;
|
|
64
|
+
border-radius: 8px;
|
|
65
|
+
background: linear-gradient(135deg, $primary, #3b82f6);
|
|
66
|
+
color: #fff;
|
|
67
|
+
font-size: 16px;
|
|
68
|
+
font-weight: 800;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.adui-nav-group {
|
|
72
|
+
margin-bottom: 4px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.adui-nav-group-title {
|
|
76
|
+
padding: 8px 20px 4px;
|
|
77
|
+
font-size: 12px;
|
|
78
|
+
font-weight: 600;
|
|
79
|
+
color: $text-secondary;
|
|
80
|
+
text-transform: uppercase;
|
|
81
|
+
letter-spacing: 0.5px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.adui-nav-item {
|
|
85
|
+
padding: 8px 20px;
|
|
86
|
+
font-size: 14px;
|
|
87
|
+
color: $text-secondary;
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
border-radius: 0;
|
|
90
|
+
transition: all 0.15s ease;
|
|
91
|
+
border-left: 3px solid transparent;
|
|
92
|
+
margin: 1px 0;
|
|
93
|
+
|
|
94
|
+
&:hover {
|
|
95
|
+
color: #fff;
|
|
96
|
+
background: $primary-light;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&.active {
|
|
100
|
+
color: $primary;
|
|
101
|
+
background: $primary-light;
|
|
102
|
+
border-left-color: $primary;
|
|
103
|
+
font-weight: 500;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* ===================== 中间内容 ===================== */
|
|
108
|
+
|
|
109
|
+
.adui-content {
|
|
110
|
+
flex: 1;
|
|
111
|
+
padding: 24px 48px 120px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// ---- Hero ----
|
|
115
|
+
.adui-hero {
|
|
116
|
+
padding: 0 0 48px;
|
|
117
|
+
margin-bottom: 48px;
|
|
118
|
+
border-bottom: 1px solid $border;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.adui-hero-title {
|
|
122
|
+
font-size: 48px;
|
|
123
|
+
font-weight: 800;
|
|
124
|
+
background: linear-gradient(135deg, $primary 0%, #3b82f6 50%, #06b6d4 100%);
|
|
125
|
+
-webkit-background-clip: text;
|
|
126
|
+
-webkit-text-fill-color: transparent;
|
|
127
|
+
background-clip: text;
|
|
128
|
+
margin: 0 0 12px;
|
|
129
|
+
letter-spacing: -1px;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.adui-hero-desc {
|
|
133
|
+
font-size: 16px;
|
|
134
|
+
color: $text-secondary;
|
|
135
|
+
margin: 0 0 20px;
|
|
136
|
+
line-height: 1.6;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.adui-hero-tags {
|
|
140
|
+
display: flex;
|
|
141
|
+
gap: 8px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.adui-tag {
|
|
145
|
+
display: inline-block;
|
|
146
|
+
padding: 3px 12px;
|
|
147
|
+
border-radius: 20px;
|
|
148
|
+
font-size: 12px;
|
|
149
|
+
font-weight: 500;
|
|
150
|
+
background: $primary-light;
|
|
151
|
+
color: #a78bfa;
|
|
152
|
+
border: 1px solid rgba(139, 92, 246, 0.2);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// ---- 组件区块 ----
|
|
156
|
+
.adui-comp-section {
|
|
157
|
+
margin-bottom: 64px;
|
|
158
|
+
scroll-margin-top: 16px;
|
|
159
|
+
padding: 0 0 24px;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.adui-comp-title {
|
|
163
|
+
font-size: 28px;
|
|
164
|
+
font-weight: 700;
|
|
165
|
+
color: #fff;
|
|
166
|
+
margin: 0 0 8px;
|
|
167
|
+
padding-bottom: 12px;
|
|
168
|
+
border-bottom: 1px solid $border;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.adui-comp-desc {
|
|
172
|
+
font-size: 14px;
|
|
173
|
+
color: $text-secondary;
|
|
174
|
+
margin: 0 0 32px;
|
|
175
|
+
line-height: 1.6;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// ---- 锚点标题 ----
|
|
179
|
+
.adui-anchor-heading {
|
|
180
|
+
font-size: 18px;
|
|
181
|
+
font-weight: 600;
|
|
182
|
+
color: #ccc;
|
|
183
|
+
margin: 36px 0 16px;
|
|
184
|
+
scroll-margin-top: 16px;
|
|
185
|
+
|
|
186
|
+
&:first-of-type {
|
|
187
|
+
margin-top: 0;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// ---- 何时使用 ----
|
|
192
|
+
.adui-when-use {
|
|
193
|
+
margin-bottom: 24px;
|
|
194
|
+
|
|
195
|
+
ul {
|
|
196
|
+
margin: 0;
|
|
197
|
+
padding: 0 0 0 20px;
|
|
198
|
+
list-style: none;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
li {
|
|
202
|
+
position: relative;
|
|
203
|
+
padding: 6px 0 6px 16px;
|
|
204
|
+
font-size: 14px;
|
|
205
|
+
line-height: 1.6;
|
|
206
|
+
color: $text-secondary;
|
|
207
|
+
|
|
208
|
+
&::before {
|
|
209
|
+
content: '';
|
|
210
|
+
position: absolute;
|
|
211
|
+
left: 0;
|
|
212
|
+
top: 14px;
|
|
213
|
+
width: 6px;
|
|
214
|
+
height: 6px;
|
|
215
|
+
border-radius: 50%;
|
|
216
|
+
background: $primary;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// ---- 如何使用 ----
|
|
222
|
+
.adui-how-use {
|
|
223
|
+
margin-bottom: 24px;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// ---- Demo Card ----
|
|
227
|
+
.adui-demo-card {
|
|
228
|
+
border: 1px solid $border;
|
|
229
|
+
border-radius: 10px;
|
|
230
|
+
overflow: hidden;
|
|
231
|
+
margin-bottom: 20px;
|
|
232
|
+
background: $bg-card;
|
|
233
|
+
transition: border-color 0.2s;
|
|
234
|
+
|
|
235
|
+
&:hover {
|
|
236
|
+
border-color: rgba(139, 92, 246, 0.2);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.adui-demo-preview {
|
|
241
|
+
padding: 24px;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.adui-demo-title {
|
|
245
|
+
font-size: 14px;
|
|
246
|
+
font-weight: 600;
|
|
247
|
+
color: #ccc;
|
|
248
|
+
margin: 0 0 4px;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.adui-demo-desc {
|
|
252
|
+
font-size: 13px;
|
|
253
|
+
color: $text-secondary;
|
|
254
|
+
margin: 0 0 16px;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.adui-demo-stage {
|
|
258
|
+
min-height: 40px;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.adui-demo-row {
|
|
262
|
+
display: flex;
|
|
263
|
+
align-items: center;
|
|
264
|
+
gap: 16px;
|
|
265
|
+
flex-wrap: wrap;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.adui-demo-row + .adui-demo-row {
|
|
269
|
+
margin-top: 12px;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.adui-demo-badge {
|
|
273
|
+
font-size: 13px;
|
|
274
|
+
color: $text-secondary;
|
|
275
|
+
font-family: 'SF Mono', 'Fira Code', monospace;
|
|
276
|
+
background: $primary-light;
|
|
277
|
+
padding: 3px 10px;
|
|
278
|
+
border-radius: 4px;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.adui-btn-group {
|
|
282
|
+
display: flex;
|
|
283
|
+
flex-wrap: wrap;
|
|
284
|
+
gap: 8px;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// ---- Code 面板 ----
|
|
288
|
+
.adui-code-panel {
|
|
289
|
+
position: relative;
|
|
290
|
+
background: rgba(0, 0, 0, 0.35);
|
|
291
|
+
border-top: 1px solid $border;
|
|
292
|
+
|
|
293
|
+
pre {
|
|
294
|
+
margin: 0;
|
|
295
|
+
padding: 16px 20px;
|
|
296
|
+
overflow-x: auto;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
code {
|
|
300
|
+
font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
|
|
301
|
+
font-size: 13px;
|
|
302
|
+
line-height: 1.7;
|
|
303
|
+
color: #a0a0a0;
|
|
304
|
+
white-space: pre;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.adui-copy-btn {
|
|
309
|
+
position: absolute;
|
|
310
|
+
top: 8px;
|
|
311
|
+
right: 8px;
|
|
312
|
+
background: rgba(255, 255, 255, 0.06);
|
|
313
|
+
border: 1px solid $border;
|
|
314
|
+
border-radius: 6px;
|
|
315
|
+
color: $text-secondary;
|
|
316
|
+
cursor: pointer;
|
|
317
|
+
padding: 4px 8px;
|
|
318
|
+
font-size: 14px;
|
|
319
|
+
opacity: 0;
|
|
320
|
+
transition: opacity 0.2s;
|
|
321
|
+
line-height: 1;
|
|
322
|
+
|
|
323
|
+
.adui-code-panel:hover & {
|
|
324
|
+
opacity: 1;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
&:hover {
|
|
328
|
+
background: rgba(255, 255, 255, 0.1);
|
|
329
|
+
color: #fff;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/* ===================== 右侧锚点 ===================== */
|
|
334
|
+
|
|
335
|
+
.adui-anchor {
|
|
336
|
+
width: $anchor-width;
|
|
337
|
+
flex-shrink: 0;
|
|
338
|
+
padding: 0 0 0 24px;
|
|
339
|
+
position: sticky;
|
|
340
|
+
top: 0;
|
|
341
|
+
align-self: flex-start;
|
|
342
|
+
height: calc(100vh - 70px);
|
|
343
|
+
max-height: calc(100vh - 70px);
|
|
344
|
+
overflow-y: auto;
|
|
345
|
+
|
|
346
|
+
&::-webkit-scrollbar { width: 4px; }
|
|
347
|
+
&::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 2px; }
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.adui-anchor-inner {
|
|
351
|
+
padding: 40px 0 40px;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.adui-anchor-title {
|
|
355
|
+
font-size: 12px;
|
|
356
|
+
font-weight: 600;
|
|
357
|
+
color: $text-secondary;
|
|
358
|
+
text-transform: uppercase;
|
|
359
|
+
letter-spacing: 0.5px;
|
|
360
|
+
margin-bottom: 12px;
|
|
361
|
+
padding-left: 8px;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
.adui-anchor-item {
|
|
365
|
+
padding: 4px 8px;
|
|
366
|
+
font-size: 13px;
|
|
367
|
+
color: $text-secondary;
|
|
368
|
+
cursor: pointer;
|
|
369
|
+
border-left: 2px solid transparent;
|
|
370
|
+
transition: all 0.15s ease;
|
|
371
|
+
line-height: 1.6;
|
|
372
|
+
margin-bottom: 2px;
|
|
373
|
+
|
|
374
|
+
&:hover {
|
|
375
|
+
color: #aaa;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
&.active {
|
|
379
|
+
color: $primary;
|
|
380
|
+
border-left-color: $primary;
|
|
381
|
+
font-weight: 500;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/* ===================== 通用按钮 ===================== */
|
|
386
|
+
|
|
387
|
+
.adui-btn {
|
|
388
|
+
display: inline-flex;
|
|
389
|
+
align-items: center;
|
|
390
|
+
justify-content: center;
|
|
391
|
+
height: 34px;
|
|
392
|
+
padding: 0 18px;
|
|
393
|
+
border-radius: 8px;
|
|
394
|
+
font-size: 14px;
|
|
395
|
+
font-weight: 500;
|
|
396
|
+
cursor: pointer;
|
|
397
|
+
border: 1px solid rgba(139, 92, 246, 0.3);
|
|
398
|
+
background: rgba(139, 92, 246, 0.1);
|
|
399
|
+
color: #a78bfa;
|
|
400
|
+
transition: all 0.2s ease;
|
|
401
|
+
outline: none;
|
|
402
|
+
white-space: nowrap;
|
|
403
|
+
|
|
404
|
+
&:hover {
|
|
405
|
+
background: rgba(139, 92, 246, 0.2);
|
|
406
|
+
border-color: rgba(139, 92, 246, 0.5);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
&:active { transform: scale(0.97); }
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
.adui-btn-green {
|
|
413
|
+
border-color: rgba(16, 185, 129, 0.3);
|
|
414
|
+
background: rgba(16, 185, 129, 0.1);
|
|
415
|
+
color: #34d399;
|
|
416
|
+
|
|
417
|
+
&:hover {
|
|
418
|
+
background: rgba(16, 185, 129, 0.2);
|
|
419
|
+
border-color: rgba(16, 185, 129, 0.5);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.adui-btn-red {
|
|
424
|
+
border-color: rgba(239, 68, 68, 0.3);
|
|
425
|
+
background: rgba(239, 68, 68, 0.1);
|
|
426
|
+
color: #f87171;
|
|
427
|
+
|
|
428
|
+
&:hover {
|
|
429
|
+
background: rgba(239, 68, 68, 0.2);
|
|
430
|
+
border-color: rgba(239, 68, 68, 0.5);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.adui-btn-orange {
|
|
435
|
+
border-color: rgba(245, 158, 11, 0.3);
|
|
436
|
+
background: rgba(245, 158, 11, 0.1);
|
|
437
|
+
color: #fbbf24;
|
|
438
|
+
|
|
439
|
+
&:hover {
|
|
440
|
+
background: rgba(245, 158, 11, 0.2);
|
|
441
|
+
border-color: rgba(245, 158, 11, 0.5);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/* ===================== 响应式 ===================== */
|
|
446
|
+
|
|
447
|
+
@media (max-width: 1200px) {
|
|
448
|
+
.adui-anchor { display: none; }
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
@media (max-width: 900px) {
|
|
452
|
+
.adui-sider { display: none; }
|
|
453
|
+
|
|
454
|
+
.adui-content {
|
|
455
|
+
padding: 24px 20px 80px;
|
|
456
|
+
max-width: 100%;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.adui-hero-title { font-size: 36px; }
|
|
460
|
+
.adui-comp-title { font-size: 22px; }
|
|
461
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,4 +21,5 @@ export type { ChatInputProps } from './ChatInput';
|
|
|
21
21
|
export type { MessageInstance as MessageType, SelectOption as SelectOptionType, ModalProps as ModalPropsType } from './types';
|
|
22
22
|
import * as adUtils from './utils';
|
|
23
23
|
export { adUtils };
|
|
24
|
+
export { default as AdUI } from './AdUI';
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE1F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,YAAY,EAAE,eAAe,IAAI,WAAW,EAAE,YAAY,IAAI,gBAAgB,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9H,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE1F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,YAAY,EAAE,eAAe,IAAI,WAAW,EAAE,YAAY,IAAI,gBAAgB,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9H,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,CAAC;AAGnB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG/D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAKnD,WAAW;AACX,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG/D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAKnD,WAAW;AACX,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|