@ai-group/chat-sdk 3.7.1-alpha1 → 3.7.1-alpha3

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 (72) hide show
  1. package/dist/cjs/components/FileGallery/index.js +59 -40
  2. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  3. package/dist/cjs/components/FileGallery/styles.d.ts +7 -0
  4. package/dist/cjs/components/FileGallery/styles.js +58 -0
  5. package/dist/cjs/components/FileGallery/styles.js.map +2 -2
  6. package/dist/cjs/components/Sources/components/CarouselCard.d.ts +12 -0
  7. package/dist/cjs/components/Sources/components/CarouselCard.js +130 -0
  8. package/dist/cjs/components/Sources/components/CarouselCard.js.map +7 -0
  9. package/dist/cjs/components/Sources/index.d.ts +5 -0
  10. package/dist/cjs/components/Sources/index.js +162 -0
  11. package/dist/cjs/components/Sources/index.js.map +7 -0
  12. package/dist/cjs/components/Sources/styles.d.ts +59 -0
  13. package/dist/cjs/components/Sources/styles.js +179 -0
  14. package/dist/cjs/components/Sources/styles.js.map +7 -0
  15. package/dist/cjs/components/XAdkSender/InlineTagInput.d.ts +2 -1
  16. package/dist/cjs/components/XAdkSender/InlineTagInput.js +107 -50
  17. package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +2 -2
  18. package/dist/cjs/components/XAdkSender/index.js +101 -34
  19. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  20. package/dist/cjs/components/XAdkSender/styles.d.ts +4 -0
  21. package/dist/cjs/components/XAdkSender/styles.js +34 -6
  22. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  23. package/dist/cjs/index.d.ts +3 -0
  24. package/dist/cjs/index.js +3 -0
  25. package/dist/cjs/index.js.map +3 -3
  26. package/dist/cjs/types/FileGallery.d.ts +3 -0
  27. package/dist/cjs/types/FileGallery.js.map +1 -1
  28. package/dist/cjs/types/Sources.d.ts +30 -0
  29. package/dist/cjs/types/Sources.js +18 -0
  30. package/dist/cjs/types/Sources.js.map +7 -0
  31. package/dist/cjs/types/XAdkSender.d.ts +52 -6
  32. package/dist/cjs/types/XAdkSender.js.map +1 -1
  33. package/dist/cjs/types/index.d.ts +1 -0
  34. package/dist/cjs/types/index.js +3 -1
  35. package/dist/cjs/types/index.js.map +2 -2
  36. package/dist/esm/components/FileGallery/index.js +22 -16
  37. package/dist/esm/components/FileGallery/index.js.map +1 -1
  38. package/dist/esm/components/FileGallery/styles.d.ts +7 -0
  39. package/dist/esm/components/FileGallery/styles.js +24 -17
  40. package/dist/esm/components/FileGallery/styles.js.map +1 -1
  41. package/dist/esm/components/Sources/components/CarouselCard.d.ts +12 -0
  42. package/dist/esm/components/Sources/components/CarouselCard.js +107 -0
  43. package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -0
  44. package/dist/esm/components/Sources/index.d.ts +5 -0
  45. package/dist/esm/components/Sources/index.js +127 -0
  46. package/dist/esm/components/Sources/index.js.map +1 -0
  47. package/dist/esm/components/Sources/styles.d.ts +59 -0
  48. package/dist/esm/components/Sources/styles.js +34 -0
  49. package/dist/esm/components/Sources/styles.js.map +1 -0
  50. package/dist/esm/components/XAdkSender/InlineTagInput.d.ts +2 -1
  51. package/dist/esm/components/XAdkSender/InlineTagInput.js +110 -40
  52. package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -1
  53. package/dist/esm/components/XAdkSender/index.js +129 -38
  54. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  55. package/dist/esm/components/XAdkSender/styles.d.ts +4 -0
  56. package/dist/esm/components/XAdkSender/styles.js +29 -25
  57. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  58. package/dist/esm/index.d.ts +3 -0
  59. package/dist/esm/index.js +3 -0
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/types/FileGallery.d.ts +3 -0
  62. package/dist/esm/types/FileGallery.js.map +1 -1
  63. package/dist/esm/types/Sources.d.ts +30 -0
  64. package/dist/esm/types/Sources.js +2 -0
  65. package/dist/esm/types/Sources.js.map +1 -0
  66. package/dist/esm/types/XAdkSender.d.ts +52 -6
  67. package/dist/esm/types/XAdkSender.js.map +1 -1
  68. package/dist/esm/types/index.d.ts +1 -0
  69. package/dist/esm/types/index.js +1 -0
  70. package/dist/esm/types/index.js.map +1 -1
  71. package/dist/umd/chat-sdk.min.js +1 -1
  72. package/package.json +1 -1
@@ -1,30 +1,37 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25;
3
3
  import { css } from "@emotion/css";
4
4
  import { withBasicStyles } from "../../styles/common";
5
5
  export var useStyles = withBasicStyles(function () {
6
6
  return {
7
7
  container: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 12px 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n\n &.align-right {\n align-items: flex-end;\n }\n "]))),
8
8
  fileList: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n "]))),
9
- fileCard: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n margin: 8px 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 260px;\n max-width: 280px;\n min-height: 64px;\n transition: all 0.2s ease;\n\n &:hover {\n background: #f5f5f5;\n border-color: #e0e0e0;\n }\n\n /* align=right \u65F6\u56FE\u6807\u5728\u53F3\u4FA7 */\n &.align-right {\n flex-direction: row-reverse;\n }\n "]))),
10
- imageThumbnail: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: relative;\n width: 44px;\n height: 44px;\n flex-shrink: 0;\n border-radius: 4px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n display: block !important;\n }\n "]))),
11
- imageOverlay: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.05);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n "]))),
12
- fileIcon: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-size: 24px;\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
13
- fileInfo: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n flex: 1;\n min-width: 0;\n overflow: hidden;\n "]))),
14
- fileName: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n font-size: 13px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n "]))),
15
- fileSize: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n font-size: 11px;\n color: #8c8c8c;\n "]))),
16
- progress: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n margin-top: 4px;\n\n .ant-progress-inner {\n height: 4px !important;\n }\n\n .ant-progress-bg {\n height: 4px !important;\n }\n "]))),
17
- fileRemoveBtn: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n position: absolute;\n top: -6px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 10px;\n transition: all 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n "]))),
18
- fileLink: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n font-size: 13px;\n\n &:hover {\n color: #1677ff;\n }\n "]))),
19
- mediaWrapper: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n margin-top: 6px;\n\n audio {\n width: 100%;\n height: 32px;\n outline: none;\n }\n\n video {\n width: 100%;\n max-height: 240px;\n border-radius: 4px;\n outline: none;\n background: #000;\n }\n "]))),
9
+ fileCard: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n margin: 8px 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 260px;\n max-width: 280px;\n min-height: 64px;\n transition: all 0.2s ease;\n\n &:hover {\n background: #f5f5f5;\n border-color: #e0e0e0;\n }\n\n /* align=right \u65F6\u56FE\u6807\u5728\u53F3\u4FA7 */\n &.align-right {\n flex-direction: row-reverse;\n }\n\n "]))),
10
+ fileCardSmall: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n gap: 6px;\n min-width: 0;\n max-width: 260px;\n width: auto;\n height: 32px;\n min-height: 32px;\n margin: 0;\n padding: 4px 10px 4px 8px;\n border-radius: 7px;\n background: #f5f5f5;\n border-color: transparent;\n box-sizing: border-box;\n\n &:hover {\n background: #eeeeee;\n border-color: transparent;\n }\n\n .ant-progress-line {\n width: 56px;\n }\n "]))),
11
+ imageThumbnail: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: relative;\n width: 44px;\n height: 44px;\n flex-shrink: 0;\n border-radius: 4px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n display: block !important;\n }\n\n "]))),
12
+ imageThumbnailSmall: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 22px;\n height: 22px;\n border-radius: 5px;\n "]))),
13
+ imageOverlay: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.05);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n "]))),
14
+ fileIcon: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n font-size: 24px;\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n "]))),
15
+ fileIconSmall: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 20px;\n height: 20px;\n font-size: 16px;\n "]))),
16
+ fileInfo: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n flex: 1;\n min-width: 0;\n overflow: hidden;\n "]))),
17
+ fileName: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-size: 13px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n "]))),
18
+ fileNameSmall: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n max-width: 190px;\n margin-bottom: 0;\n font-size: 12px;\n line-height: 20px;\n "]))),
19
+ fileSize: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n font-size: 11px;\n color: #8c8c8c;\n\n "]))),
20
+ fileSizeSmall: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n display: none;\n "]))),
21
+ progress: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n margin-top: 4px;\n\n .ant-progress-inner {\n height: 4px !important;\n }\n\n .ant-progress-bg {\n height: 4px !important;\n }\n\n "]))),
22
+ progressSmall: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n margin-top: 0;\n "]))),
23
+ fileRemoveBtn: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n position: absolute;\n top: -6px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 10px;\n transition: all 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n "]))),
24
+ fileRemoveBtnSmall: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n top: -5px;\n right: -5px;\n width: 14px;\n height: 14px;\n font-size: 8px;\n "]))),
25
+ fileLink: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n font-size: 13px;\n\n &:hover {\n color: #1677ff;\n }\n "]))),
26
+ mediaWrapper: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n margin-top: 6px;\n\n audio {\n width: 100%;\n height: 32px;\n outline: none;\n }\n\n video {\n width: 100%;\n max-height: 240px;\n border-radius: 4px;\n outline: none;\n background: #000;\n }\n "]))),
20
27
  // ========== 图片展示模式 ==========
21
- imagePreviewMode: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n display: block !important;\n object-fit: contain !important;\n }\n "]))),
22
- imageFullMode: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n width: 100%;\n\n .ant-image {\n width: 100% !important;\n display: flex !important;\n }\n\n img {\n width: 100% !important;\n display: block !important;\n object-fit: contain !important;\n }\n "]))),
28
+ imagePreviewMode: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n display: block !important;\n object-fit: contain !important;\n }\n "]))),
29
+ imageFullMode: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n width: 100%;\n\n .ant-image {\n width: 100% !important;\n display: flex !important;\n }\n\n img {\n width: 100% !important;\n display: block !important;\n object-fit: contain !important;\n }\n "]))),
23
30
  // ========== 图片加载状态 ==========
24
- imageLoadingSkeleton: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(90deg, #f5f5f5 25%, #e8e8e8 50%, #f5f5f5 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n "]))),
25
- imageErrorFallback: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n color: #bfbfbf;\n font-size: 20px;\n gap: 4px;\n\n span {\n font-size: 11px;\n color: #bfbfbf;\n }\n "]))),
31
+ imageLoadingSkeleton: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(90deg, #f5f5f5 25%, #e8e8e8 50%, #f5f5f5 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n "]))),
32
+ imageErrorFallback: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n color: #bfbfbf;\n font-size: 20px;\n gap: 4px;\n\n span {\n font-size: 11px;\n color: #bfbfbf;\n }\n "]))),
26
33
  // ========== Media Card 模式 ==========
27
- mediaCardPlayIcon: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.5);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n z-index: 2;\n "])))
34
+ mediaCardPlayIcon: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.5);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n z-index: 2;\n "])))
28
35
  };
29
36
  });
30
37
  export default useStyles;
@@ -1 +1 @@
1
- {"version":3,"names":["css","withBasicStyles","useStyles","container","_templateObject","_taggedTemplateLiteral","fileList","_templateObject2","fileCard","_templateObject3","imageThumbnail","_templateObject4","imageOverlay","_templateObject5","fileIcon","_templateObject6","fileInfo","_templateObject7","fileName","_templateObject8","fileSize","_templateObject9","progress","_templateObject10","fileRemoveBtn","_templateObject11","fileLink","_templateObject12","mediaWrapper","_templateObject13","imagePreviewMode","_templateObject14","imageFullMode","_templateObject15","imageLoadingSkeleton","_templateObject16","imageErrorFallback","_templateObject17","mediaCardPlayIcon","_templateObject18"],"sources":["../../../../src/components/FileGallery/styles.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\n\nexport const useStyles = withBasicStyles(() => ({\n container: css`\n padding: 12px 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n\n &.align-right {\n align-items: flex-end;\n }\n `,\n\n fileList: css`\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n `,\n\n fileCard: css`\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n margin: 8px 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 260px;\n max-width: 280px;\n min-height: 64px;\n transition: all 0.2s ease;\n\n &:hover {\n background: #f5f5f5;\n border-color: #e0e0e0;\n }\n\n /* align=right 时图标在右侧 */\n &.align-right {\n flex-direction: row-reverse;\n }\n `,\n\n imageThumbnail: css`\n position: relative;\n width: 44px;\n height: 44px;\n flex-shrink: 0;\n border-radius: 4px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n display: block !important;\n }\n `,\n\n imageOverlay: css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.05);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n `,\n\n fileIcon: css`\n font-size: 24px;\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n\n fileInfo: css`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n `,\n\n fileName: css`\n font-size: 13px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n\n fileSize: css`\n font-size: 11px;\n color: #8c8c8c;\n `,\n\n progress: css`\n margin-top: 4px;\n\n .ant-progress-inner {\n height: 4px !important;\n }\n\n .ant-progress-bg {\n height: 4px !important;\n }\n `,\n\n fileRemoveBtn: css`\n position: absolute;\n top: -6px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 10px;\n transition: all 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n\n fileLink: css`\n display: flex;\n align-items: center;\n gap: 8px;\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n font-size: 13px;\n\n &:hover {\n color: #1677ff;\n }\n `,\n\n mediaWrapper: css`\n margin-top: 6px;\n\n audio {\n width: 100%;\n height: 32px;\n outline: none;\n }\n\n video {\n width: 100%;\n max-height: 240px;\n border-radius: 4px;\n outline: none;\n background: #000;\n }\n `,\n\n // ========== 图片展示模式 ==========\n imagePreviewMode: css`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n display: block !important;\n object-fit: contain !important;\n }\n `,\n\n imageFullMode: css`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n width: 100%;\n\n .ant-image {\n width: 100% !important;\n display: flex !important;\n }\n\n img {\n width: 100% !important;\n display: block !important;\n object-fit: contain !important;\n }\n `,\n\n // ========== 图片加载状态 ==========\n imageLoadingSkeleton: css`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(90deg, #f5f5f5 25%, #e8e8e8 50%, #f5f5f5 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `,\n\n imageErrorFallback: css`\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n color: #bfbfbf;\n font-size: 20px;\n gap: 4px;\n\n span {\n font-size: 11px;\n color: #bfbfbf;\n }\n `,\n\n // ========== Media Card 模式 ==========\n mediaCardPlayIcon: css`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.5);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n z-index: 2;\n `,\n}));\n\nexport default useStyles;\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9CE,SAAS,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,+JASb;IAEDC,QAAQ,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,qEAIZ;IAEDG,QAAQ,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,uhBAwBZ;IAEDK,cAAc,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,4iBAwBlB;IAEDO,YAAY,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,mOAWhB;IAEDS,QAAQ,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,wKAQZ;IAEDW,QAAQ,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,oEAIZ;IAEDa,QAAQ,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,sLAQZ;IAEDe,QAAQ,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,uDAGZ;IAEDiB,QAAQ,EAAEtB,GAAG,CAAAuB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,qKAUZ;IAEDmB,aAAa,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,mjBA4BjB;IAEDqB,QAAQ,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA,2MAWZ;IAEDuB,YAAY,EAAE5B,GAAG,CAAA6B,iBAAA,KAAAA,iBAAA,GAAAxB,sBAAA,qQAgBhB;IAED;IACAyB,gBAAgB,EAAE9B,GAAG,CAAA+B,iBAAA,KAAAA,iBAAA,GAAA1B,sBAAA,sXAiBpB;IAED2B,aAAa,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAA5B,sBAAA,0YAkBjB;IAED;IACA6B,oBAAoB,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAA9B,sBAAA,ibAkBxB;IAED+B,kBAAkB,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA,kTAgBtB;IAED;IACAiC,iBAAiB,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAlC,sBAAA;EAgBxB,CAAC;AAAA,CAAC,CAAC;AAEH,eAAeH,SAAS"}
1
+ {"version":3,"names":["css","withBasicStyles","useStyles","container","_templateObject","_taggedTemplateLiteral","fileList","_templateObject2","fileCard","_templateObject3","fileCardSmall","_templateObject4","imageThumbnail","_templateObject5","imageThumbnailSmall","_templateObject6","imageOverlay","_templateObject7","fileIcon","_templateObject8","fileIconSmall","_templateObject9","fileInfo","_templateObject10","fileName","_templateObject11","fileNameSmall","_templateObject12","fileSize","_templateObject13","fileSizeSmall","_templateObject14","progress","_templateObject15","progressSmall","_templateObject16","fileRemoveBtn","_templateObject17","fileRemoveBtnSmall","_templateObject18","fileLink","_templateObject19","mediaWrapper","_templateObject20","imagePreviewMode","_templateObject21","imageFullMode","_templateObject22","imageLoadingSkeleton","_templateObject23","imageErrorFallback","_templateObject24","mediaCardPlayIcon","_templateObject25"],"sources":["../../../../src/components/FileGallery/styles.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\n\nexport const useStyles = withBasicStyles(() => ({\n container: css`\n padding: 12px 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n\n &.align-right {\n align-items: flex-end;\n }\n `,\n\n fileList: css`\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n `,\n\n fileCard: css`\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n margin: 8px 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 260px;\n max-width: 280px;\n min-height: 64px;\n transition: all 0.2s ease;\n\n &:hover {\n background: #f5f5f5;\n border-color: #e0e0e0;\n }\n\n /* align=right 时图标在右侧 */\n &.align-right {\n flex-direction: row-reverse;\n }\n\n `,\n\n fileCardSmall: css`\n gap: 6px;\n min-width: 0;\n max-width: 260px;\n width: auto;\n height: 32px;\n min-height: 32px;\n margin: 0;\n padding: 4px 10px 4px 8px;\n border-radius: 7px;\n background: #f5f5f5;\n border-color: transparent;\n box-sizing: border-box;\n\n &:hover {\n background: #eeeeee;\n border-color: transparent;\n }\n\n .ant-progress-line {\n width: 56px;\n }\n `,\n\n imageThumbnail: css`\n position: relative;\n width: 44px;\n height: 44px;\n flex-shrink: 0;\n border-radius: 4px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n display: block !important;\n }\n\n `,\n\n imageThumbnailSmall: css`\n width: 22px;\n height: 22px;\n border-radius: 5px;\n `,\n\n imageOverlay: css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.05);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n `,\n\n fileIcon: css`\n font-size: 24px;\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n `,\n\n fileIconSmall: css`\n width: 20px;\n height: 20px;\n font-size: 16px;\n `,\n\n fileInfo: css`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n `,\n\n fileName: css`\n font-size: 13px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n `,\n\n fileNameSmall: css`\n max-width: 190px;\n margin-bottom: 0;\n font-size: 12px;\n line-height: 20px;\n `,\n\n fileSize: css`\n font-size: 11px;\n color: #8c8c8c;\n\n `,\n\n fileSizeSmall: css`\n display: none;\n `,\n\n progress: css`\n margin-top: 4px;\n\n .ant-progress-inner {\n height: 4px !important;\n }\n\n .ant-progress-bg {\n height: 4px !important;\n }\n\n `,\n\n progressSmall: css`\n margin-top: 0;\n `,\n\n fileRemoveBtn: css`\n position: absolute;\n top: -6px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 10px;\n transition: all 0.2s ease;\n\n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n\n fileRemoveBtnSmall: css`\n top: -5px;\n right: -5px;\n width: 14px;\n height: 14px;\n font-size: 8px;\n `,\n\n fileLink: css`\n display: flex;\n align-items: center;\n gap: 8px;\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n font-size: 13px;\n\n &:hover {\n color: #1677ff;\n }\n `,\n\n mediaWrapper: css`\n margin-top: 6px;\n\n audio {\n width: 100%;\n height: 32px;\n outline: none;\n }\n\n video {\n width: 100%;\n max-height: 240px;\n border-radius: 4px;\n outline: none;\n background: #000;\n }\n `,\n\n // ========== 图片展示模式 ==========\n imagePreviewMode: css`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n\n .ant-image {\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n img {\n display: block !important;\n object-fit: contain !important;\n }\n `,\n\n imageFullMode: css`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid rgba(0, 0, 0, 0.06);\n width: 100%;\n\n .ant-image {\n width: 100% !important;\n display: flex !important;\n }\n\n img {\n width: 100% !important;\n display: block !important;\n object-fit: contain !important;\n }\n `,\n\n // ========== 图片加载状态 ==========\n imageLoadingSkeleton: css`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(90deg, #f5f5f5 25%, #e8e8e8 50%, #f5f5f5 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `,\n\n imageErrorFallback: css`\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n color: #bfbfbf;\n font-size: 20px;\n gap: 4px;\n\n span {\n font-size: 11px;\n color: #bfbfbf;\n }\n `,\n\n // ========== Media Card 模式 ==========\n mediaCardPlayIcon: css`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.5);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n z-index: 2;\n `,\n}));\n\nexport default useStyles;\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9CE,SAAS,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,+JASb;IAEDC,QAAQ,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,qEAIZ;IAEDG,QAAQ,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,yhBAyBZ;IAEDK,aAAa,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,8aAsBjB;IAEDO,cAAc,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,8iBAyBlB;IAEDS,mBAAmB,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,0EAIvB;IAEDW,YAAY,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,mOAWhB;IAEDa,QAAQ,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,0KASZ;IAEDe,aAAa,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,uEAIjB;IAEDiB,QAAQ,EAAEtB,GAAG,CAAAuB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,oEAIZ;IAEDmB,QAAQ,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,wLASZ;IAEDqB,aAAa,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA,wGAKjB;IAEDuB,QAAQ,EAAE5B,GAAG,CAAA6B,iBAAA,KAAAA,iBAAA,GAAAxB,sBAAA,yDAIZ;IAEDyB,aAAa,EAAE9B,GAAG,CAAA+B,iBAAA,KAAAA,iBAAA,GAAA1B,sBAAA,gCAEjB;IAED2B,QAAQ,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAA5B,sBAAA,uKAWZ;IAED6B,aAAa,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAA9B,sBAAA,gCAEjB;IAED+B,aAAa,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA,mjBA4BjB;IAEDiC,kBAAkB,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAlC,sBAAA,wGAMtB;IAEDmC,QAAQ,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAApC,sBAAA,2MAWZ;IAEDqC,YAAY,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAAtC,sBAAA,qQAgBhB;IAED;IACAuC,gBAAgB,EAAE5C,GAAG,CAAA6C,iBAAA,KAAAA,iBAAA,GAAAxC,sBAAA,sXAiBpB;IAEDyC,aAAa,EAAE9C,GAAG,CAAA+C,iBAAA,KAAAA,iBAAA,GAAA1C,sBAAA,0YAkBjB;IAED;IACA2C,oBAAoB,EAAEhD,GAAG,CAAAiD,iBAAA,KAAAA,iBAAA,GAAA5C,sBAAA,ibAkBxB;IAED6C,kBAAkB,EAAElD,GAAG,CAAAmD,iBAAA,KAAAA,iBAAA,GAAA9C,sBAAA,kTAgBtB;IAED;IACA+C,iBAAiB,EAAEpD,GAAG,CAAAqD,iBAAA,KAAAA,iBAAA,GAAAhD,sBAAA;EAgBxB,CAAC;AAAA,CAAC,CAAC;AAEH,eAAeH,SAAS"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { SourcesItem, SourcesProps } from "../../../types/Sources";
3
+ export interface CarouselCardProps {
4
+ activeKey?: SourcesProps['activeKey'];
5
+ prefixCls: string;
6
+ items?: SourcesProps['items'];
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ onClick?: (item: SourcesItem) => void;
10
+ }
11
+ declare const CarouselCard: React.FC<CarouselCardProps>;
12
+ export default CarouselCard;
@@ -0,0 +1,107 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import { LeftOutlined, RightOutlined } from '@ant-design/icons';
4
+ import { Carousel } from 'antd';
5
+ import { clsx } from 'clsx';
6
+ import React, { useEffect, useRef, useState } from 'react';
7
+ import useStyle from "../styles";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs } from "react/jsx-runtime";
10
+ var CarouselCard = function CarouselCard(props) {
11
+ var prefixCls = props.prefixCls,
12
+ items = props.items,
13
+ activeKey = props.activeKey,
14
+ className = props.className,
15
+ style = props.style;
16
+ var styles = useStyle();
17
+
18
+ // Derive the target slide index from activeKey
19
+ var activeSlideIndex = React.useMemo(function () {
20
+ var _items$findIndex;
21
+ return Math.max(0, (_items$findIndex = items === null || items === void 0 ? void 0 : items.findIndex(function (_ref) {
22
+ var key = _ref.key;
23
+ return key === activeKey;
24
+ })) !== null && _items$findIndex !== void 0 ? _items$findIndex : 0);
25
+ }, [items, activeKey]);
26
+ var _useState = useState(activeSlideIndex),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ slide = _useState2[0],
29
+ setSlide = _useState2[1];
30
+ var carouselRef = useRef(null);
31
+ useEffect(function () {
32
+ setSlide(activeSlideIndex);
33
+ if (carouselRef.current) {
34
+ carouselRef.current.goTo(activeSlideIndex, false);
35
+ }
36
+ }, [activeSlideIndex]);
37
+ var handleClick = function handleClick(item) {
38
+ var _props$onClick;
39
+ item.url && window.open(item.url, '_blank', 'noopener,noreferrer');
40
+ (_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, item);
41
+ };
42
+ return /*#__PURE__*/_jsxs("div", {
43
+ style: style,
44
+ className: clsx(styles.carouselWrapper, className),
45
+ children: [/*#__PURE__*/_jsxs("div", {
46
+ className: styles.carouselTitle,
47
+ children: [/*#__PURE__*/_jsxs("div", {
48
+ className: styles.carouselBtnWrapper,
49
+ children: [/*#__PURE__*/_jsx("span", {
50
+ className: clsx(styles.carouselBtn, _defineProperty({}, styles.carouselBtnDisabled, slide === 0)),
51
+ onClick: function onClick() {
52
+ if (slide > 0) {
53
+ var _carouselRef$current;
54
+ var next = slide - 1;
55
+ setSlide(next);
56
+ (_carouselRef$current = carouselRef.current) === null || _carouselRef$current === void 0 || _carouselRef$current.goTo(next, false);
57
+ }
58
+ },
59
+ children: /*#__PURE__*/_jsx(LeftOutlined, {})
60
+ }), /*#__PURE__*/_jsx("span", {
61
+ className: clsx(styles.carouselBtn, _defineProperty({}, styles.carouselBtnDisabled, slide === ((items === null || items === void 0 ? void 0 : items.length) || 1) - 1)),
62
+ onClick: function onClick() {
63
+ var max = ((items === null || items === void 0 ? void 0 : items.length) || 1) - 1;
64
+ if (slide < max) {
65
+ var _carouselRef$current2;
66
+ var next = slide + 1;
67
+ setSlide(next);
68
+ (_carouselRef$current2 = carouselRef.current) === null || _carouselRef$current2 === void 0 || _carouselRef$current2.goTo(next, false);
69
+ }
70
+ },
71
+ children: /*#__PURE__*/_jsx(RightOutlined, {})
72
+ })]
73
+ }), /*#__PURE__*/_jsx("div", {
74
+ className: styles.carouselPage,
75
+ children: "".concat(slide + 1, "/").concat((items === null || items === void 0 ? void 0 : items.length) || 1)
76
+ })]
77
+ }), /*#__PURE__*/_jsx(Carousel, {
78
+ ref: carouselRef,
79
+ arrows: false,
80
+ infinite: false,
81
+ dots: false,
82
+ afterChange: setSlide,
83
+ children: items === null || items === void 0 ? void 0 : items.map(function (item, index) {
84
+ return /*#__PURE__*/_jsxs("div", {
85
+ className: styles.carouselItem,
86
+ onClick: function onClick() {
87
+ return handleClick(item);
88
+ },
89
+ children: [/*#__PURE__*/_jsxs("div", {
90
+ className: styles.carouselItemTitleWrapper,
91
+ children: [item.icon && /*#__PURE__*/_jsx("span", {
92
+ children: item.icon
93
+ }), /*#__PURE__*/_jsx("span", {
94
+ className: styles.carouselItemTitle,
95
+ children: item.title
96
+ })]
97
+ }), item.description && /*#__PURE__*/_jsx("div", {
98
+ className: styles.carouselItemDescription,
99
+ children: item.description
100
+ })]
101
+ }, item.key || index);
102
+ })
103
+ })]
104
+ });
105
+ };
106
+ export default CarouselCard;
107
+ //# sourceMappingURL=CarouselCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LeftOutlined","RightOutlined","Carousel","clsx","React","useEffect","useRef","useState","useStyle","jsx","_jsx","jsxs","_jsxs","CarouselCard","props","prefixCls","items","activeKey","className","style","styles","activeSlideIndex","useMemo","_items$findIndex","Math","max","findIndex","_ref","key","_useState","_useState2","_slicedToArray","slide","setSlide","carouselRef","current","goTo","handleClick","item","_props$onClick","url","window","open","onClick","call","carouselWrapper","children","carouselTitle","carouselBtnWrapper","carouselBtn","_defineProperty","carouselBtnDisabled","_carouselRef$current","next","length","_carouselRef$current2","carouselPage","concat","ref","arrows","infinite","dots","afterChange","map","index","carouselItem","carouselItemTitleWrapper","icon","carouselItemTitle","title","description","carouselItemDescription"],"sources":["../../../../../src/components/Sources/components/CarouselCard.tsx"],"sourcesContent":["import { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport { Carousel } from 'antd';\nimport { clsx } from 'clsx';\nimport React, { useEffect, useRef, useState } from 'react';\nimport type { SourcesItem, SourcesProps } from '@/types/Sources';\nimport useStyle from '../styles';\n\nexport interface CarouselCardProps {\n activeKey?: SourcesProps['activeKey'];\n prefixCls: string;\n items?: SourcesProps['items'];\n className?: string;\n style?: React.CSSProperties;\n onClick?: (item: SourcesItem) => void;\n}\n\nconst CarouselCard: React.FC<CarouselCardProps> = (props) => {\n const { prefixCls, items, activeKey, className, style } = props;\n const styles = useStyle();\n\n // Derive the target slide index from activeKey\n const activeSlideIndex = React.useMemo(\n () => Math.max(0, items?.findIndex(({ key }) => key === activeKey) ?? 0),\n [items, activeKey],\n );\n\n const [slide, setSlide] = useState<number>(activeSlideIndex);\n\n const carouselRef = useRef<React.ComponentRef<typeof Carousel>>(null);\n\n useEffect(() => {\n setSlide(activeSlideIndex);\n if (carouselRef.current) {\n carouselRef.current.goTo(activeSlideIndex, false);\n }\n }, [activeSlideIndex]);\n\n const handleClick = (item: SourcesItem) => {\n item.url && window.open(item.url, '_blank', 'noopener,noreferrer');\n props.onClick?.(item);\n };\n\n return (\n <div style={style} className={clsx(styles.carouselWrapper, className)}>\n <div className={styles.carouselTitle}>\n <div className={styles.carouselBtnWrapper}>\n <span\n className={clsx(styles.carouselBtn, {\n [styles.carouselBtnDisabled]: slide === 0,\n })}\n onClick={() => {\n if (slide > 0) {\n const next = slide - 1;\n setSlide(next);\n carouselRef.current?.goTo(next, false);\n }\n }}\n >\n <LeftOutlined />\n </span>\n <span\n className={clsx(styles.carouselBtn, {\n [styles.carouselBtnDisabled]: slide === (items?.length || 1) - 1,\n })}\n onClick={() => {\n const max = (items?.length || 1) - 1;\n if (slide < max) {\n const next = slide + 1;\n setSlide(next);\n carouselRef.current?.goTo(next, false);\n }\n }}\n >\n <RightOutlined />\n </span>\n </div>\n <div className={styles.carouselPage}>{`${slide + 1}/${items?.length || 1}`}</div>\n </div>\n <Carousel\n ref={carouselRef}\n arrows={false}\n infinite={false}\n dots={false}\n afterChange={setSlide}\n >\n {items?.map((item, index) => (\n <div\n key={item.key || index}\n className={styles.carouselItem}\n onClick={() => handleClick(item)}\n >\n <div className={styles.carouselItemTitleWrapper}>\n {item.icon && <span>{item.icon}</span>}\n <span className={styles.carouselItemTitle}>{item.title}</span>\n </div>\n {item.description && (\n <div className={styles.carouselItemDescription}>{item.description}</div>\n )}\n </div>\n ))}\n </Carousel>\n </div>\n );\n};\n\nexport default CarouselCard;"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { SourcesProps, SourcesRef } from "../../types/Sources";
3
+ declare const ForwardSources: React.ForwardRefExoticComponent<SourcesProps & React.RefAttributes<SourcesRef>>;
4
+ export default ForwardSources;
5
+ export type { SourcesProps, SourcesItem, SourcesRef } from "../../types/Sources";
@@ -0,0 +1,127 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
+ var _excluded = ["style", "className", "rootClassName", "title", "expandIconPosition", "inline", "expanded", "defaultExpanded", "onExpand", "activeKey", "items", "onClick", "popoverOverlayWidth"];
6
+ import { RightOutlined } from '@ant-design/icons';
7
+ import { Popover } from 'antd';
8
+ import { clsx } from 'clsx';
9
+ import React, { useState, useCallback } from 'react';
10
+ import CarouselCard from "./components/CarouselCard";
11
+ import useStyle from "./styles";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { Fragment as _Fragment } from "react/jsx-runtime";
15
+ var Sources = function Sources(props, ref) {
16
+ var style = props.style,
17
+ className = props.className,
18
+ rootClassName = props.rootClassName,
19
+ title = props.title,
20
+ _props$expandIconPosi = props.expandIconPosition,
21
+ expandIconPosition = _props$expandIconPosi === void 0 ? 'start' : _props$expandIconPosi,
22
+ _props$inline = props.inline,
23
+ inline = _props$inline === void 0 ? false : _props$inline,
24
+ expanded = props.expanded,
25
+ defaultExpanded = props.defaultExpanded,
26
+ onExpand = props.onExpand,
27
+ activeKey = props.activeKey,
28
+ items = props.items,
29
+ _onClick = props.onClick,
30
+ _props$popoverOverlay = props.popoverOverlayWidth,
31
+ popoverOverlayWidth = _props$popoverOverlay === void 0 ? 300 : _props$popoverOverlay,
32
+ restProps = _objectWithoutProperties(props, _excluded);
33
+ var styles = useStyle();
34
+ var sourcesRef = React.useRef(null);
35
+ React.useImperativeHandle(ref, function () {
36
+ return {
37
+ nativeElement: sourcesRef.current
38
+ };
39
+ });
40
+
41
+ // ============================ Collapsible ============================
42
+ var _useState = useState(defaultExpanded !== null && defaultExpanded !== void 0 ? defaultExpanded : true),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ isExpand = _useState2[0],
45
+ setIsExpand = _useState2[1];
46
+ var isControlled = expanded !== undefined;
47
+ var actualExpanded = isControlled ? expanded : isExpand;
48
+ var handleToggle = useCallback(function () {
49
+ var newExpand = !actualExpanded;
50
+ if (!isControlled) {
51
+ setIsExpand(newExpand);
52
+ }
53
+ onExpand === null || onExpand === void 0 || onExpand(newExpand);
54
+ }, [actualExpanded, isControlled, onExpand]);
55
+ var mergedCls = clsx(styles.sources, className, rootClassName, _defineProperty({}, styles.sourcesInline, inline));
56
+ var ContentNode = items ? /*#__PURE__*/_jsx("ul", {
57
+ className: styles.sourcesList,
58
+ children: items.map(function (item, index) {
59
+ return /*#__PURE__*/_jsx("li", {
60
+ className: styles.sourcesListItem,
61
+ onClick: function onClick() {
62
+ return _onClick === null || _onClick === void 0 ? void 0 : _onClick(item);
63
+ },
64
+ children: /*#__PURE__*/_jsxs("a", {
65
+ className: styles.sourcesLink,
66
+ href: item.url,
67
+ target: "_blank",
68
+ rel: "noopener noreferrer",
69
+ children: [item.icon && /*#__PURE__*/_jsx("span", {
70
+ className: styles.sourcesLinkIcon,
71
+ children: item.icon
72
+ }), /*#__PURE__*/_jsx("span", {
73
+ className: styles.sourcesLinkTitle,
74
+ children: item.title
75
+ })]
76
+ })
77
+ }, item.key || index);
78
+ })
79
+ }) : null;
80
+ return /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({
81
+ ref: sourcesRef,
82
+ className: mergedCls,
83
+ style: style
84
+ }, restProps), {}, {
85
+ children: inline ? /*#__PURE__*/_jsx(Popover, {
86
+ content: /*#__PURE__*/_jsx(CarouselCard, {
87
+ className: clsx(styles.sources, className),
88
+ style: style,
89
+ activeKey: activeKey,
90
+ prefixCls: "sources",
91
+ items: items,
92
+ onClick: _onClick
93
+ }),
94
+ open: inline ? undefined : false,
95
+ overlayStyle: {
96
+ width: popoverOverlayWidth
97
+ },
98
+ placement: "top",
99
+ forceRender: true,
100
+ children: /*#__PURE__*/_jsx("div", {
101
+ className: styles.sourcesTitleWrapper,
102
+ children: /*#__PURE__*/_jsx("span", {
103
+ children: title
104
+ })
105
+ })
106
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
107
+ children: [/*#__PURE__*/_jsxs("div", {
108
+ className: clsx(styles.sourcesTitleWrapper, expandIconPosition === 'end' && styles.sourcesIconPositionEnd),
109
+ onClick: handleToggle,
110
+ children: [/*#__PURE__*/_jsx(RightOutlined, {
111
+ className: clsx(styles.sourcesTitleDownIcon, _defineProperty({}, styles.sourcesTitleDownIconExpanded, actualExpanded))
112
+ }), /*#__PURE__*/_jsx("span", {
113
+ children: title
114
+ })]
115
+ }), actualExpanded && /*#__PURE__*/_jsx("div", {
116
+ className: styles.sourcesContent,
117
+ children: ContentNode
118
+ })]
119
+ })
120
+ }));
121
+ };
122
+ var ForwardSources = /*#__PURE__*/React.forwardRef(Sources);
123
+ if (process.env.NODE_ENV !== 'production') {
124
+ ForwardSources.displayName = 'Sources';
125
+ }
126
+ export default ForwardSources;
127
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RightOutlined","Popover","clsx","React","useState","useCallback","CarouselCard","useStyle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Sources","props","ref","style","className","rootClassName","title","_props$expandIconPosi","expandIconPosition","_props$inline","inline","expanded","defaultExpanded","onExpand","activeKey","items","onClick","_props$popoverOverlay","popoverOverlayWidth","restProps","_objectWithoutProperties","_excluded","styles","sourcesRef","useRef","useImperativeHandle","nativeElement","current","_useState","_useState2","_slicedToArray","isExpand","setIsExpand","isControlled","undefined","actualExpanded","handleToggle","newExpand","mergedCls","sources","_defineProperty","sourcesInline","ContentNode","sourcesList","children","map","item","index","sourcesListItem","sourcesLink","href","url","target","rel","icon","sourcesLinkIcon","sourcesLinkTitle","key","_objectSpread","content","prefixCls","open","overlayStyle","width","placement","forceRender","sourcesTitleWrapper","sourcesIconPositionEnd","sourcesTitleDownIcon","sourcesTitleDownIconExpanded","sourcesContent","ForwardSources","forwardRef","process","env","NODE_ENV","displayName"],"sources":["../../../../src/components/Sources/index.tsx"],"sourcesContent":["import { RightOutlined } from '@ant-design/icons';\nimport { Popover } from 'antd';\nimport { clsx } from 'clsx';\nimport React, { useState, useCallback } from 'react';\nimport type { SourcesProps, SourcesRef } from '@/types/Sources';\nimport CarouselCard from './components/CarouselCard';\nimport useStyle from './styles';\n\nconst Sources: React.ForwardRefRenderFunction<SourcesRef, SourcesProps> = (props, ref) => {\n const {\n style,\n className,\n rootClassName,\n title,\n expandIconPosition = 'start',\n inline = false,\n expanded,\n defaultExpanded,\n onExpand,\n activeKey,\n items,\n onClick,\n popoverOverlayWidth = 300,\n ...restProps\n } = props;\n\n const styles = useStyle();\n\n const sourcesRef = React.useRef<HTMLDivElement>(null);\n React.useImperativeHandle(ref, () => ({\n nativeElement: sourcesRef.current!,\n }));\n\n // ============================ Collapsible ============================\n const [isExpand, setIsExpand] = useState<boolean>(defaultExpanded ?? true);\n const isControlled = expanded !== undefined;\n const actualExpanded = isControlled ? expanded : isExpand;\n\n const handleToggle = useCallback(() => {\n const newExpand = !actualExpanded;\n if (!isControlled) {\n setIsExpand(newExpand);\n }\n onExpand?.(newExpand);\n }, [actualExpanded, isControlled, onExpand]);\n\n const mergedCls = clsx(\n styles.sources,\n className,\n rootClassName,\n {\n [styles.sourcesInline]: inline,\n },\n );\n\n const ContentNode = items ? (\n <ul className={styles.sourcesList}>\n {items.map((item, index) => (\n <li\n key={item.key || index}\n className={styles.sourcesListItem}\n onClick={() => onClick?.(item)}\n >\n <a\n className={styles.sourcesLink}\n href={item.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {item.icon && <span className={styles.sourcesLinkIcon}>{item.icon}</span>}\n <span className={styles.sourcesLinkTitle}>{item.title}</span>\n </a>\n </li>\n ))}\n </ul>\n ) : null;\n\n return (\n <div\n ref={sourcesRef}\n className={mergedCls}\n style={style}\n {...restProps}\n >\n {inline ? (\n <Popover\n content={\n <CarouselCard\n className={clsx(styles.sources, className)}\n style={style}\n activeKey={activeKey}\n prefixCls=\"sources\"\n items={items}\n onClick={onClick}\n />\n }\n open={inline ? undefined : false}\n overlayStyle={{ width: popoverOverlayWidth }}\n placement=\"top\"\n forceRender\n >\n <div className={styles.sourcesTitleWrapper}>\n <span>{title}</span>\n </div>\n </Popover>\n ) : (\n <>\n <div\n className={clsx(\n styles.sourcesTitleWrapper,\n expandIconPosition === 'end' && styles.sourcesIconPositionEnd,\n )}\n onClick={handleToggle}\n >\n <RightOutlined\n className={clsx(styles.sourcesTitleDownIcon, {\n [styles.sourcesTitleDownIconExpanded]: actualExpanded,\n })}\n />\n <span>{title}</span>\n </div>\n {actualExpanded && (\n <div className={styles.sourcesContent}>\n {ContentNode}\n </div>\n )}\n </>\n )}\n </div>\n );\n};\n\nconst ForwardSources = React.forwardRef(Sources);\n\nif (process.env.NODE_ENV !== 'production') {\n ForwardSources.displayName = 'Sources';\n}\n\nexport default ForwardSources;\nexport type { SourcesProps, SourcesItem, SourcesRef } from '@/types/Sources';"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export declare const useStyles: () => {
2
+ sources: string;
3
+ sourcesTitleWrapper: string;
4
+ sourcesTitleDownIcon: string;
5
+ sourcesTitleDownIconExpanded: string;
6
+ sourcesIconPositionEnd: string;
7
+ sourcesList: string;
8
+ sourcesListItem: string;
9
+ sourcesLink: string;
10
+ sourcesLinkIcon: string;
11
+ sourcesLinkTitle: string;
12
+ sourcesContent: string;
13
+ sourcesContentHidden: string;
14
+ sourcesInline: string;
15
+ carouselWrapper: string;
16
+ carouselTitle: string;
17
+ carouselBtnWrapper: string;
18
+ carouselBtn: string;
19
+ carouselBtnDisabled: string;
20
+ carouselPage: string;
21
+ carouselItem: string;
22
+ carouselItemTitleWrapper: string;
23
+ carouselItemTitle: string;
24
+ carouselItemDescription: string;
25
+ } & {
26
+ w: (width: string | number) => string;
27
+ h: (height: string | number) => string;
28
+ p: (padding: string) => string;
29
+ pb: (padding: string | number) => string;
30
+ pt: (padding: string | number) => string;
31
+ pl: (padding: string | number) => string;
32
+ pr: (padding: string | number) => string;
33
+ m: (margin: string) => string;
34
+ mb: (margin: string | number) => string;
35
+ mt: (margin: string | number) => string;
36
+ ml: (margin: string | number) => string;
37
+ mr: (margin: string | number) => string;
38
+ text: (size: string | number) => string;
39
+ weight: (size: number) => string;
40
+ textColor: (c: string) => string;
41
+ bg: (c: string) => string;
42
+ rs: (radius: string | number) => string;
43
+ gap: (g: string | number) => string;
44
+ flex: string;
45
+ flexCenter: string;
46
+ flexBetween: string;
47
+ flexColumn: string;
48
+ flex1: string;
49
+ cursor: (type: string) => string;
50
+ border: (color: string, width?: string) => string;
51
+ boxShadow: (shadow: string) => string;
52
+ transition: (property?: string, duration?: string) => string;
53
+ overflow: (type: string) => string;
54
+ position: (type: string) => string;
55
+ zIndex: (index: number) => string;
56
+ flexCenterGap2: string;
57
+ flexCenterGap4: string;
58
+ };
59
+ export default useStyles;
@@ -0,0 +1,34 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23;
3
+ import { css } from "@emotion/css";
4
+ import { withBasicStyles } from "../../styles/common";
5
+ export var useStyles = withBasicStyles(function () {
6
+ return {
7
+ sources: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n "]))),
8
+ sourcesTitleWrapper: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n gap: 8px;\n align-items: center;\n font-size: 14px;\n color: #888;\n line-height: 1.5;\n cursor: pointer;\n margin-bottom: 12px;\n width: fit-content;\n "]))),
9
+ sourcesTitleDownIcon: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n font-size: 12px;\n transition: transform 0.3s ease;\n "]))),
10
+ sourcesTitleDownIconExpanded: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n transform: rotate(90deg);\n "]))),
11
+ sourcesIconPositionEnd: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n .sources-title-down-icon {\n order: 1;\n }\n "]))),
12
+ sourcesList: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n list-style: none;\n margin: 0;\n padding: 0;\n ul, ol {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n "]))),
13
+ sourcesListItem: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin-bottom: 8px;\n "]))),
14
+ sourcesLink: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n color: #333;\n display: flex;\n gap: 4px;\n text-decoration: none;\n &:hover {\n color: #1677ff;\n }\n "]))),
15
+ sourcesLinkIcon: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex-shrink: 0;\n "]))),
16
+ sourcesLinkTitle: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n "]))),
17
+ sourcesContent: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n overflow: hidden;\n transition: all 0.3s ease;\n "]))),
18
+ sourcesContentHidden: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: none;\n "]))),
19
+ sourcesInline: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n display: inline-flex;\n .sources-title-wrapper {\n background: #f5f5f5;\n border-radius: 10px;\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n color: #888;\n font-weight: 400;\n padding-inline: 6px;\n padding-block: 0;\n margin-inline: 4px;\n margin-block: 0;\n }\n "]))),
20
+ // ========== Carousel 相关 ==========
21
+ carouselWrapper: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n min-width: 260px;\n "]))),
22
+ carouselTitle: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n "]))),
23
+ carouselBtnWrapper: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n display: flex;\n gap: 4px;\n "]))),
24
+ carouselBtn: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n height: 32px;\n width: 32px;\n border-radius: 6px;\n transition: background 0.2s ease;\n &:not(.carousel-btn-disabled):hover {\n background: #f5f5f5;\n }\n "]))),
25
+ carouselBtnDisabled: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n "]))),
26
+ carouselPage: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #888;\n "]))),
27
+ carouselItem: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n padding: 8px;\n box-sizing: border-box;\n font-size: 14px;\n line-height: 1.5;\n cursor: pointer;\n "]))),
28
+ carouselItemTitleWrapper: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n display: flex;\n gap: 4px;\n align-items: center;\n "]))),
29
+ carouselItemTitle: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n "]))),
30
+ carouselItemDescription: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n opacity: 0.8;\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n text-overflow: ellipsis;\n margin-top: 4px;\n font-size: 12px;\n color: #888;\n "])))
31
+ };
32
+ });
33
+ export default useStyles;
34
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["css","withBasicStyles","useStyles","sources","_templateObject","_taggedTemplateLiteral","sourcesTitleWrapper","_templateObject2","sourcesTitleDownIcon","_templateObject3","sourcesTitleDownIconExpanded","_templateObject4","sourcesIconPositionEnd","_templateObject5","sourcesList","_templateObject6","sourcesListItem","_templateObject7","sourcesLink","_templateObject8","sourcesLinkIcon","_templateObject9","sourcesLinkTitle","_templateObject10","sourcesContent","_templateObject11","sourcesContentHidden","_templateObject12","sourcesInline","_templateObject13","carouselWrapper","_templateObject14","carouselTitle","_templateObject15","carouselBtnWrapper","_templateObject16","carouselBtn","_templateObject17","carouselBtnDisabled","_templateObject18","carouselPage","_templateObject19","carouselItem","_templateObject20","carouselItemTitleWrapper","_templateObject21","carouselItemTitle","_templateObject22","carouselItemDescription","_templateObject23"],"sources":["../../../../src/components/Sources/styles.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { withBasicStyles } from \"@/styles/common\";\n\nexport const useStyles = withBasicStyles(() => ({\n sources: css`\n position: relative;\n `,\n\n sourcesTitleWrapper: css`\n display: flex;\n flex-direction: row;\n gap: 8px;\n align-items: center;\n font-size: 14px;\n color: #888;\n line-height: 1.5;\n cursor: pointer;\n margin-bottom: 12px;\n width: fit-content;\n `,\n\n sourcesTitleDownIcon: css`\n font-size: 12px;\n transition: transform 0.3s ease;\n `,\n\n sourcesTitleDownIconExpanded: css`\n transform: rotate(90deg);\n `,\n\n sourcesIconPositionEnd: css`\n .sources-title-down-icon {\n order: 1;\n }\n `,\n\n sourcesList: css`\n list-style: none;\n margin: 0;\n padding: 0;\n ul, ol {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n `,\n\n sourcesListItem: css`\n margin-bottom: 8px;\n `,\n\n sourcesLink: css`\n color: #333;\n display: flex;\n gap: 4px;\n text-decoration: none;\n &:hover {\n color: #1677ff;\n }\n `,\n\n sourcesLinkIcon: css`\n flex-shrink: 0;\n `,\n\n sourcesLinkTitle: css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n\n sourcesContent: css`\n overflow: hidden;\n transition: all 0.3s ease;\n `,\n\n sourcesContentHidden: css`\n display: none;\n `,\n\n sourcesInline: css`\n display: inline-flex;\n .sources-title-wrapper {\n background: #f5f5f5;\n border-radius: 10px;\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n color: #888;\n font-weight: 400;\n padding-inline: 6px;\n padding-block: 0;\n margin-inline: 4px;\n margin-block: 0;\n }\n `,\n\n // ========== Carousel 相关 ==========\n carouselWrapper: css`\n min-width: 260px;\n `,\n\n carouselTitle: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n `,\n\n carouselBtnWrapper: css`\n display: flex;\n gap: 4px;\n `,\n\n carouselBtn: css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n height: 32px;\n width: 32px;\n border-radius: 6px;\n transition: background 0.2s ease;\n &:not(.carousel-btn-disabled):hover {\n background: #f5f5f5;\n }\n `,\n\n carouselBtnDisabled: css`\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n `,\n\n carouselPage: css`\n font-size: 12px;\n color: #888;\n `,\n\n carouselItem: css`\n padding: 8px;\n box-sizing: border-box;\n font-size: 14px;\n line-height: 1.5;\n cursor: pointer;\n `,\n\n carouselItemTitleWrapper: css`\n display: flex;\n gap: 4px;\n align-items: center;\n `,\n\n carouselItemTitle: css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n\n carouselItemDescription: css`\n opacity: 0.8;\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n text-overflow: ellipsis;\n margin-top: 4px;\n font-size: 12px;\n color: #888;\n `,\n}));\n\nexport default useStyles;"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9CE,OAAO,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,qCAEX;IAEDC,mBAAmB,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,2OAWvB;IAEDG,oBAAoB,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,wEAGxB;IAEDK,4BAA4B,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,2CAEhC;IAEDO,sBAAsB,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,oEAI1B;IAEDS,WAAW,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,uJASf;IAEDW,eAAe,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,qCAEnB;IAEDa,WAAW,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,0IAQf;IAEDe,eAAe,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,iCAEnB;IAEDiB,gBAAgB,EAAEtB,GAAG,CAAAuB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,2FAIpB;IAEDmB,cAAc,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,mEAGlB;IAEDqB,oBAAoB,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA,gCAExB;IAEDuB,aAAa,EAAE5B,GAAG,CAAA6B,iBAAA,KAAAA,iBAAA,GAAAxB,sBAAA,gWAejB;IAED;IACAyB,eAAe,EAAE9B,GAAG,CAAA+B,iBAAA,KAAAA,iBAAA,GAAA1B,sBAAA,mCAEnB;IAED2B,aAAa,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAA5B,sBAAA,wHAKjB;IAED6B,kBAAkB,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAA9B,sBAAA,+CAGtB;IAED+B,WAAW,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA,wSAYf;IAEDiC,mBAAmB,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAlC,sBAAA,oFAIvB;IAEDmC,YAAY,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAApC,sBAAA,oDAGhB;IAEDqC,YAAY,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAAtC,sBAAA,+HAMhB;IAEDuC,wBAAwB,EAAE5C,GAAG,CAAA6C,iBAAA,KAAAA,iBAAA,GAAAxC,sBAAA,yEAI5B;IAEDyC,iBAAiB,EAAE9C,GAAG,CAAA+C,iBAAA,KAAAA,iBAAA,GAAA1C,sBAAA,2FAIrB;IAED2C,uBAAuB,EAAEhD,GAAG,CAAAiD,iBAAA,KAAAA,iBAAA,GAAA5C,sBAAA;EAW9B,CAAC;AAAA,CAAC,CAAC;AAEH,eAAeH,SAAS"}
@@ -1,8 +1,9 @@
1
1
  import React from "react";
2
- import type { InlineTagRenderInfo, InputTag } from "../../types";
2
+ import type { InlineTagRenderInfo, InputTag, XAdkSenderSubmitPart } from "../../types";
3
3
  export interface InlineTagInputRef {
4
4
  focus: () => void;
5
5
  getText: () => string;
6
+ getParts: () => XAdkSenderSubmitPart[];
6
7
  getCursorOffset: () => number;
7
8
  insertTag: (tag: InputTag, replace?: {
8
9
  start: number;