one-design-next 0.0.120 → 0.0.121

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.
@@ -24,6 +24,10 @@ export interface ChatGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ti
24
24
  * 左侧文件夹 icon(用户分组缩进标识)。默认 `false`。
25
25
  */
26
26
  folderIcon?: boolean;
27
+ /** 替换默认文件夹图标。 */
28
+ folder?: ReactNode;
29
+ /** 替换默认展开箭头。 */
30
+ chevron?: ReactNode;
27
31
  /**
28
32
  * 分区头样式(如「未分组」)。与 ChatList「分组」同为 12px / black-9,
29
33
  * 不是用户文件夹组。
@@ -36,6 +40,11 @@ export interface ChatGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ti
36
40
  extra?: ReactNode;
37
41
  /** 强制显示 extra(如菜单打开时) */
38
42
  extraVisible?: boolean;
43
+ /**
44
+ * 标题右侧条数。平时占宽;组头悬停、键盘焦点或 `extraVisible` 时退出,
45
+ * 同一位置换成 `extra`。不传则不展示。不从 children 计数。
46
+ */
47
+ count?: ReactNode;
39
48
  /**
40
49
  * 组内每页条数。默认 5;`false` 关闭分页(搜索命中等)。
41
50
  * 首次展开与每次「展开更多」都只增加一页,收起再打开回到第一页。
@@ -48,7 +57,7 @@ export interface ChatGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ti
48
57
  overflowHint?: boolean;
49
58
  children?: ReactNode;
50
59
  }
51
- export declare function ChatGroup({ title, collapsible, collapsed: collapsedProp, defaultCollapsed, onCollapsedChange, renaming: renamingProp, defaultRenaming, onRenamingChange, onRename, folderIcon, section, extra, extraVisible, previewLimit, overflowHint, children, className, ...rest }: ChatGroupProps): React.JSX.Element;
60
+ export declare function ChatGroup({ title, collapsible, collapsed: collapsedProp, defaultCollapsed, onCollapsedChange, renaming: renamingProp, defaultRenaming, onRenamingChange, onRename, folderIcon, folder, chevron, section, extra, extraVisible, count, previewLimit, overflowHint, children, className, ...rest }: ChatGroupProps): React.JSX.Element;
52
61
  export declare namespace ChatGroup {
53
62
  var displayName: string;
54
63
  }
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- var _excluded = ["title", "collapsible", "collapsed", "defaultCollapsed", "onCollapsedChange", "renaming", "defaultRenaming", "onRenamingChange", "onRename", "folderIcon", "section", "extra", "extraVisible", "previewLimit", "overflowHint", "children", "className"];
4
+ var _excluded = ["title", "collapsible", "collapsed", "defaultCollapsed", "onCollapsedChange", "renaming", "defaultRenaming", "onRenamingChange", "onRename", "folderIcon", "folder", "chevron", "section", "extra", "extraVisible", "count", "previewLimit", "overflowHint", "children", "className"];
5
5
  import clsx from 'clsx';
6
6
  import React, { Children, useEffect, useLayoutEffect, useRef, useState } from 'react';
7
7
  import HoverFill from "../hover-fill";
@@ -66,10 +66,13 @@ export function ChatGroup(_ref2) {
66
66
  onRename = _ref2.onRename,
67
67
  _ref2$folderIcon = _ref2.folderIcon,
68
68
  folderIcon = _ref2$folderIcon === void 0 ? false : _ref2$folderIcon,
69
+ folder = _ref2.folder,
70
+ chevron = _ref2.chevron,
69
71
  _ref2$section = _ref2.section,
70
72
  section = _ref2$section === void 0 ? false : _ref2$section,
71
73
  extra = _ref2.extra,
72
74
  extraVisible = _ref2.extraVisible,
75
+ count = _ref2.count,
73
76
  previewLimit = _ref2.previewLimit,
74
77
  _ref2$overflowHint = _ref2.overflowHint,
75
78
  overflowHint = _ref2$overflowHint === void 0 ? true : _ref2$overflowHint,
@@ -172,15 +175,31 @@ export function ChatGroup(_ref2) {
172
175
  }, /*#__PURE__*/React.createElement("div", {
173
176
  "data-odn-chat-group-slot-inner": true
174
177
  }, expandHint)) : expandHint : null);
178
+ var showCount = !editingTitle && count !== null && count !== undefined && count !== false && count !== '';
179
+ var showExtra = Boolean(extra) && !editingTitle;
180
+ // 条数和 extra 叠在同一格里,格子宽度取两者较大值。
181
+ // 让位时只切换可见性,长标题旁的箭头不会跟着挪。
182
+ var showTrailing = showCount && showExtra ? /*#__PURE__*/React.createElement("span", {
183
+ "data-odn-chat-group-aside": true
184
+ }, /*#__PURE__*/React.createElement("span", {
185
+ "data-odn-chat-group-count": true
186
+ }, count), /*#__PURE__*/React.createElement("div", {
187
+ "data-odn-chat-group-extra": true
188
+ }, extra)) : /*#__PURE__*/React.createElement(React.Fragment, null, showCount ? /*#__PURE__*/React.createElement("span", {
189
+ "data-odn-chat-group-count": true
190
+ }, count) : null, showExtra ? /*#__PURE__*/React.createElement("div", {
191
+ "data-odn-chat-group-extra": true
192
+ }, extra) : null);
175
193
  var header = /*#__PURE__*/React.createElement("div", {
176
194
  "data-odn-chat-group-header": true
177
195
  }, editingTitle ? /*#__PURE__*/React.createElement("div", {
178
196
  "data-odn-chat-group-rename": true
179
- }, folderIcon ? /*#__PURE__*/React.createElement(Icon, {
180
- name: "folder",
181
- size: 14,
197
+ }, folderIcon ? /*#__PURE__*/React.createElement("span", {
182
198
  "data-odn-chat-group-folder-icon": true
183
- }) : null, /*#__PURE__*/React.createElement("input", {
199
+ }, folder !== null && folder !== void 0 ? folder : /*#__PURE__*/React.createElement(Icon, {
200
+ name: "folder",
201
+ size: 14
202
+ })) : null, /*#__PURE__*/React.createElement("input", {
184
203
  ref: inputRef,
185
204
  value: draft,
186
205
  "aria-label": "\u91CD\u547D\u540D\u5206\u7EC4",
@@ -208,27 +227,28 @@ export function ChatGroup(_ref2) {
208
227
  "data-odn-chat-group-trigger": true,
209
228
  onClick: toggle,
210
229
  "aria-expanded": !collapsed
211
- }, folderIcon ? /*#__PURE__*/React.createElement(Icon, {
212
- name: "folder",
213
- size: 14,
230
+ }, folderIcon ? /*#__PURE__*/React.createElement("span", {
214
231
  "data-odn-chat-group-folder-icon": true
215
- }) : null, /*#__PURE__*/React.createElement("span", {
232
+ }, folder !== null && folder !== void 0 ? folder : /*#__PURE__*/React.createElement(Icon, {
233
+ name: "folder",
234
+ size: 14
235
+ })) : null, /*#__PURE__*/React.createElement("span", {
216
236
  "data-odn-chat-group-title": true
217
- }, title), /*#__PURE__*/React.createElement(Icon, {
218
- name: "right",
219
- size: 12,
237
+ }, title), /*#__PURE__*/React.createElement("span", {
220
238
  "data-odn-chat-group-chevron": true
221
- })) : /*#__PURE__*/React.createElement("div", {
239
+ }, chevron !== null && chevron !== void 0 ? chevron : /*#__PURE__*/React.createElement(Icon, {
240
+ name: "right",
241
+ size: 12
242
+ }))) : /*#__PURE__*/React.createElement("div", {
222
243
  "data-odn-chat-group-title-row": true
223
- }, folderIcon ? /*#__PURE__*/React.createElement(Icon, {
224
- name: "folder",
225
- size: 14,
244
+ }, folderIcon ? /*#__PURE__*/React.createElement("span", {
226
245
  "data-odn-chat-group-folder-icon": true
227
- }) : null, /*#__PURE__*/React.createElement("span", {
246
+ }, folder !== null && folder !== void 0 ? folder : /*#__PURE__*/React.createElement(Icon, {
247
+ name: "folder",
248
+ size: 14
249
+ })) : null, /*#__PURE__*/React.createElement("span", {
228
250
  "data-odn-chat-group-title": true
229
- }, title)), extra && !editingTitle ? /*#__PURE__*/React.createElement("div", {
230
- "data-odn-chat-group-extra": true
231
- }, extra) : null);
251
+ }, title)), showTrailing);
232
252
  return /*#__PURE__*/React.createElement("div", _extends({
233
253
  "data-odn-chat-group": true,
234
254
  "data-odn-chat-group-collapsed": collapsed || undefined,
@@ -26,6 +26,9 @@
26
26
  [data-odn-chat-group-header]:hover, [data-odn-chat-group-header]:has(:focus-visible) {
27
27
  gap: 4px;
28
28
  }
29
+ [data-odn-chat-group-header]:hover:has([data-odn-chat-group-aside]), [data-odn-chat-group-header]:has(:focus-visible):has([data-odn-chat-group-aside]) {
30
+ gap: 0;
31
+ }
29
32
  [data-odn-chat-group-header]:hover [data-odn-chat-group-extra], [data-odn-chat-group-header]:has(:focus-visible) [data-odn-chat-group-extra] {
30
33
  flex-basis: auto;
31
34
  width: auto;
@@ -39,6 +42,10 @@
39
42
  gap: 4px;
40
43
  }
41
44
 
45
+ [data-odn-chat-group-extra-visible] [data-odn-chat-group-header]:has([data-odn-chat-group-aside]) {
46
+ gap: 0;
47
+ }
48
+
42
49
  [data-odn-chat-group-extra-visible] [data-odn-chat-group-extra] {
43
50
  flex-basis: auto;
44
51
  width: auto;
@@ -115,6 +122,51 @@
115
122
  white-space: nowrap;
116
123
  }
117
124
 
125
+ [data-odn-chat-group-count] {
126
+ flex: none;
127
+ color: var(--odn-color-black-9);
128
+ font-size: 14px;
129
+ font-weight: 400;
130
+ line-height: 22px;
131
+ }
132
+
133
+ [data-odn-chat-group-aside] {
134
+ display: grid;
135
+ flex: none;
136
+ align-items: center;
137
+ justify-items: end;
138
+ }
139
+
140
+ [data-odn-chat-group-aside] > [data-odn-chat-group-count],
141
+ [data-odn-chat-group-aside] > [data-odn-chat-group-extra] {
142
+ grid-area: 1/1;
143
+ }
144
+
145
+ [data-odn-chat-group-aside] > [data-odn-chat-group-extra] {
146
+ width: auto;
147
+ max-width: none;
148
+ min-width: 0;
149
+ flex-basis: auto;
150
+ overflow: visible;
151
+ opacity: 0;
152
+ visibility: hidden;
153
+ pointer-events: none;
154
+ }
155
+
156
+ [data-odn-chat-group-header]:hover [data-odn-chat-group-aside] > [data-odn-chat-group-count],
157
+ [data-odn-chat-group-header]:has(:focus-visible) [data-odn-chat-group-aside] > [data-odn-chat-group-count],
158
+ [data-odn-chat-group-extra-visible] [data-odn-chat-group-aside] > [data-odn-chat-group-count] {
159
+ visibility: hidden;
160
+ }
161
+
162
+ [data-odn-chat-group-header]:hover [data-odn-chat-group-aside] > [data-odn-chat-group-extra],
163
+ [data-odn-chat-group-header]:has(:focus-visible) [data-odn-chat-group-aside] > [data-odn-chat-group-extra],
164
+ [data-odn-chat-group-extra-visible] [data-odn-chat-group-aside] > [data-odn-chat-group-extra] {
165
+ opacity: 1;
166
+ visibility: visible;
167
+ pointer-events: auto;
168
+ }
169
+
118
170
  [data-odn-chat-group-extra] {
119
171
  flex: 0 0 0;
120
172
  display: flex;
@@ -82,9 +82,9 @@ export var skillCardSwitchStyle = {
82
82
  '--odn-switch-track-bg': 'rgba(74, 97, 143, 0.1)',
83
83
  '--odn-switch-track-bg-hover': 'rgba(74, 97, 143, 0.14)',
84
84
  '--odn-switch-track-bg-active': 'rgba(74, 97, 143, 0.18)',
85
- '--odn-switch-track-bg-checked': '#2694FD',
86
- '--odn-switch-track-bg-checked-hover': '#2694FD',
87
- '--odn-switch-track-bg-checked-active': '#2694FD'
85
+ '--odn-switch-track-bg-checked': 'var(--odn-color-brand-6)',
86
+ '--odn-switch-track-bg-checked-hover': 'var(--odn-color-brand-6)',
87
+ '--odn-switch-track-bg-checked-active': 'var(--odn-color-brand-6)'
88
88
  };
89
89
  var TAG_GAP = 6;
90
90
  var MIN_TRUNCATABLE_TAG_WIDTH = 36;
@@ -5,12 +5,16 @@ html {
5
5
  --odn-skill-card-action-gap: 8px;
6
6
  --odn-skill-card-hover-duration: 0.3s;
7
7
  --odn-skill-card-hover-ease: cubic-bezier(0.4, 0, 0.2, 1);
8
- --odn-skill-card-text: rgba(0, 0, 0, 0.95);
9
- --odn-skill-card-secondary: rgba(51, 55, 61, 0.58);
10
- --odn-skill-card-source: #296bef;
11
- --odn-skill-card-source-bg: rgba(41, 107, 239, 0.1);
12
- --odn-skill-card-soft-bg: rgba(74, 97, 143, 0.08);
13
- --odn-skill-card-border: rgba(74, 97, 143, 0.08);
8
+ --odn-skill-card-text: var(--odn-color-black-12);
9
+ --odn-skill-card-secondary: var(--odn-color-black-9);
10
+ --odn-skill-card-source: var(--odn-color-brand-6);
11
+ --odn-skill-card-source-bg: color-mix(
12
+ in srgb,
13
+ var(--odn-color-brand-6) 10%,
14
+ transparent
15
+ );
16
+ --odn-skill-card-soft-bg: var(--odn-color-black-3);
17
+ --odn-skill-card-border: var(--odn-color-black-3);
14
18
  }
15
19
 
16
20
  [data-odn-skill-card] {
@@ -73,7 +77,7 @@ html {
73
77
  width: 230px;
74
78
  height: 130px;
75
79
  transform: rotate(-8.4deg);
76
- background-image: radial-gradient(ellipse at center, rgb(38, 148, 253), transparent 60%);
80
+ background-image: radial-gradient(ellipse at center, var(--odn-color-brand-6), transparent 60%);
77
81
  }
78
82
 
79
83
  [data-odn-skill-card][data-odn-skill-card-hoverable=true]:hover [data-odn-skill-card-glow] {
@@ -107,7 +111,7 @@ html {
107
111
  overflow: hidden;
108
112
  border: 1px solid var(--odn-color-black-1);
109
113
  border-radius: 8px;
110
- color: rgb(38, 148, 253);
114
+ color: var(--odn-color-brand-6);
111
115
  object-fit: cover;
112
116
  }
113
117
 
@@ -132,7 +136,7 @@ html {
132
136
  [data-odn-skill-card-copy] {
133
137
  position: absolute;
134
138
  top: var(--odn-skill-card-padding);
135
- right: 70px;
139
+ right: var(--odn-skill-card-padding);
136
140
  left: 80px;
137
141
  z-index: 20;
138
142
  display: flex;
@@ -144,6 +148,10 @@ html {
144
148
  transition: left var(--odn-skill-card-hover-duration) var(--odn-skill-card-hover-ease), right var(--odn-skill-card-hover-duration) var(--odn-skill-card-hover-ease), transform var(--odn-skill-card-hover-duration) var(--odn-skill-card-hover-ease);
145
149
  }
146
150
 
151
+ [data-odn-skill-card][data-odn-skill-card-control=toggle] [data-odn-skill-card-copy] {
152
+ right: 70px;
153
+ }
154
+
147
155
  [data-odn-skill-card][data-odn-skill-card-control=add] [data-odn-skill-card-copy] {
148
156
  right: 62px;
149
157
  }
@@ -185,8 +193,8 @@ html {
185
193
 
186
194
  [data-odn-skill-card-name] {
187
195
  min-width: 0;
188
- max-width: calc(100% - 8px);
189
- flex: 0 1 auto;
196
+ max-width: 100%;
197
+ flex: 0 0 auto;
190
198
  overflow: hidden;
191
199
  color: var(--odn-skill-card-text);
192
200
  font-size: 14px;
@@ -198,7 +206,7 @@ html {
198
206
 
199
207
  [data-odn-skill-card-alias] {
200
208
  min-width: 0;
201
- flex: 1 1 0;
209
+ flex: 1 1 auto;
202
210
  overflow: hidden;
203
211
  color: var(--odn-skill-card-secondary);
204
212
  font-size: 14px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one-design-next",
3
- "version": "0.0.120",
3
+ "version": "0.0.121",
4
4
  "description": "One Design Next from TAD@tencent.com",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -79,6 +79,7 @@
79
79
  "echarts": "^6.1.0",
80
80
  "echarts-for-react": "^3.0.6",
81
81
  "ldrs": "^1.1.9",
82
+ "modern-screenshot": "4.7.0",
82
83
  "motion": "^12.40.0",
83
84
  "rc-cascader": "^3.34.0",
84
85
  "rc-select": "^14.16.8",
@@ -90,7 +91,9 @@
90
91
  "rc-virtual-list": "^3.19.2",
91
92
  "react-d3-cloud": "^1.0.6",
92
93
  "react-markdown": "^10.1.0",
93
- "remark-gfm": "^4.0.1"
94
+ "remark-gfm": "^4.0.1",
95
+ "tdesign-icons-react": "0.6.11",
96
+ "tdesign-react": "1.18.2"
94
97
  },
95
98
  "devDependencies": {
96
99
  "@commitlint/cli": "^17.1.2",