one-design-next 0.0.69 → 0.0.71

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 (52) hide show
  1. package/dist/artifact/actions.d.ts +17 -0
  2. package/dist/artifact/actions.js +29 -0
  3. package/dist/artifact/glow.d.ts +7 -0
  4. package/dist/artifact/glow.js +17 -0
  5. package/dist/artifact/icons/ArtifactFileIcon.d.ts +17 -0
  6. package/dist/artifact/icons/ArtifactFileIcon.js +72 -0
  7. package/dist/artifact/icons/file-icons.d.ts +80 -0
  8. package/dist/artifact/icons/file-icons.js +86 -0
  9. package/dist/artifact/icons/index.d.ts +2 -0
  10. package/dist/artifact/icons/index.js +2 -0
  11. package/dist/artifact/icons/medium/csv.svg +25 -0
  12. package/dist/artifact/icons/medium/docx.svg +25 -0
  13. package/dist/artifact/icons/medium/file.svg +25 -0
  14. package/dist/artifact/icons/medium/html.svg +25 -0
  15. package/dist/artifact/icons/medium/md.svg +25 -0
  16. package/dist/artifact/icons/medium/pdf.svg +25 -0
  17. package/dist/artifact/icons/medium/pptx.svg +25 -0
  18. package/dist/artifact/icons/medium/xlsx.svg +25 -0
  19. package/dist/artifact/icons/small/csv.svg +19 -0
  20. package/dist/artifact/icons/small/docx.svg +19 -0
  21. package/dist/artifact/icons/small/file.svg +19 -0
  22. package/dist/artifact/icons/small/html.svg +19 -0
  23. package/dist/artifact/icons/small/md.svg +19 -0
  24. package/dist/artifact/icons/small/pdf.svg +19 -0
  25. package/dist/artifact/icons/small/pptx.svg +19 -0
  26. package/dist/artifact/icons/small/xlsx.svg +19 -0
  27. package/dist/artifact/index.d.ts +35 -16
  28. package/dist/artifact/index.js +187 -180
  29. package/dist/artifact/style/index.css +194 -162
  30. package/dist/composer/index.d.ts +24 -35
  31. package/dist/composer/index.js +212 -106
  32. package/dist/composer/style/index.css +57 -5
  33. package/dist/drawer/index.d.ts +5 -0
  34. package/dist/drawer/index.js +3 -0
  35. package/dist/icon/svg-data.d.ts +20 -0
  36. package/dist/icon/svg-data.js +1 -1
  37. package/dist/icon/types.d.ts +1 -1
  38. package/dist/index.d.ts +2 -2
  39. package/dist/index.js +1 -1
  40. package/dist/modal-base/index.d.ts +7 -0
  41. package/dist/modal-base/index.js +12 -2
  42. package/dist/pop-base/index.d.ts +8 -0
  43. package/dist/pop-base/index.js +8 -1
  44. package/dist/pop-base/style/index.css +8 -0
  45. package/dist/preview-panel/index.d.ts +11 -5
  46. package/dist/preview-panel/index.js +15 -9
  47. package/dist/preview-panel/style/index.css +3 -1
  48. package/dist/skill-slot/index.d.ts +20 -7
  49. package/dist/skill-slot/index.js +191 -105
  50. package/dist/skill-slot/style/index.css +71 -20
  51. package/dist/tooltip/index.js +30 -13
  52. package/package.json +1 -1
@@ -9,10 +9,28 @@
9
9
  padding: 12px 16px;
10
10
  }
11
11
 
12
+ [data-odn-composer]:not([data-odn-composer-disabled]) {
13
+ cursor: text;
14
+ }
15
+
16
+ /* 交互控件显式声明 cursor,与 toolbtn 一致,不被父级 text 覆盖 */
17
+ [data-odn-composer] [data-odn-hover-fill][data-odn-hover-fill-disabled=true],
18
+ [data-odn-composer] [data-odn-composer-tool-btn][data-odn-composer-tool-disabled],
19
+ [data-odn-composer] [data-odn-composer-tool-btn]:disabled,
20
+ [data-odn-composer] [data-odn-composer-send-btn][data-odn-composer-send-disabled],
21
+ [data-odn-composer] [data-odn-composer-send-btn]:disabled {
22
+ cursor: not-allowed;
23
+ }
24
+
12
25
  [data-odn-composer][data-odn-composer-spacing=drawer] {
13
26
  padding: 0 24px 24px;
14
27
  }
15
28
 
29
+ [data-odn-composer][data-odn-composer-variant=full],
30
+ [data-odn-composer][data-odn-composer-variant=lite][data-odn-composer-expanded] {
31
+ --odn-composer-expand-control-offset: 38px;
32
+ }
33
+
16
34
  [data-odn-composer-box] {
17
35
  position: relative;
18
36
  display: flex;
@@ -25,7 +43,7 @@
25
43
  border-radius: 12px;
26
44
  border: 1px solid var(--odn-color-black-6);
27
45
  background: var(--odn-color-bg-elevated);
28
- transition: border-color 0.15s;
46
+ transition: border-color 0.15s, min-height 0.2s ease-out;
29
47
  max-height: 50vh;
30
48
  min-height: 120px;
31
49
  }
@@ -37,6 +55,32 @@
37
55
  background: color-mix(in srgb, var(--odn-color-brand-6) 6%, var(--odn-color-bg-elevated));
38
56
  }
39
57
 
58
+ [data-odn-composer-expand-btn] {
59
+ position: absolute;
60
+ top: 10px;
61
+ right: 10px;
62
+ z-index: 2;
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ width: 28px;
67
+ height: 28px;
68
+ padding: 0;
69
+ border: 0;
70
+ border-radius: 6px;
71
+ color: var(--odn-color-solid-black-8);
72
+ background: transparent;
73
+ cursor: pointer;
74
+ }
75
+ [data-odn-composer-expand-btn]:hover {
76
+ color: var(--odn-color-solid-black-12);
77
+ background: var(--odn-color-black-3);
78
+ }
79
+
80
+ [data-odn-composer-skill-trigger] {
81
+ display: inline-flex;
82
+ }
83
+
40
84
  /* ------------------------------------------------------------------
41
85
  * lite variant:
42
86
  * tools 和 send 按钮 absolute 在 box 的左下/右下;
@@ -186,7 +230,7 @@
186
230
  [data-odn-composer] [data-odn-composer-editor] {
187
231
  position: relative;
188
232
  width: 100%;
189
- padding: 2px 6px 0;
233
+ padding: 2px var(--odn-composer-expand-control-offset, 6px) 0 6px;
190
234
  font-size: 14px;
191
235
  line-height: 24px;
192
236
  color: var(--odn-color-solid-black-12);
@@ -417,11 +461,13 @@
417
461
  fill: currentColor;
418
462
  }
419
463
 
420
- [data-odn-composer-send-btn][data-odn-composer-send-disabled] {
464
+ [data-odn-composer-send-btn][data-odn-composer-send-disabled],
465
+ [data-odn-composer-send-btn]:disabled {
421
466
  opacity: 0.4;
422
- cursor: default;
467
+ cursor: not-allowed;
423
468
  }
424
- [data-odn-composer-send-btn][data-odn-composer-send-disabled]:hover {
469
+ [data-odn-composer-send-btn][data-odn-composer-send-disabled]:hover,
470
+ [data-odn-composer-send-btn]:disabled:hover {
425
471
  opacity: 0.4;
426
472
  }
427
473
 
@@ -448,6 +494,7 @@ p[data-odn-composer-hint] {
448
494
  flex-wrap: wrap;
449
495
  align-items: flex-start;
450
496
  gap: 6px;
497
+ padding-right: var(--odn-composer-expand-control-offset, 0);
451
498
  /* 文件卡 / 缩略卡高度;宽度沿用各自原规则。 */
452
499
  }
453
500
  [data-odn-composer-attachments] [data-odn-attachments-card],
@@ -463,4 +510,9 @@ p[data-odn-composer-hint] {
463
510
  }
464
511
  [data-odn-composer-attachments] [data-odn-attachments] {
465
512
  gap: 6px;
513
+ }
514
+
515
+ [data-odn-composer][data-odn-composer-full-expanded] [data-odn-composer-box] {
516
+ box-sizing: border-box;
517
+ min-height: 50vh;
466
518
  }
@@ -10,6 +10,11 @@ export interface DrawerProps {
10
10
  * @description 挂载容器
11
11
  */
12
12
  container?: HTMLElement;
13
+ /**
14
+ * @description 是否锁定 document 滚动并补偿滚动条宽度。
15
+ * 默认:有自定义 container 时为 false(避免背景左右跳动),否则 true。
16
+ */
17
+ lockScroll?: boolean;
13
18
  /**
14
19
  * @description 是否启用层级提升
15
20
  */
@@ -53,12 +53,14 @@ var Drawer = function Drawer(_ref) {
53
53
  zIndex = _ref.zIndex,
54
54
  keepMounted = _ref.keepMounted,
55
55
  container = _ref.container,
56
+ lockScroll = _ref.lockScroll,
56
57
  title = _ref.title,
57
58
  desc = _ref.desc,
58
59
  _ref$closable = _ref.closable,
59
60
  closable = _ref$closable === void 0 ? defaultProps.closable : _ref$closable,
60
61
  _ref$closePlacement = _ref.closePlacement,
61
62
  closePlacement = _ref$closePlacement === void 0 ? defaultProps.closePlacement : _ref$closePlacement;
63
+ var shouldLockScroll = lockScroll !== null && lockScroll !== void 0 ? lockScroll : !container;
62
64
  var paddingStylePack = {
63
65
  borderRadius: padding
64
66
  };
@@ -157,6 +159,7 @@ var Drawer = function Drawer(_ref) {
157
159
  keepMounted: keepMounted
158
160
  }, maskVisible && /*#__PURE__*/React.createElement(ModalOverlay, {
159
161
  visible: visible,
162
+ lockScroll: shouldLockScroll,
160
163
  "data-odn-modal-overlay": "drawer",
161
164
  style: maskStyle,
162
165
  className: maskClassName,
@@ -132,6 +132,10 @@ export declare const svgData: {
132
132
  readonly viewBox: "0 0 24 24";
133
133
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <circle cx=\"12\" cy=\"12\" r=\"10\" /> <path d=\"M12 6v6l4 2\" /> </g>";
134
134
  };
135
+ readonly 'clock-4': {
136
+ readonly viewBox: "0 0 24 24";
137
+ readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M12 6v6l4 2\"></path></g>";
138
+ };
135
139
  readonly code: {
136
140
  readonly viewBox: "0 0 24 24";
137
141
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"m18 16 4-4-4-4\" /> <path d=\"m6 8-4 4 4 4\" /> <path d=\"m14.5 4-5 16\" /> </g>";
@@ -519,6 +523,10 @@ export declare const svgData: {
519
523
  readonly viewBox: "0 0 24 24";
520
524
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" /> </g>";
521
525
  };
526
+ readonly 'square-filled': {
527
+ readonly viewBox: "0 0 17 16";
528
+ readonly content: "<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.125 1C2.91586 1 1.125 2.79086 1.125 5V11C1.125 13.2091 2.91586 15 5.125 15H11.125C13.3341 15 15.125 13.2091 15.125 11V5C15.125 2.79086 13.3341 1 11.125 1H5.125ZM5.30465 6.36681C5.8683 5.38918 6.92066 4.73314 8.1252 4.73314C9.6001 4.73314 10.8459 5.71711 11.2462 7.06647H10.9535C10.8049 7.06647 10.7162 7.23263 10.7987 7.35668L11.6913 8.70016C11.765 8.81099 11.9273 8.81099 12.001 8.70016L12.8936 7.35668C12.9761 7.23263 12.8874 7.06647 12.7388 7.06647H12.2075C11.7845 5.19608 10.1174 3.7998 8.1252 3.7998C6.57517 3.7998 5.22252 4.6453 4.49943 5.89947C4.3708 6.12256 4.44679 6.40803 4.66914 6.53709C4.8915 6.66614 5.17602 6.5899 5.30465 6.36681ZM5.29693 8.93314H5.00419C5.40445 10.2825 6.65029 11.2665 8.1252 11.2665C9.32973 11.2665 10.3821 10.6104 10.9457 9.6328C11.0744 9.4097 11.3589 9.33347 11.5813 9.46252C11.8036 9.59157 11.8796 9.87705 11.751 10.1001C11.0279 11.3543 9.67522 12.1998 8.1252 12.1998C6.13301 12.1998 4.46586 10.8035 4.04285 8.93314H3.51156C3.36296 8.93314 3.27433 8.76698 3.35675 8.64293L4.24944 7.29945C4.32308 7.18861 4.4854 7.18861 4.55904 7.29945L5.45173 8.64293C5.53415 8.76698 5.44552 8.93314 5.29693 8.93314ZM9.98336 7.02766C10.176 7.19818 10.1943 7.49309 10.0244 7.68634L8.92999 8.93079C8.8417 9.03119 8.71468 9.0887 8.58123 9.0887C8.44778 9.0887 8.32076 9.03119 8.23246 8.93079L7.51978 8.12039L6.94955 8.89848C6.79738 9.10612 6.50625 9.15068 6.2993 8.998C6.09234 8.84532 6.04793 8.55323 6.2001 8.34558L7.1121 7.10114C7.19544 6.98742 7.3256 6.91766 7.46615 6.91138C7.60669 6.90511 7.74251 6.96299 7.83559 7.06883L8.58123 7.91669L9.32686 7.06883C9.49682 6.87557 9.79074 6.85714 9.98336 7.02766Z\" fill=\"currentColor\"/>";
529
+ };
522
530
  readonly star: {
523
531
  readonly viewBox: "0 0 17 16";
524
532
  readonly content: "<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.12515 2.25966L9.46322 4.97088C9.68171 5.4136 10.1041 5.72045 10.5926 5.79145L13.5846 6.22621L11.4196 8.33661C11.0661 8.68121 10.9047 9.17771 10.9882 9.6643L11.4993 12.6442L8.82316 11.2373C8.38618 11.0076 7.86412 11.0076 7.42714 11.2373L4.751 12.6442L5.2621 9.6643C5.34555 9.17771 5.18423 8.68121 4.8307 8.33661L2.66566 6.22621L5.65767 5.79145C6.14624 5.72045 6.56859 5.4136 6.78708 4.97089L8.12515 2.25966ZM7.67678 0.908601C7.86019 0.536978 8.39011 0.536977 8.57352 0.908599L10.36 4.52832C10.4328 4.67589 10.5736 4.77818 10.7364 4.80184L14.731 5.38229C15.1411 5.44188 15.3049 5.94587 15.0081 6.23513L12.1176 9.05269C11.9998 9.16756 11.946 9.33306 11.9738 9.49526L12.6562 13.4737C12.7262 13.8822 12.2975 14.1936 11.9307 14.0008L8.35782 12.1224C8.21216 12.0459 8.03814 12.0459 7.89248 12.1224L4.3196 14.0008C3.95279 14.1936 3.52407 13.8822 3.59413 13.4737L4.27649 9.49526C4.30431 9.33306 4.25053 9.16756 4.13269 9.05269L1.24217 6.23514C0.945414 5.94587 1.10917 5.44188 1.51928 5.38229L5.51387 4.80184C5.67673 4.77818 5.81751 4.67589 5.89034 4.52832L7.67678 0.908601Z\" fill=\"currentColor\"/>";
@@ -634,6 +642,10 @@ export declare const svgData: {
634
642
  readonly viewBox: "0 0 17 16";
635
643
  readonly content: "<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.6626 1.14333C13.2859 1.00783 13.875 1.48265 13.875 2.12051V4.00013H14.375C14.9273 4.00013 15.375 4.44785 15.375 5.00013V14.0001C15.375 14.5524 14.9273 15.0001 14.375 15.0001H2.375C1.82272 15.0001 1.375 14.5524 1.375 14.0001V6.00013V5.00013V4.40312C1.375 3.93269 1.70288 3.52587 2.16257 3.42594L12.6626 1.14333ZM12.875 2.12051L12.875 4.00013H4.22872L12.875 2.12051ZM13.375 5.00013H2.375V6.00013V14.0001H14.375V5.00013H13.375ZM6.93571 6.85348C6.74044 6.65822 6.42386 6.65822 6.2286 6.85348C6.03334 7.04874 6.03334 7.36532 6.2286 7.56058L7.66794 8.99992H5.875C5.59886 8.99992 5.375 9.22378 5.375 9.49992C5.375 9.77607 5.59886 9.99992 5.875 9.99992H7.875V11.9999C7.875 12.2761 8.09886 12.4999 8.375 12.4999C8.65114 12.4999 8.875 12.2761 8.875 11.9999V9.99992H10.875C11.1511 9.99992 11.375 9.77607 11.375 9.49992C11.375 9.22378 11.1511 8.99992 10.875 8.99992H9.24978L10.6891 7.56058C10.8844 7.36532 10.8844 7.04874 10.6891 6.85348C10.4939 6.65822 10.1773 6.65822 9.98202 6.85348L8.45886 8.37663L6.93571 6.85348Z\" fill=\"currentColor\"/>";
636
644
  };
645
+ readonly 'wand-sparkles': {
646
+ readonly viewBox: "0 0 24 24";
647
+ readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72\"/><path d=\"m14 7 3 3\"/><path d=\"M5 6v4\"/><path d=\"M19 14v4\"/><path d=\"M10 2v2\"/><path d=\"M7 8H3\"/><path d=\"M21 16h-4\"/><path d=\"M11 3H9\"/></g>";
648
+ };
637
649
  readonly warning: "<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.00551 2.5L2.23201 12.5H13.779L8.00551 2.5ZM8.43852 1.25C8.24607 0.916667 7.76495 0.916667 7.5725 1.25L0.932968 12.75C0.740518 13.0833 0.98108 13.5 1.36598 13.5H14.645C15.0299 13.5 15.2705 13.0833 15.078 12.75L8.43852 1.25Z\" fill=\"currentColor\"/><path d=\"M8.60035 6.08001C8.60035 5.87014 8.43021 5.70001 8.22035 5.70001H7.78034C7.57048 5.70001 7.40035 5.87014 7.40035 6.08001V8.92001C7.40035 9.12988 7.57048 9.30001 7.78035 9.30001H8.22035C8.43021 9.30001 8.60035 9.12988 8.60035 8.92001V6.08001Z\" fill=\"currentColor\"/><path d=\"M8.60035 10.58C8.60035 10.3701 8.43021 10.2 8.22035 10.2H7.78034C7.57048 10.2 7.40035 10.3701 7.40035 10.58V11.02C7.40035 11.2299 7.57048 11.4 7.78035 11.4H8.22035C8.43021 11.4 8.60035 11.2299 8.60035 11.02V10.58Z\" fill=\"currentColor\"/>";
638
650
  readonly 'warning-filled': "<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.43852 1.25C8.24607 0.916667 7.76495 0.916666 7.5725 1.25L0.932968 12.75C0.740518 13.0833 0.98108 13.5 1.36598 13.5H14.645C15.0299 13.5 15.2705 13.0833 15.078 12.75L8.43852 1.25ZM8.23794 5.55C8.4653 5.55 8.64961 5.73431 8.64961 5.96167V9.03833C8.64961 9.26569 8.4653 9.45 8.23794 9.45H7.76128C7.53392 9.45 7.34961 9.26569 7.34961 9.03833L7.34961 5.96167C7.34961 5.73431 7.53392 5.55 7.76128 5.55H8.23794ZM8.23794 10.425C8.4653 10.425 8.64961 10.6093 8.64961 10.8367V11.3133C8.64961 11.5407 8.4653 11.725 8.23794 11.725H7.76128C7.53392 11.725 7.34961 11.5407 7.34961 11.3133V10.8367C7.34961 10.6093 7.53392 10.425 7.76128 10.425H8.23794Z\" fill=\"currentColor\"/>";
639
651
  readonly wechatBubble: {
@@ -2914,6 +2926,10 @@ export declare const svgData: {
2914
2926
  readonly viewBox: "0 0 24 24";
2915
2927
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 6v12\"></path><path d=\"M17.196 9 6.804 15\"></path><path d=\"m6.804 9 10.392 6\"></path></g>";
2916
2928
  };
2929
+ readonly astroid: {
2930
+ readonly viewBox: "0 0 24 24";
2931
+ readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12.983 21.186a1 1 0 0 1-1.966 0 10 10 0 0 0-8.203-8.203 1 1 0 0 1 0-1.966 10 10 0 0 0 8.203-8.203 1 1 0 0 1 1.966 0 10 10 0 0 0 8.203 8.203 1 1 0 0 1 0 1.966 10 10 0 0 0-8.203 8.203\"></path></g>";
2932
+ };
2917
2933
  readonly binary: {
2918
2934
  readonly viewBox: "0 0 24 24";
2919
2935
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"14\" y=\"14\" width=\"4\" height=\"6\" rx=\"2\"></rect><rect x=\"6\" y=\"4\" width=\"4\" height=\"6\" rx=\"2\"></rect><path d=\"M6 20h4\"></path><path d=\"M14 10h4\"></path><path d=\"M6 14h2v6\"></path><path d=\"M14 4h2v6\"></path></g>";
@@ -4234,6 +4250,10 @@ export declare const svgData: {
4234
4250
  readonly viewBox: "0 0 24 24";
4235
4251
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 7V5a2 2 0 0 1 2-2h2\"></path><path d=\"M17 3h2a2 2 0 0 1 2 2v2\"></path><path d=\"M21 17v2a2 2 0 0 1-2 2h-2\"></path><path d=\"M7 21H5a2 2 0 0 1-2-2v-2\"></path></g>";
4236
4252
  };
4253
+ readonly 'search-line': {
4254
+ readonly viewBox: "0 0 24 24";
4255
+ readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><path d=\"m21 21-4.3-4.3\"></path></g>";
4256
+ };
4237
4257
  readonly 'search-alert': {
4238
4258
  readonly viewBox: "0 0 24 24";
4239
4259
  readonly content: "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><path d=\"m21 21-4.3-4.3\"></path><path d=\"M11 7v4\"></path><path d=\"M11 15h.01\"></path></g>";