@alifd/chat 0.3.11-beta.2 → 0.3.11-beta.3

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 (59) hide show
  1. package/dist/docs/balloon/852.css +1 -1
  2. package/dist/docs/balloon/main.js +1 -1
  3. package/dist/docs/button/852.css +1 -1
  4. package/dist/docs/button/main.js +1 -1
  5. package/dist/docs/card/852.css +1 -1
  6. package/dist/docs/card/main.js +1 -1
  7. package/dist/docs/card-loading/852.css +1 -1
  8. package/dist/docs/card-loading/main.js +1 -1
  9. package/dist/docs/date-picker/852.css +1 -1
  10. package/dist/docs/date-picker/main.js +1 -1
  11. package/dist/docs/drawer/852.css +1 -1
  12. package/dist/docs/drawer/main.js +1 -1
  13. package/dist/docs/feedback/852.css +1 -1
  14. package/dist/docs/feedback/main.js +1 -1
  15. package/dist/docs/float-button/852.css +1 -1
  16. package/dist/docs/float-button/main.js +1 -1
  17. package/dist/docs/form/852.css +1 -1
  18. package/dist/docs/form/main.js +1 -1
  19. package/dist/docs/html-render/852.css +1 -1
  20. package/dist/docs/html-render/main.js +1 -1
  21. package/dist/docs/icon/852.css +1 -1
  22. package/dist/docs/icon/main.js +1 -1
  23. package/dist/docs/image-preview/852.css +1 -1
  24. package/dist/docs/image-preview/main.js +1 -1
  25. package/dist/docs/input/852.css +1 -1
  26. package/dist/docs/input/main.js +1 -1
  27. package/dist/docs/list/852.css +1 -1
  28. package/dist/docs/list/main.js +1 -1
  29. package/dist/docs/loading/852.css +1 -1
  30. package/dist/docs/loading/main.js +1 -1
  31. package/dist/docs/markdown/852.css +1 -1
  32. package/dist/docs/markdown/main.js +1 -1
  33. package/dist/docs/message/852.css +1 -1
  34. package/dist/docs/message/main.js +1 -1
  35. package/dist/docs/origin/852.css +1 -1
  36. package/dist/docs/origin/main.js +1 -1
  37. package/dist/docs/person-picker/852.css +1 -1
  38. package/dist/docs/person-picker/main.js +1 -1
  39. package/dist/docs/recommend/852.css +1 -1
  40. package/dist/docs/recommend/main.js +1 -1
  41. package/dist/docs/reference/main.css +1 -1
  42. package/dist/docs/reference/main.js +1 -1
  43. package/dist/docs/step/852.css +1 -1
  44. package/dist/docs/step/main.js +1 -1
  45. package/dist/docs/stop-generate/852.css +1 -1
  46. package/dist/docs/stop-generate/main.js +1 -1
  47. package/dist/docs/time-picker/852.css +1 -1
  48. package/dist/docs/time-picker/main.js +1 -1
  49. package/es/core/variables.scss +6 -1
  50. package/es/index.js +1 -1
  51. package/es/reference/index.js +33 -7
  52. package/es/reference/main.scss +95 -11
  53. package/es/reference/types.d.ts +14 -0
  54. package/lib/core/variables.scss +6 -1
  55. package/lib/index.js +1 -1
  56. package/lib/reference/index.js +33 -7
  57. package/lib/reference/main.scss +95 -11
  58. package/lib/reference/types.d.ts +14 -0
  59. package/package.json +1 -1
@@ -27,7 +27,7 @@ $s-7: var(---s-7, 28px) !default;
27
27
  $s-8: var(---s-8, 32px) !default;
28
28
  $s-9: var(---s-9, 36px) !default;
29
29
  $s-10: var(---s-10, 40px) !default;
30
-
30
+ $s-15: var(---s-15, 60px) !default;
31
31
 
32
32
  $font-size-headline: var(--font-size-headline, 24px) !default;
33
33
  $font-size-title: var(--font-size-title, 20px) !default;
@@ -36,6 +36,9 @@ $font-size-body-2: var(--font-size-body-2, 14px) !default;
36
36
  $font-size-body-1: var(--font-size-body-1, 14px) !default;
37
37
  $font-size-caption: var(--font-size-caption, 12px) !default;
38
38
 
39
+ $font-lineheight-2: var(--font-lineheight-2, 1.5) !default;
40
+
41
+
39
42
  /// 禁用
40
43
  $color-text1-1: var(--color-text1-1, #cccccc) !default;
41
44
  /// 水印/提示
@@ -86,6 +89,8 @@ $color-data1-9: var(--color-data1-9, #ec4589) !default; // ?
86
89
 
87
90
  $color-data1-10: var(--color-data1-10, #6f9200) !default; // ?
88
91
 
92
+ $color-link-2: var(--color-link-2, #5584ff) !default; // ?
93
+
89
94
  $color-link-3: var(--color-link-3, #0056ff) !default; // ?
90
95
 
91
96
  $color-bg-1: var(--color-bg-1, #ffffff) !default; // ?
package/es/index.js CHANGED
@@ -24,4 +24,4 @@ export { default as Step } from './step';
24
24
  export { default as StopGenerate } from './stop-generate';
25
25
  export { default as Reference } from './reference';
26
26
  export { default as Recommend } from './recommend';
27
- export const version = '0.3.11-beta.2';
27
+ export const version = '0.3.11-beta.3';
@@ -9,36 +9,62 @@ import { ConfigProvider, Icon } from '@alifd/next';
9
9
  import cs from 'classnames';
10
10
  import { PREFIX_DEFAULT, renderCommonIcon } from '../utils';
11
11
  const DEFAULT_REFERENCE_ICON = 'https://img.alicdn.com/imgextra/i3/O1CN01hpxNXz26hRw9Jz4O1_!!6000000007693-55-tps-200-200.svg';
12
- const Reference = forwardRef(({ className, defaultExpanded = false, header, listItems = [], onToggle, onItemClick }, ref) => {
12
+ const Reference = forwardRef(({ className, defaultExpanded = false, header, listItems = [], onToggle, onItemClick, mode = 'simple', onClose, onDetailClick }, ref) => {
13
13
  const [isExpanded, setIsExpanded] = useState(defaultExpanded);
14
14
  const handleToggle = () => {
15
15
  setIsExpanded(!isExpanded);
16
16
  onToggle && onToggle(!isExpanded);
17
17
  };
18
18
  const renderHeader = () => {
19
+ if (mode === 'detail') {
20
+ return renderDetailHeader();
21
+ }
19
22
  let headerIcon = (header === null || header === void 0 ? void 0 : header.icon) || DEFAULT_REFERENCE_ICON;
20
23
  const iconType = isExpanded ? 'arrow-up' : 'arrow-down';
21
- return (React.createElement("div", { className: 'reference-header', onClick: handleToggle },
24
+ return (React.createElement("div", { className: `reference-header ${mode}`, onClick: handleToggle },
22
25
  React.createElement("div", { className: 'reference-name' },
23
26
  renderCommonIcon(headerIcon),
24
27
  React.createElement("div", { className: 'reference-title' }, header === null || header === void 0 ? void 0 : header.title)),
25
28
  React.createElement("div", { className: 'reference-operate' },
26
29
  React.createElement(Icon, { type: iconType, size: 'xxs' }))));
27
30
  };
31
+ const renderDetailHeader = () => {
32
+ return (React.createElement("div", { className: `reference-header ${mode}` },
33
+ React.createElement("div", { className: 'reference-text' }, "\u5F15\u7528\u4FE1\u606F"),
34
+ React.createElement("div", { className: 'reference-close', onClick: () => {
35
+ onClose === null || onClose === void 0 ? void 0 : onClose();
36
+ } }, renderCommonIcon('close', 'small'))));
37
+ };
28
38
  const handleReferenceClick = (item, index) => {
29
39
  onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, index);
30
40
  (item === null || item === void 0 ? void 0 : item.url) && window.open(item === null || item === void 0 ? void 0 : item.url, '_blank');
31
41
  };
42
+ const renderDetailList = () => {
43
+ return listItems.map((item, index) => (React.createElement("div", { key: index, className: 'reference-item', onClick: () => handleReferenceClick(item, index) },
44
+ React.createElement("div", { className: 'reference-title' },
45
+ (item === null || item === void 0 ? void 0 : item.sourceIcon) && renderCommonIcon(item === null || item === void 0 ? void 0 : item.sourceIcon),
46
+ (item === null || item === void 0 ? void 0 : item.modifyTime) && React.createElement("div", { className: 'reference-time' }, item === null || item === void 0 ? void 0 : item.modifyTime)),
47
+ React.createElement("div", { className: 'reference-name' }, item === null || item === void 0 ? void 0 : item.name),
48
+ (item === null || item === void 0 ? void 0 : item.content) && React.createElement("div", { className: 'reference-content' }, item === null || item === void 0 ? void 0 : item.content))));
49
+ };
32
50
  const renderList = () => {
33
- if (!listItems || listItems.length === 0 || !isExpanded) {
51
+ if (!listItems || listItems.length === 0) {
52
+ return null;
53
+ }
54
+ if (!isExpanded && mode === 'simple') {
34
55
  return null;
35
56
  }
36
- return (React.createElement("div", { className: 'reference-list' }, listItems.map((item, index) => (React.createElement("div", { key: index, className: 'reference-item', onClick: () => handleReferenceClick(item, index) },
37
- renderCommonIcon(item === null || item === void 0 ? void 0 : item.sourceIcon),
38
- React.createElement("div", { className: 'reference-text' }, item === null || item === void 0 ? void 0 : item.name))))));
57
+ return (React.createElement("div", { className: `reference-list ${mode}`, onClick: () => {
58
+ onDetailClick === null || onDetailClick === void 0 ? void 0 : onDetailClick();
59
+ } },
60
+ isExpanded && mode === 'simple' && listItems.map((item, index) => (React.createElement("div", { key: index, className: 'reference-item' },
61
+ (item === null || item === void 0 ? void 0 : item.sourceIcon) && renderCommonIcon(item === null || item === void 0 ? void 0 : item.sourceIcon),
62
+ React.createElement("div", { className: 'reference-text', onClick: () => handleReferenceClick(item, index) }, item === null || item === void 0 ? void 0 : item.name),
63
+ (item === null || item === void 0 ? void 0 : item.modifyTime) && React.createElement("div", { className: 'reference-time' }, item === null || item === void 0 ? void 0 : item.modifyTime)))),
64
+ mode === 'detail' && renderDetailList()));
39
65
  };
40
66
  const statusClassName = isExpanded ? 'expand' : '';
41
- return (React.createElement("div", { className: cs(`${PREFIX_DEFAULT}reference ${statusClassName}`, className), ref: ref },
67
+ return (React.createElement("div", { className: cs(`${PREFIX_DEFAULT}reference ${mode} ${statusClassName}`, className), ref: ref },
42
68
  renderHeader(),
43
69
  renderList()));
44
70
  });
@@ -12,30 +12,50 @@
12
12
  width: 100%;
13
13
  }
14
14
 
15
+ &.detail {
16
+ background-color: white;
17
+ }
18
+
15
19
  .reference-header {
16
20
  display: flex;
17
21
  justify-content: space-between;
18
22
  cursor: pointer;
19
- // margin-bottom: $s-1;
23
+ align-items: center;
24
+
25
+ &.detail {
26
+ border-bottom: solid 1px $color-line1-0;
27
+ height: $s-15;
28
+ margin: 0 $s-4;
29
+
30
+ .reference-text {
31
+ line-height: $s-15;
32
+ font-size: $s-6;
33
+ font-weight: bold;
34
+ }
35
+ .reference-close {
36
+ width: fit-content;
37
+ }
38
+
39
+ }
20
40
 
21
41
  .reference-name{
22
42
  display: flex;
23
43
  align-items: center;
24
44
  .reference-title{
25
45
  color: $color-text1-4;
26
- font-size: 12px;
46
+ font-size: $font-size-caption;
27
47
  font-weight: 600;
28
- line-height: 18px;
48
+ line-height: $font-lineheight-2;
29
49
  }
30
50
  .common-icon {
31
- margin-right: 4px;
51
+ margin-right: $s-1;
32
52
  color: $color-brand1-6;
33
53
  }
34
54
  }
35
55
 
36
56
  .reference-operate{
37
57
  cursor: pointer;
38
- margin: 0px $s-1 0px $s-1;
58
+ margin: 0 $s-1;
39
59
  width: $s-3;
40
60
  height: $s-5;
41
61
  display: flex;
@@ -49,6 +69,58 @@
49
69
  }
50
70
 
51
71
  .reference-list {
72
+
73
+ &.detail {
74
+ // padding: 0px $s-4;
75
+ .reference-item {
76
+ display:block;
77
+ padding: $s-2 $s-4;
78
+
79
+ &:hover {
80
+ background: $color-fill1-1;
81
+ }
82
+ .reference-title {
83
+ display: flex;
84
+ align-items: center;
85
+ margin-bottom: $s-2;
86
+
87
+ .common-icon {
88
+ img {
89
+ height: $s-6;
90
+ width: auto;
91
+ }
92
+ }
93
+
94
+ .reference-time {
95
+ margin-left: $s-2;
96
+ color: $color-text1-1;
97
+ font-size: $font-size-body-1;
98
+ }
99
+ }
100
+
101
+ .reference-name {
102
+ margin-bottom: $s-2;
103
+ line-height: $s-6;
104
+ color: $color-link-3;
105
+ font-size: $s-4;
106
+ overflow: hidden; /* 隐藏超出部分 */
107
+ display: -webkit-box; /* 使其成为弹性盒子 */
108
+ -webkit-box-orient: vertical; /* 垂直排列 */
109
+ -webkit-line-clamp: 2; /* 限制显示3行 */
110
+ }
111
+
112
+ .reference-content {
113
+ font-size: $font-size-body-1;
114
+ line-height: $font-lineheight-2;
115
+ color: $color-text1-4;
116
+ overflow: hidden; /* 隐藏超出部分 */
117
+ display: -webkit-box; /* 使其成为弹性盒子 */
118
+ -webkit-box-orient: vertical; /* 垂直排列 */
119
+ -webkit-line-clamp: 3; /* 限制显示3行 */
120
+ }
121
+ }
122
+ }
123
+
52
124
  margin-top: $s-1;
53
125
  .reference-item{
54
126
  display: flex;
@@ -60,26 +132,38 @@
60
132
  margin-bottom: 0;
61
133
  }
62
134
  .common-icon {
63
- margin-right: 4px;
64
- &.svg {
135
+ margin-right: $s-1;
65
136
 
137
+ &.svg {
66
138
  }
67
139
 
68
- &.img {
69
-
140
+ img {
141
+ height: $s-4;
142
+ width: auto;
70
143
  }
71
144
 
72
145
  &.node {
73
146
 
74
147
  }
75
148
  }
149
+
76
150
  .reference-text {
77
- font-size: $s-3;
151
+ font-size: $font-size-caption;
78
152
  color: $color-link-2;
79
153
  white-space: nowrap; /* 禁止换行 */
80
154
  overflow: hidden; /* 超出部分隐藏 */
81
155
  text-overflow: ellipsis; /* 以省略号显示溢出文本 */
82
- line-height: 18px;
156
+ line-height: $font-lineheight-2;
157
+ }
158
+
159
+ .reference-time {
160
+ font-size: $s-3;
161
+ color: $color-text1-1;
162
+ line-height: $font-lineheight-2;
163
+ margin-left: $s-1;
164
+ white-space: nowrap; /* 禁止换行 */
165
+ overflow: hidden; /* 超出部分隐藏 */
166
+ text-overflow: ellipsis; /* 以省略号显示溢出文本 */
83
167
  }
84
168
  }
85
169
  }
@@ -6,6 +6,8 @@ export interface ReferenceItemProps {
6
6
  url?: string;
7
7
  sourceIcon?: string;
8
8
  sourceCode?: string;
9
+ modifyTime?: string;
10
+ content?: string;
9
11
  }
10
12
  /**
11
13
  * 参考来源属性
@@ -39,4 +41,16 @@ export interface ReferenceProps extends React.HTMLAttributes<HTMLElement>, Commo
39
41
  * 点击对应参考来源项
40
42
  */
41
43
  onItemClick?: (item: ReferenceItemProps, index: number) => void;
44
+ /**
45
+ * 来源展示的模式
46
+ */
47
+ mode?: 'simple' | 'detail';
48
+ /**
49
+ * 关闭参考来源点击
50
+ */
51
+ onClose?: () => void;
52
+ /**
53
+ * 参考来源面板点击回调(区别于每个参考来源项的点击/头部展开点击)
54
+ */
55
+ onDetailClick?: () => void;
42
56
  }
@@ -27,7 +27,7 @@ $s-7: var(---s-7, 28px) !default;
27
27
  $s-8: var(---s-8, 32px) !default;
28
28
  $s-9: var(---s-9, 36px) !default;
29
29
  $s-10: var(---s-10, 40px) !default;
30
-
30
+ $s-15: var(---s-15, 60px) !default;
31
31
 
32
32
  $font-size-headline: var(--font-size-headline, 24px) !default;
33
33
  $font-size-title: var(--font-size-title, 20px) !default;
@@ -36,6 +36,9 @@ $font-size-body-2: var(--font-size-body-2, 14px) !default;
36
36
  $font-size-body-1: var(--font-size-body-1, 14px) !default;
37
37
  $font-size-caption: var(--font-size-caption, 12px) !default;
38
38
 
39
+ $font-lineheight-2: var(--font-lineheight-2, 1.5) !default;
40
+
41
+
39
42
  /// 禁用
40
43
  $color-text1-1: var(--color-text1-1, #cccccc) !default;
41
44
  /// 水印/提示
@@ -86,6 +89,8 @@ $color-data1-9: var(--color-data1-9, #ec4589) !default; // ?
86
89
 
87
90
  $color-data1-10: var(--color-data1-10, #6f9200) !default; // ?
88
91
 
92
+ $color-link-2: var(--color-link-2, #5584ff) !default; // ?
93
+
89
94
  $color-link-3: var(--color-link-3, #0056ff) !default; // ?
90
95
 
91
96
  $color-bg-1: var(--color-bg-1, #ffffff) !default; // ?
package/lib/index.js CHANGED
@@ -54,4 +54,4 @@ var reference_1 = require("./reference");
54
54
  Object.defineProperty(exports, "Reference", { enumerable: true, get: function () { return tslib_1.__importDefault(reference_1).default; } });
55
55
  var recommend_1 = require("./recommend");
56
56
  Object.defineProperty(exports, "Recommend", { enumerable: true, get: function () { return tslib_1.__importDefault(recommend_1).default; } });
57
- exports.version = '0.3.11-beta.2';
57
+ exports.version = '0.3.11-beta.3';
@@ -12,36 +12,62 @@ const next_1 = require("@alifd/next");
12
12
  const classnames_1 = tslib_1.__importDefault(require("classnames"));
13
13
  const utils_1 = require("../utils");
14
14
  const DEFAULT_REFERENCE_ICON = 'https://img.alicdn.com/imgextra/i3/O1CN01hpxNXz26hRw9Jz4O1_!!6000000007693-55-tps-200-200.svg';
15
- const Reference = (0, react_1.forwardRef)(({ className, defaultExpanded = false, header, listItems = [], onToggle, onItemClick }, ref) => {
15
+ const Reference = (0, react_1.forwardRef)(({ className, defaultExpanded = false, header, listItems = [], onToggle, onItemClick, mode = 'simple', onClose, onDetailClick }, ref) => {
16
16
  const [isExpanded, setIsExpanded] = (0, react_1.useState)(defaultExpanded);
17
17
  const handleToggle = () => {
18
18
  setIsExpanded(!isExpanded);
19
19
  onToggle && onToggle(!isExpanded);
20
20
  };
21
21
  const renderHeader = () => {
22
+ if (mode === 'detail') {
23
+ return renderDetailHeader();
24
+ }
22
25
  let headerIcon = (header === null || header === void 0 ? void 0 : header.icon) || DEFAULT_REFERENCE_ICON;
23
26
  const iconType = isExpanded ? 'arrow-up' : 'arrow-down';
24
- return (react_1.default.createElement("div", { className: 'reference-header', onClick: handleToggle },
27
+ return (react_1.default.createElement("div", { className: `reference-header ${mode}`, onClick: handleToggle },
25
28
  react_1.default.createElement("div", { className: 'reference-name' },
26
29
  (0, utils_1.renderCommonIcon)(headerIcon),
27
30
  react_1.default.createElement("div", { className: 'reference-title' }, header === null || header === void 0 ? void 0 : header.title)),
28
31
  react_1.default.createElement("div", { className: 'reference-operate' },
29
32
  react_1.default.createElement(next_1.Icon, { type: iconType, size: 'xxs' }))));
30
33
  };
34
+ const renderDetailHeader = () => {
35
+ return (react_1.default.createElement("div", { className: `reference-header ${mode}` },
36
+ react_1.default.createElement("div", { className: 'reference-text' }, "\u5F15\u7528\u4FE1\u606F"),
37
+ react_1.default.createElement("div", { className: 'reference-close', onClick: () => {
38
+ onClose === null || onClose === void 0 ? void 0 : onClose();
39
+ } }, (0, utils_1.renderCommonIcon)('close', 'small'))));
40
+ };
31
41
  const handleReferenceClick = (item, index) => {
32
42
  onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, index);
33
43
  (item === null || item === void 0 ? void 0 : item.url) && window.open(item === null || item === void 0 ? void 0 : item.url, '_blank');
34
44
  };
45
+ const renderDetailList = () => {
46
+ return listItems.map((item, index) => (react_1.default.createElement("div", { key: index, className: 'reference-item', onClick: () => handleReferenceClick(item, index) },
47
+ react_1.default.createElement("div", { className: 'reference-title' },
48
+ (item === null || item === void 0 ? void 0 : item.sourceIcon) && (0, utils_1.renderCommonIcon)(item === null || item === void 0 ? void 0 : item.sourceIcon),
49
+ (item === null || item === void 0 ? void 0 : item.modifyTime) && react_1.default.createElement("div", { className: 'reference-time' }, item === null || item === void 0 ? void 0 : item.modifyTime)),
50
+ react_1.default.createElement("div", { className: 'reference-name' }, item === null || item === void 0 ? void 0 : item.name),
51
+ (item === null || item === void 0 ? void 0 : item.content) && react_1.default.createElement("div", { className: 'reference-content' }, item === null || item === void 0 ? void 0 : item.content))));
52
+ };
35
53
  const renderList = () => {
36
- if (!listItems || listItems.length === 0 || !isExpanded) {
54
+ if (!listItems || listItems.length === 0) {
55
+ return null;
56
+ }
57
+ if (!isExpanded && mode === 'simple') {
37
58
  return null;
38
59
  }
39
- return (react_1.default.createElement("div", { className: 'reference-list' }, listItems.map((item, index) => (react_1.default.createElement("div", { key: index, className: 'reference-item', onClick: () => handleReferenceClick(item, index) },
40
- (0, utils_1.renderCommonIcon)(item === null || item === void 0 ? void 0 : item.sourceIcon),
41
- react_1.default.createElement("div", { className: 'reference-text' }, item === null || item === void 0 ? void 0 : item.name))))));
60
+ return (react_1.default.createElement("div", { className: `reference-list ${mode}`, onClick: () => {
61
+ onDetailClick === null || onDetailClick === void 0 ? void 0 : onDetailClick();
62
+ } },
63
+ isExpanded && mode === 'simple' && listItems.map((item, index) => (react_1.default.createElement("div", { key: index, className: 'reference-item' },
64
+ (item === null || item === void 0 ? void 0 : item.sourceIcon) && (0, utils_1.renderCommonIcon)(item === null || item === void 0 ? void 0 : item.sourceIcon),
65
+ react_1.default.createElement("div", { className: 'reference-text', onClick: () => handleReferenceClick(item, index) }, item === null || item === void 0 ? void 0 : item.name),
66
+ (item === null || item === void 0 ? void 0 : item.modifyTime) && react_1.default.createElement("div", { className: 'reference-time' }, item === null || item === void 0 ? void 0 : item.modifyTime)))),
67
+ mode === 'detail' && renderDetailList()));
42
68
  };
43
69
  const statusClassName = isExpanded ? 'expand' : '';
44
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${utils_1.PREFIX_DEFAULT}reference ${statusClassName}`, className), ref: ref },
70
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${utils_1.PREFIX_DEFAULT}reference ${mode} ${statusClassName}`, className), ref: ref },
45
71
  renderHeader(),
46
72
  renderList()));
47
73
  });
@@ -12,30 +12,50 @@
12
12
  width: 100%;
13
13
  }
14
14
 
15
+ &.detail {
16
+ background-color: white;
17
+ }
18
+
15
19
  .reference-header {
16
20
  display: flex;
17
21
  justify-content: space-between;
18
22
  cursor: pointer;
19
- // margin-bottom: $s-1;
23
+ align-items: center;
24
+
25
+ &.detail {
26
+ border-bottom: solid 1px $color-line1-0;
27
+ height: $s-15;
28
+ margin: 0 $s-4;
29
+
30
+ .reference-text {
31
+ line-height: $s-15;
32
+ font-size: $s-6;
33
+ font-weight: bold;
34
+ }
35
+ .reference-close {
36
+ width: fit-content;
37
+ }
38
+
39
+ }
20
40
 
21
41
  .reference-name{
22
42
  display: flex;
23
43
  align-items: center;
24
44
  .reference-title{
25
45
  color: $color-text1-4;
26
- font-size: 12px;
46
+ font-size: $font-size-caption;
27
47
  font-weight: 600;
28
- line-height: 18px;
48
+ line-height: $font-lineheight-2;
29
49
  }
30
50
  .common-icon {
31
- margin-right: 4px;
51
+ margin-right: $s-1;
32
52
  color: $color-brand1-6;
33
53
  }
34
54
  }
35
55
 
36
56
  .reference-operate{
37
57
  cursor: pointer;
38
- margin: 0px $s-1 0px $s-1;
58
+ margin: 0 $s-1;
39
59
  width: $s-3;
40
60
  height: $s-5;
41
61
  display: flex;
@@ -49,6 +69,58 @@
49
69
  }
50
70
 
51
71
  .reference-list {
72
+
73
+ &.detail {
74
+ // padding: 0px $s-4;
75
+ .reference-item {
76
+ display:block;
77
+ padding: $s-2 $s-4;
78
+
79
+ &:hover {
80
+ background: $color-fill1-1;
81
+ }
82
+ .reference-title {
83
+ display: flex;
84
+ align-items: center;
85
+ margin-bottom: $s-2;
86
+
87
+ .common-icon {
88
+ img {
89
+ height: $s-6;
90
+ width: auto;
91
+ }
92
+ }
93
+
94
+ .reference-time {
95
+ margin-left: $s-2;
96
+ color: $color-text1-1;
97
+ font-size: $font-size-body-1;
98
+ }
99
+ }
100
+
101
+ .reference-name {
102
+ margin-bottom: $s-2;
103
+ line-height: $s-6;
104
+ color: $color-link-3;
105
+ font-size: $s-4;
106
+ overflow: hidden; /* 隐藏超出部分 */
107
+ display: -webkit-box; /* 使其成为弹性盒子 */
108
+ -webkit-box-orient: vertical; /* 垂直排列 */
109
+ -webkit-line-clamp: 2; /* 限制显示3行 */
110
+ }
111
+
112
+ .reference-content {
113
+ font-size: $font-size-body-1;
114
+ line-height: $font-lineheight-2;
115
+ color: $color-text1-4;
116
+ overflow: hidden; /* 隐藏超出部分 */
117
+ display: -webkit-box; /* 使其成为弹性盒子 */
118
+ -webkit-box-orient: vertical; /* 垂直排列 */
119
+ -webkit-line-clamp: 3; /* 限制显示3行 */
120
+ }
121
+ }
122
+ }
123
+
52
124
  margin-top: $s-1;
53
125
  .reference-item{
54
126
  display: flex;
@@ -60,26 +132,38 @@
60
132
  margin-bottom: 0;
61
133
  }
62
134
  .common-icon {
63
- margin-right: 4px;
64
- &.svg {
135
+ margin-right: $s-1;
65
136
 
137
+ &.svg {
66
138
  }
67
139
 
68
- &.img {
69
-
140
+ img {
141
+ height: $s-4;
142
+ width: auto;
70
143
  }
71
144
 
72
145
  &.node {
73
146
 
74
147
  }
75
148
  }
149
+
76
150
  .reference-text {
77
- font-size: $s-3;
151
+ font-size: $font-size-caption;
78
152
  color: $color-link-2;
79
153
  white-space: nowrap; /* 禁止换行 */
80
154
  overflow: hidden; /* 超出部分隐藏 */
81
155
  text-overflow: ellipsis; /* 以省略号显示溢出文本 */
82
- line-height: 18px;
156
+ line-height: $font-lineheight-2;
157
+ }
158
+
159
+ .reference-time {
160
+ font-size: $s-3;
161
+ color: $color-text1-1;
162
+ line-height: $font-lineheight-2;
163
+ margin-left: $s-1;
164
+ white-space: nowrap; /* 禁止换行 */
165
+ overflow: hidden; /* 超出部分隐藏 */
166
+ text-overflow: ellipsis; /* 以省略号显示溢出文本 */
83
167
  }
84
168
  }
85
169
  }
@@ -6,6 +6,8 @@ export interface ReferenceItemProps {
6
6
  url?: string;
7
7
  sourceIcon?: string;
8
8
  sourceCode?: string;
9
+ modifyTime?: string;
10
+ content?: string;
9
11
  }
10
12
  /**
11
13
  * 参考来源属性
@@ -39,4 +41,16 @@ export interface ReferenceProps extends React.HTMLAttributes<HTMLElement>, Commo
39
41
  * 点击对应参考来源项
40
42
  */
41
43
  onItemClick?: (item: ReferenceItemProps, index: number) => void;
44
+ /**
45
+ * 来源展示的模式
46
+ */
47
+ mode?: 'simple' | 'detail';
48
+ /**
49
+ * 关闭参考来源点击
50
+ */
51
+ onClose?: () => void;
52
+ /**
53
+ * 参考来源面板点击回调(区别于每个参考来源项的点击/头部展开点击)
54
+ */
55
+ onDetailClick?: () => void;
42
56
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alifd/chat",
3
- "version": "0.3.11-beta.2",
3
+ "version": "0.3.11-beta.3",
4
4
  "description": "A configurable component library for chat built on React.",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",