@antv/dumi-theme-antv 0.8.0-beta.2 → 0.8.0-beta.4

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 (70) hide show
  1. package/dist/builtins/Playground/index.module.less +0 -1
  2. package/dist/components/AI/HomeDialog/AntVBanner/index.module.less +2 -2
  3. package/dist/components/AI/HomeDialog/ModeSelector/index.module.less +39 -22
  4. package/dist/components/AI/HomeDialog/PromptTextarea/ChooseLib/index.module.less +0 -1
  5. package/dist/components/AI/HomeDialog/PromptTextarea/DatasourceCard/index.module.less +3 -3
  6. package/dist/components/AI/HomeDialog/PromptTextarea/index.js +10 -23
  7. package/dist/components/AI/HomeDialog/PromptTextarea/index.module.less +8 -8
  8. package/dist/components/AI/HomeDialog/RecommendCase/card.module.less +1 -1
  9. package/dist/components/AI/HomeDialog/RecommendCase/index.module.less +2 -2
  10. package/dist/components/Login/Captcha/index.js +199 -0
  11. package/dist/components/Login/Captcha/index.less +91 -0
  12. package/dist/components/Login/CheckCode/index.js +262 -0
  13. package/dist/components/Login/CheckCode/index.less +137 -0
  14. package/dist/components/Login/CountDownButton/index.js +115 -0
  15. package/dist/components/Login/CountDownButton/index.less +8 -0
  16. package/dist/components/Login/LoginForm.js +245 -0
  17. package/dist/components/Login/LoginForm.less +409 -0
  18. package/dist/components/Login/index.js +20 -0
  19. package/dist/components/Login/openAuthWindow.js +54 -0
  20. package/dist/components/Login/types.js +5 -0
  21. package/dist/components/Login/utils.js +47 -0
  22. package/dist/hooks/useProducts.js +3 -2
  23. package/dist/layouts/DocLayout.js +2 -1
  24. package/dist/layouts/GlobalLayout/index.js +8 -4
  25. package/dist/locales/en.json +52 -1
  26. package/dist/locales/zh.json +52 -1
  27. package/dist/model/AIChat.js +2 -2
  28. package/dist/model/auth.js +89 -0
  29. package/dist/pages/AIPlayground/components/ConversationsMenu/index.module.less +2 -0
  30. package/dist/pages/AIPlayground/components/MarkdownComponent/MarkdownCodeBlock.js +7 -5
  31. package/dist/pages/AIPlayground/components/MarkdownComponent/MarkdownCodeBlock.module.less +1 -2
  32. package/dist/pages/AIPlayground/components/MsgBox/index.js +179 -140
  33. package/dist/pages/AIPlayground/components/MsgBox/index.module.less +3 -2
  34. package/dist/pages/AIPlayground/components/MsgBox/useAutoScroll.js +46 -0
  35. package/dist/pages/AIPlayground/components/SessionLayout/index.module.less +1 -2
  36. package/dist/pages/AIPlayground/components/TaskBox/generateCode.js +7 -1
  37. package/dist/pages/AIPlayground/components/TaskBox/index.js +78 -55
  38. package/dist/pages/AIPlayground/components/TaskBox/index.module.less +1 -0
  39. package/dist/pages/Examples/components/Accouncement/index.module.less +1 -1
  40. package/dist/pages/Examples/index.module.less +11 -11
  41. package/dist/pages/Index/components/Cases/index.module.less +8 -8
  42. package/dist/pages/Index/components/Companies/index.module.less +4 -3
  43. package/dist/pages/Index/components/Features/FeatureCard.module.less +4 -5
  44. package/dist/pages/Index/components/Features/index.module.less +5 -5
  45. package/dist/pages/Index/components/_.less +9 -9
  46. package/dist/slots/Banner/Notification.module.less +8 -8
  47. package/dist/slots/Banner/index.module.less +10 -9
  48. package/dist/slots/CodeEditor/Toolbar.js +5 -3
  49. package/dist/slots/CodeEditor/index.js +10 -7
  50. package/dist/slots/CodeEditor/index.module.less +3 -0
  51. package/dist/slots/CodePreview/index.module.less +0 -3
  52. package/dist/slots/CodeRunner/index.js +5 -2
  53. package/dist/slots/ContentTable/index.module.less +2 -1
  54. package/dist/slots/Detail/News.module.less +9 -9
  55. package/dist/slots/Detail/index.module.less +11 -14
  56. package/dist/slots/ExampleSider/index.module.less +3 -4
  57. package/dist/slots/Footer/index.module.less +2 -2
  58. package/dist/slots/Header/Products/Product.module.less +2 -2
  59. package/dist/slots/Header/Search/SearchResult.js +7 -0
  60. package/dist/slots/Header/Search/SearchResult.module.less +1 -0
  61. package/dist/slots/Header/index.module.less +5 -5
  62. package/dist/slots/LiveExample/index.module.less +1 -1
  63. package/dist/slots/Loading/index.module.less +30 -28
  64. package/dist/slots/ManualContent/index.module.less +14 -17
  65. package/dist/slots/_.less +9 -9
  66. package/dist/utils/auth.js +10 -0
  67. package/dist/utils/env.js +24 -0
  68. package/dist/utils/request.js +104 -0
  69. package/package.json +7 -2
  70. package/dist/static/SearchAiIcon.svg +0 -14
@@ -87,7 +87,7 @@
87
87
  }
88
88
 
89
89
  pre[class*='language-'] {
90
- background-color: rgba(0, 0, 0, 0.03);
90
+ background-color: rgba(0, 0, 0, 3%);
91
91
  width: 100%;
92
92
  }
93
93
 
@@ -95,7 +95,7 @@
95
95
  padding: 0.2em 0.4em;
96
96
  margin: 0;
97
97
  font-size: 85%;
98
- background-color: rgba(175, 184, 193, 0.2);
98
+ background-color: rgba(175, 184, 193, 20%);
99
99
  border-radius: 6px;
100
100
  }
101
101
 
@@ -174,7 +174,7 @@
174
174
  table th {
175
175
  color: #5c6b77;
176
176
  font-weight: 500;
177
- background: rgba(0, 0, 0, 0.02);
177
+ background: rgba(0, 0, 0, 2%);
178
178
  }
179
179
 
180
180
  table th,
@@ -193,7 +193,7 @@
193
193
  width: 20%;
194
194
  font-weight: 500;
195
195
  background: #fcfcfc;
196
- color: rgba(0, 0, 0, 0.85);
196
+ color: rgba(0, 0, 0, 85%);
197
197
  }
198
198
 
199
199
  blockquote {
@@ -256,7 +256,6 @@
256
256
  background: #fff;
257
257
  max-height: 100vh;
258
258
  overflow: auto;
259
-
260
259
  position: sticky;
261
260
  top: 0;
262
261
 
@@ -281,8 +280,8 @@
281
280
  margin-bottom: 20px;
282
281
  font-weight: 500;
283
282
  font-size: 30px;
284
- font-family: Avenir, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei,
285
- Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
283
+ font-family: Avenir, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
284
+ "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
286
285
  line-height: 38px;
287
286
  }
288
287
 
@@ -358,7 +357,7 @@
358
357
  justify-content: center;
359
358
  align-items: center;
360
359
  background: #fff;
361
- box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
360
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 15%);
362
361
  border-radius: 0 4px 4px 0;
363
362
  }
364
363
  }
@@ -428,7 +427,7 @@
428
427
  &:hover > div {
429
428
  transform: translateY(-4px);
430
429
  border-color: transparent;
431
- box-shadow: 0 6px 16px rgba(107, 147, 224, 0.14);
430
+ box-shadow: 0 6px 16px rgba(107, 147, 224, 14%);
432
431
  }
433
432
 
434
433
  h4 {
@@ -482,7 +481,7 @@
482
481
  :global {
483
482
  .SplitPane {
484
483
  overflow: auto;
485
- left: 0px;
484
+ left: 0;
486
485
  height: calc(100vh - 64px) !important;
487
486
  }
488
487
 
@@ -623,10 +622,9 @@
623
622
  }
624
623
 
625
624
  .backTop {
626
- transition: color 0.3s;
627
625
  color: #868484;
628
626
  background-color: #fff;
629
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
627
+ box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 12%), 0 6px 16px 0 rgba(0, 0, 0, 8%), 0 9px 28px 8px rgba(0, 0, 0, 5%);
630
628
  transition: color 0.3s;
631
629
  width: 44px;
632
630
  height: 44px;
@@ -667,7 +665,7 @@
667
665
  justify-content: center;
668
666
  align-items: center;
669
667
  background: #fff;
670
- box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
668
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 15%);
671
669
  border-radius: 0 4px 4px 0;
672
670
  }
673
671
 
@@ -677,9 +675,8 @@
677
675
 
678
676
  .readtime {
679
677
  color: #0d1a26;
680
- line-height: 1.5715;
681
678
  list-style: none;
682
- -webkit-font-feature-settings: 'tnum';
679
+ font-feature-settings: 'tnum';
683
680
  font-feature-settings: 'tnum';
684
681
  display: inline-block;
685
682
  height: auto;
@@ -694,6 +691,6 @@
694
691
  opacity: 1;
695
692
  transition: all 0.3s;
696
693
  background-color: #fff;
697
- font-family: Avenir, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei,
698
- Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
694
+ font-family: Avenir, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
695
+ "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
699
696
  }
package/dist/slots/_.less CHANGED
@@ -95,30 +95,30 @@ h6 {
95
95
  width: 100%;
96
96
  height: 11px;
97
97
  margin: -5px 0;
98
- border-top: 5px solid rgba(255, 255, 255, 0);
99
- border-bottom: 5px solid rgba(255, 255, 255, 0);
98
+ border-top: 5px solid rgba(255, 255, 255, 0%);
99
+ border-bottom: 5px solid rgba(255, 255, 255, 0%);
100
100
  cursor: row-resize;
101
101
 
102
102
  &:hover {
103
- border-top: 5px solid rgba(0, 0, 0, 0.5);
104
- border-bottom: 5px solid rgba(0, 0, 0, 0.5);
103
+ border-top: 5px solid rgba(0, 0, 0, 50%);
104
+ border-bottom: 5px solid rgba(0, 0, 0, 50%);
105
105
  }
106
106
  }
107
107
 
108
108
  &.vertical {
109
109
  width: 11px;
110
110
  margin: 0 -5px;
111
- border-right: 5px solid rgba(255, 255, 255, 0);
112
- border-left: 5px solid rgba(255, 255, 255, 0);
111
+ border-right: 5px solid rgba(255, 255, 255, 0%);
112
+ border-left: 5px solid rgba(255, 255, 255, 0%);
113
113
  cursor: col-resize;
114
114
 
115
- Pane2 {
115
+ pane2 {
116
116
  border-left: 1px solid #e6e6e6;
117
117
  }
118
118
 
119
119
  &:hover {
120
- border-right: 5px solid rgba(0, 0, 0, 0.5);
121
- border-left: 5px solid rgba(0, 0, 0, 0.5);
120
+ border-right: 5px solid rgba(0, 0, 0, 50%);
121
+ border-left: 5px solid rgba(0, 0, 0, 50%);
122
122
  }
123
123
  }
124
124
 
@@ -0,0 +1,10 @@
1
+ var TokenKey = 'My-App-Token';
2
+ export var getToken = function getToken() {
3
+ return localStorage.getItem(TokenKey);
4
+ };
5
+ export var setToken = function setToken(token) {
6
+ return localStorage.setItem(TokenKey, token);
7
+ };
8
+ export var removeToken = function removeToken() {
9
+ return localStorage.removeItem(TokenKey);
10
+ };
package/dist/utils/env.js CHANGED
@@ -8,4 +8,28 @@ export var isBrowser = function isBrowser() {
8
8
  export var safeWindow = function safeWindow(fn) {
9
9
  if (isBrowser()) return fn(window);
10
10
  return undefined;
11
+ };
12
+
13
+ /**
14
+ * 根据当前窗口的域名动态获取 API 的 baseURL
15
+ * @returns {string} API 的 baseURL
16
+ */
17
+ export var getBaseURL = function getBaseURL() {
18
+ var hostname = window.location.hostname;
19
+
20
+ // 生产环境
21
+ if (hostname.endsWith('antv.antgroup.com')) {
22
+ return 'https://www.weavefox.cn';
23
+ }
24
+
25
+ // 预发环境
26
+ if (hostname.endsWith('-pre.alipay.com')) {
27
+ return 'https://prepub.weavefox.cn';
28
+ }
29
+
30
+ // 本地环境
31
+ if (hostname.endsWith('.alipay.net')) {
32
+ return 'https://weavefox.alipay.net:8443';
33
+ }
34
+ return 'https://www.weavefox.cn';
11
35
  };
@@ -0,0 +1,104 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import axios from 'axios';
8
+ import { message, Modal } from 'antd';
9
+ import { getBaseURL } from "./env";
10
+ import { getToken, removeToken } from "./auth";
11
+ var req = axios.create({
12
+ baseURL: getBaseURL(),
13
+ timeout: 60000
14
+ });
15
+
16
+ // 请求拦截器
17
+ req.interceptors.request.use(function (config) {
18
+ var token = getToken();
19
+ if (token && config.headers) {
20
+ config.headers.Authorization = "Bearer ".concat(token);
21
+ }
22
+ return config;
23
+ }, function (error) {
24
+ return Promise.reject(error);
25
+ });
26
+
27
+ // 响应拦截器
28
+ req.interceptors.response.use(
29
+ // @ts-ignore - Temporarily ignore type mismatch if it occurs with custom ApiResponse
30
+ function (response) {
31
+ var res = response.data;
32
+
33
+ // 业务码非成功状态的统一处理
34
+ if (res.code !== 0 && res.code !== 200) {
35
+ message.error(res.message || 'Error');
36
+ if (res.code === 401) {
37
+ Modal.confirm({
38
+ title: '登录提醒',
39
+ content: '您的登录已过期,请重新登录。',
40
+ okText: '重新登录',
41
+ cancelText: '取消',
42
+ onOk: function onOk() {
43
+ removeToken();
44
+ window.location.href = '/login';
45
+ }
46
+ });
47
+ }
48
+ return Promise.reject(new Error(res.message || 'Error'));
49
+ } else {
50
+ // 成功则直接返回核心业务数据
51
+ return res.data;
52
+ }
53
+ }, function (error) {
54
+ var errorMessage = error.message;
55
+ if (error.response) {
56
+ switch (error.response.status) {
57
+ case 400:
58
+ errorMessage = '请求参数错误 (400)';
59
+ break;
60
+ case 401:
61
+ errorMessage = '未授权,请重新登录 (401)';
62
+ break;
63
+ case 403:
64
+ errorMessage = '拒绝访问 (403)';
65
+ break;
66
+ case 404:
67
+ errorMessage = '请求地址不存在 (404)';
68
+ break;
69
+ case 500:
70
+ errorMessage = '服务器内部错误 (500)';
71
+ break;
72
+ default:
73
+ errorMessage = "\u8FDE\u63A5\u9519\u8BEF (".concat(error.response.status, ")!");
74
+ }
75
+ } else if (errorMessage.includes('timeout')) {
76
+ errorMessage = '请求超时,请检查网络连接!';
77
+ } else {
78
+ errorMessage = '网络连接异常!';
79
+ }
80
+ message.error(errorMessage);
81
+ return Promise.reject(error);
82
+ });
83
+
84
+ /**
85
+ * 封装通用请求方法
86
+ * @template T - 期望的响应数据类型 (后端返回的 data 字段)
87
+ */
88
+ var request = {
89
+ get: function get(url, params, config) {
90
+ return req.get(url, _objectSpread({
91
+ params: params
92
+ }, config));
93
+ },
94
+ post: function post(url, data, config) {
95
+ return req.post(url, data, config);
96
+ },
97
+ put: function put(url, data, config) {
98
+ return req.put(url, data, config);
99
+ },
100
+ delete: function _delete(url, config) {
101
+ return req.delete(url, config);
102
+ }
103
+ };
104
+ export default request;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/dumi-theme-antv",
3
- "version": "0.8.0-beta.2",
3
+ "version": "0.8.0-beta.4",
4
4
  "description": "AntV website theme based on dumi2.",
5
5
  "keywords": [
6
6
  "dumi",
@@ -54,6 +54,8 @@
54
54
  ]
55
55
  },
56
56
  "dependencies": {
57
+ "@ai-sdk/openai": "^2.0.59",
58
+ "@ai-sdk/react": "^2.0.86",
57
59
  "@ant-design/cssinjs": "^1.23.0",
58
60
  "@ant-design/icons": "^4.8.3",
59
61
  "@ant-design/pro-components": "^2.8.7",
@@ -70,8 +72,10 @@
70
72
  "@stackblitz/sdk": "^1.11.0",
71
73
  "@tanstack/react-query": "^5.90.2",
72
74
  "ahooks": "^3.9.5",
75
+ "ai": "^5.0.86",
73
76
  "antd": "^5.24.5",
74
77
  "antd-style": "^3.7.1",
78
+ "axios": "^1.13.2",
75
79
  "babel-loader": "^10.0.0",
76
80
  "babel-plugin-import": "^1.13.8",
77
81
  "chalk": "^4.1.2",
@@ -124,7 +128,8 @@
124
128
  "uri-parse": "^1.0.0",
125
129
  "valtio": "^1.13.2",
126
130
  "video-react": "^0.16.0",
127
- "xmlbuilder": "^15.1.1"
131
+ "xmlbuilder": "^15.1.1",
132
+ "zod": "^3.25.76"
128
133
  },
129
134
  "devDependencies": {
130
135
  "@commitlint/cli": "^17.8.1",
@@ -1,14 +0,0 @@
1
- <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
2
- <g
3
- fill="none"
4
- stroke="currentColor"
5
- stroke-width="65"
6
- stroke-linecap="round"
7
- stroke-linejoin="round"
8
- >
9
- <circle cx="448" cy="447" r="380" />
10
- <line x1="715" y1="715" x2="900" y2="900" />
11
- <path d="M 290 605 L 382 290 L 475 605 M 320 500 L 445 500" />
12
- <line x1="600" y1="290" x2="600" y2="605" />
13
- </g>
14
- </svg>