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

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 (88) 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/ModeSelectorDropdown.js +42 -0
  4. package/dist/components/AI/HomeDialog/ModeSelector/index.module.less +39 -22
  5. package/dist/components/AI/HomeDialog/PromptTextarea/ChooseLib/index.js +12 -4
  6. package/dist/components/AI/HomeDialog/PromptTextarea/ChooseLib/index.module.less +0 -1
  7. package/dist/components/AI/HomeDialog/PromptTextarea/DatasourceCard/index.module.less +3 -3
  8. package/dist/components/AI/HomeDialog/PromptTextarea/index.js +38 -36
  9. package/dist/components/AI/HomeDialog/PromptTextarea/index.module.less +8 -8
  10. package/dist/components/AI/HomeDialog/RecommendCase/Card.js +14 -11
  11. package/dist/components/AI/HomeDialog/RecommendCase/card.module.less +3 -3
  12. package/dist/components/AI/HomeDialog/RecommendCase/index.js +73 -24
  13. package/dist/components/AI/HomeDialog/RecommendCase/index.module.less +4 -2
  14. package/dist/components/AI/HomeDialog/RecommendCase/recommend.json +41 -17
  15. package/dist/components/AI/HomeDialog/index.js +21 -33
  16. package/dist/components/AI/constant.js +4 -2
  17. package/dist/components/Login/Captcha/index.js +185 -0
  18. package/dist/components/Login/Captcha/index.less +91 -0
  19. package/dist/components/Login/CheckCode/index.js +244 -0
  20. package/dist/components/Login/CheckCode/index.less +137 -0
  21. package/dist/components/Login/CountDownButton/index.js +109 -0
  22. package/dist/components/Login/CountDownButton/index.less +8 -0
  23. package/dist/components/Login/LoginForm.js +239 -0
  24. package/dist/components/Login/LoginForm.less +409 -0
  25. package/dist/components/Login/index.js +24 -0
  26. package/dist/components/Login/openAuthWindow.js +54 -0
  27. package/dist/components/Login/types.js +5 -0
  28. package/dist/components/Login/utils.js +47 -0
  29. package/dist/hooks/useProducts.js +22 -1
  30. package/dist/layouts/DocLayout.js +2 -1
  31. package/dist/layouts/GlobalLayout/index.js +11 -4
  32. package/dist/locales/en.json +43 -2
  33. package/dist/locales/zh.json +43 -2
  34. package/dist/model/AIChat.js +93 -6
  35. package/dist/model/auth.js +147 -0
  36. package/dist/pages/AIPlayground/components/ConversationsMenu/index.js +15 -7
  37. package/dist/pages/AIPlayground/components/ConversationsMenu/index.module.less +2 -0
  38. package/dist/pages/AIPlayground/components/MarkdownComponent/MarkdownCodeBlock.js +26 -17
  39. package/dist/pages/AIPlayground/components/MarkdownComponent/MarkdownCodeBlock.module.less +1 -2
  40. package/dist/pages/AIPlayground/components/MarkdownComponent/index.js +7 -4
  41. package/dist/pages/AIPlayground/components/MsgBox/index.js +266 -149
  42. package/dist/pages/AIPlayground/components/MsgBox/index.module.less +3 -2
  43. package/dist/pages/AIPlayground/components/MsgBox/useAutoScroll.js +46 -0
  44. package/dist/pages/AIPlayground/components/SessionLayout/index.js +41 -12
  45. package/dist/pages/AIPlayground/components/SessionLayout/index.module.less +4 -4
  46. package/dist/pages/AIPlayground/components/TaskBox/generateCode.js +129 -8
  47. package/dist/pages/AIPlayground/components/TaskBox/index.js +92 -55
  48. package/dist/pages/AIPlayground/components/TaskBox/index.module.less +1 -0
  49. package/dist/pages/AIPlayground/index.js +4 -1
  50. package/dist/pages/AIPlayground/index.module.less +5 -0
  51. package/dist/pages/Examples/components/Accouncement/index.module.less +1 -1
  52. package/dist/pages/Examples/index.module.less +11 -11
  53. package/dist/pages/Index/components/Cases/index.module.less +8 -8
  54. package/dist/pages/Index/components/Companies/index.module.less +4 -3
  55. package/dist/pages/Index/components/Features/FeatureCard.module.less +4 -5
  56. package/dist/pages/Index/components/Features/index.module.less +5 -5
  57. package/dist/pages/Index/components/_.less +9 -9
  58. package/dist/slots/Banner/Notification.module.less +8 -8
  59. package/dist/slots/Banner/index.module.less +10 -9
  60. package/dist/slots/CodeEditor/Toolbar.js +7 -25
  61. package/dist/slots/CodeEditor/index.js +34 -12
  62. package/dist/slots/CodeEditor/index.module.less +3 -1
  63. package/dist/slots/CodeEditor/utils.js +2 -1
  64. package/dist/slots/CodePreview/index.module.less +0 -3
  65. package/dist/slots/CodeRunner/index.js +23 -11
  66. package/dist/slots/ContentTable/index.module.less +2 -1
  67. package/dist/slots/Detail/News.module.less +9 -9
  68. package/dist/slots/Detail/index.js +2 -1
  69. package/dist/slots/Detail/index.module.less +11 -14
  70. package/dist/slots/ExampleSider/index.module.less +3 -4
  71. package/dist/slots/Footer/index.module.less +2 -2
  72. package/dist/slots/Header/Products/Product.module.less +2 -2
  73. package/dist/slots/Header/Search/SearchResult.js +20 -8
  74. package/dist/slots/Header/Search/SearchResult.module.less +1 -0
  75. package/dist/slots/Header/index.js +51 -25
  76. package/dist/slots/Header/index.module.less +13 -5
  77. package/dist/slots/LiveExample/index.module.less +1 -1
  78. package/dist/slots/Loading/index.module.less +30 -28
  79. package/dist/slots/ManualContent/index.module.less +14 -17
  80. package/dist/slots/_.less +9 -9
  81. package/dist/static/user.svg +3 -0
  82. package/dist/typings.d.ts +6 -0
  83. package/dist/utils/analytics.js +16 -0
  84. package/dist/utils/env.js +63 -0
  85. package/dist/utils/index.js +7 -0
  86. package/dist/utils/request.js +42 -0
  87. package/package.json +9 -5
  88. 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,3 @@
1
+ <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M512 74.666667C270.933333 74.666667 74.666667 270.933333 74.666667 512S270.933333 949.333333 512 949.333333 949.333333 753.066667 949.333333 512 753.066667 74.666667 512 74.666667z m0 160c70.4 0 128 57.6 128 128s-57.6 128-128 128-128-57.6-128-128 57.6-128 128-128z m236.8 507.733333c-23.466667 32-117.333333 100.266667-236.8 100.266667s-213.333333-68.266667-236.8-100.266667c-8.533333-10.666667-10.666667-21.333333-8.533333-32 29.866667-110.933333 130.133333-187.733333 245.333333-187.733333s215.466667 76.8 245.333333 187.733333c2.133333 10.666667 0 21.333333-8.533333 32z" fill="currentColor"></path>
3
+ </svg>
package/dist/typings.d.ts CHANGED
@@ -27,3 +27,9 @@ declare module '*.svg' {
27
27
  const content: any;
28
28
  export default content;
29
29
  }
30
+
31
+ /**
32
+ * 由构建工具注入的包版本号。
33
+ * @see fatherrc.ts
34
+ */
35
+ declare const __PACKAGE_VERSION__: string;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 统一的事件跟踪函数
3
+ * @param {string} eventName - 事件名称,如 'button_click'
4
+ * @param {object} params - 事件相关的参数
5
+ */
6
+ export var trackEvent = function trackEvent(eventName) {
7
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8
+ if (typeof window === 'undefined') {
9
+ return false;
10
+ }
11
+ if (window.gtag) {
12
+ window.gtag('event', eventName, params);
13
+ } else {
14
+ console.warn('[Analytics] gtag is not available.');
15
+ }
16
+ };
package/dist/utils/env.js CHANGED
@@ -8,4 +8,67 @@ 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
+ * 环境类型枚举
15
+ */
16
+
17
+ /**
18
+ * 获取当前环境类型
19
+ * @returns {EnvType} 当前环境类型
20
+ */
21
+ export var getEnv = function getEnv() {
22
+ // 服务端环境默认返回生产环境
23
+ if (typeof window === 'undefined') {
24
+ return 'prod';
25
+ }
26
+ var hostname = window.location.hostname;
27
+
28
+ // 生产环境
29
+ if (hostname.endsWith('antv.antgroup.com')) {
30
+ return 'prod';
31
+ }
32
+
33
+ // 预发环境
34
+ if (hostname.endsWith('-pre.alipay.com')) {
35
+ return 'pre';
36
+ }
37
+
38
+ // 本地环境
39
+ if (hostname.endsWith('.alipay.net')) {
40
+ return 'dev';
41
+ }
42
+
43
+ // 默认返回生产环境
44
+ return 'prod';
45
+ };
46
+
47
+ /**
48
+ * 根据当前环境动态获取 API 的 baseURL。
49
+ * 在浏览器中,它会根据域名判断;在服务端,它会返回一个固定的生产环境地址。
50
+ * @returns {string} API 的 baseURL
51
+ */
52
+ export var getBaseURL = function getBaseURL() {
53
+ var env = getEnv();
54
+ switch (env) {
55
+ case 'dev':
56
+ return 'https://weavefox.alipay.net:8443';
57
+ case 'pre':
58
+ return 'https://prepub.weavefox.cn';
59
+ case 'prod':
60
+ default:
61
+ return 'https://www.weavefox.cn';
62
+ }
63
+ };
64
+ export var getBaseSiteDataUrl = function getBaseSiteDataUrl() {
65
+ var env = getEnv();
66
+ switch (env) {
67
+ case 'dev':
68
+ case 'pre':
69
+ return 'https://site-data-pre.alipay.com';
70
+ case 'prod':
71
+ default:
72
+ return 'https://assets.antv.antgroup.com';
73
+ }
11
74
  };
@@ -0,0 +1,7 @@
1
+ export function isUUID(str) {
2
+ if (typeof str !== 'string') {
3
+ return false;
4
+ }
5
+ var regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
6
+ return regex.test(str);
7
+ }
@@ -0,0 +1,42 @@
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 { getBaseURL } from "./env";
9
+ var req = axios.create({
10
+ baseURL: getBaseURL(),
11
+ timeout: 60000,
12
+ withCredentials: true
13
+ });
14
+
15
+ // 响应拦截器
16
+ req.interceptors.response.use(
17
+ // @ts-ignore - Temporarily ignore type mismatch if it occurs with custom ApiResponse
18
+ function (response) {
19
+ return response.data;
20
+ });
21
+
22
+ /**
23
+ * 封装通用请求方法
24
+ * @template T - 期望的响应数据类型 (后端返回的 data 字段)
25
+ */
26
+ var request = {
27
+ get: function get(url, params, config) {
28
+ return req.get(url, _objectSpread({
29
+ params: params
30
+ }, config));
31
+ },
32
+ post: function post(url, data, config) {
33
+ return req.post(url, data, config);
34
+ },
35
+ put: function put(url, data, config) {
36
+ return req.put(url, data, config);
37
+ },
38
+ delete: function _delete(url, config) {
39
+ return req.delete(url, config);
40
+ }
41
+ };
42
+ 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.21",
4
4
  "description": "AntV website theme based on dumi2.",
5
5
  "keywords": [
6
6
  "dumi",
@@ -54,24 +54,27 @@
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",
60
62
  "@ant-design/x": "^1.6.1",
61
63
  "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
62
64
  "@babel/standalone": "^7.26.2",
63
- "@codesandbox/sandpack-react": "^2.20.0",
64
65
  "@docsearch/css": "^3.8.0",
65
66
  "@docsearch/react": "^3.8.0",
66
67
  "@emotion/server": "^11.11.0",
67
68
  "@fingerprintjs/fingerprintjs": "^4.6.2",
68
- "@monaco-editor/react": "^4.6.0",
69
+ "@monaco-editor/react": "4.7.0",
69
70
  "@petercatai/assistant": "^2.0.24",
70
71
  "@stackblitz/sdk": "^1.11.0",
71
72
  "@tanstack/react-query": "^5.90.2",
72
73
  "ahooks": "^3.9.5",
74
+ "ai": "^5.0.86",
73
75
  "antd": "^5.24.5",
74
76
  "antd-style": "^3.7.1",
77
+ "axios": "^1.13.2",
75
78
  "babel-loader": "^10.0.0",
76
79
  "babel-plugin-import": "^1.13.8",
77
80
  "chalk": "^4.1.2",
@@ -93,7 +96,7 @@
93
96
  "lodash.merge": "^4.6.2",
94
97
  "mini-css-extract-plugin": "^2.9.2",
95
98
  "moment": "^2.30.1",
96
- "monaco-editor": "^0.25.2",
99
+ "monaco-editor": "0.51.0",
97
100
  "nprogress": "^0.2.0",
98
101
  "p-limit": "^3.1.0",
99
102
  "parse-github-url": "^1.0.3",
@@ -124,7 +127,8 @@
124
127
  "uri-parse": "^1.0.0",
125
128
  "valtio": "^1.13.2",
126
129
  "video-react": "^0.16.0",
127
- "xmlbuilder": "^15.1.1"
130
+ "xmlbuilder": "^15.1.1",
131
+ "zod": "^3.25.76"
128
132
  },
129
133
  "devDependencies": {
130
134
  "@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>