@hkyhy/marsun-components-core 0.1.12 → 0.1.17

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 (160) hide show
  1. package/README.md +31 -6
  2. package/dist/components/AgentHub/Chat/Action/CreateButton.js +8 -0
  3. package/dist/components/AgentHub/Chat/Action/CreateButton.js.map +1 -0
  4. package/dist/components/AgentHub/Chat/Action/ManageActionButtons.js +20 -0
  5. package/dist/components/AgentHub/Chat/Action/ManageActionButtons.js.map +1 -0
  6. package/dist/components/AgentHub/Chat/Action/SessionActionButtons.js +24 -0
  7. package/dist/components/AgentHub/Chat/Action/SessionActionButtons.js.map +1 -0
  8. package/dist/components/AgentHub/Chat/Action/handlers.d.ts +0 -5
  9. package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js +65 -0
  10. package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js.map +1 -0
  11. package/dist/components/AgentHub/Chat/Detail/ChatInput/style.module.scss.js +12 -0
  12. package/dist/components/AgentHub/Chat/Detail/ChatInput/style.module.scss.js.map +1 -0
  13. package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.d.ts +31 -0
  14. package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js +85 -0
  15. package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js.map +1 -0
  16. package/dist/components/AgentHub/Chat/Detail/ChatPanel/style.module.scss.js +14 -0
  17. package/dist/components/AgentHub/Chat/Detail/ChatPanel/style.module.scss.js.map +1 -0
  18. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.d.ts +9 -0
  19. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.js +22 -0
  20. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.js.map +1 -0
  21. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/style.module.scss.js +8 -0
  22. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/style.module.scss.js.map +1 -0
  23. package/dist/components/AgentHub/Chat/Detail/CitationContent/index.js +21 -0
  24. package/dist/components/AgentHub/Chat/Detail/CitationContent/index.js.map +1 -0
  25. package/dist/components/AgentHub/Chat/Detail/CitationContent/style.module.scss.js +8 -0
  26. package/dist/components/AgentHub/Chat/Detail/CitationContent/style.module.scss.js.map +1 -0
  27. package/dist/components/AgentHub/Chat/Detail/CitationInlineBadge/index.js +17 -0
  28. package/dist/components/AgentHub/Chat/Detail/CitationInlineBadge/index.js.map +1 -0
  29. package/dist/components/AgentHub/Chat/Detail/CitationInlineBadge/style.module.scss.js +7 -0
  30. package/dist/components/AgentHub/Chat/Detail/CitationInlineBadge/style.module.scss.js.map +1 -0
  31. package/dist/components/AgentHub/Chat/Detail/CitationMarkdownContent/index.js +68 -0
  32. package/dist/components/AgentHub/Chat/Detail/CitationMarkdownContent/index.js.map +1 -0
  33. package/dist/components/AgentHub/Chat/Detail/CitationMarkdownContent/style.module.scss.js +7 -0
  34. package/dist/components/AgentHub/Chat/Detail/CitationMarkdownContent/style.module.scss.js.map +1 -0
  35. package/dist/components/AgentHub/Chat/Detail/CitationPanel/index.js +247 -0
  36. package/dist/components/AgentHub/Chat/Detail/CitationPanel/index.js.map +1 -0
  37. package/dist/components/AgentHub/Chat/Detail/CitationPanel/style.module.scss.js +31 -0
  38. package/dist/components/AgentHub/Chat/Detail/CitationPanel/style.module.scss.js.map +1 -0
  39. package/dist/components/AgentHub/Chat/Detail/MermaidBlock/index.js +43 -0
  40. package/dist/components/AgentHub/Chat/Detail/MermaidBlock/index.js.map +1 -0
  41. package/dist/components/AgentHub/Chat/Detail/MermaidBlock/style.module.scss.js +8 -0
  42. package/dist/components/AgentHub/Chat/Detail/MermaidBlock/style.module.scss.js.map +1 -0
  43. package/dist/components/AgentHub/Chat/Detail/MessageActions/index.js +103 -0
  44. package/dist/components/AgentHub/Chat/Detail/MessageActions/index.js.map +1 -0
  45. package/dist/components/AgentHub/Chat/Detail/MessageActions/style.module.scss.js +14 -0
  46. package/dist/components/AgentHub/Chat/Detail/MessageActions/style.module.scss.js.map +1 -0
  47. package/dist/components/AgentHub/Chat/Detail/MessageEditPopover/index.js +58 -0
  48. package/dist/components/AgentHub/Chat/Detail/MessageEditPopover/index.js.map +1 -0
  49. package/dist/components/AgentHub/Chat/Detail/MessageEditPopover/style.module.scss.js +9 -0
  50. package/dist/components/AgentHub/Chat/Detail/MessageEditPopover/style.module.scss.js.map +1 -0
  51. package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js +309 -0
  52. package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js.map +1 -0
  53. package/dist/components/AgentHub/Chat/Detail/MessageItem/style.module.scss.js +24 -0
  54. package/dist/components/AgentHub/Chat/Detail/MessageItem/style.module.scss.js.map +1 -0
  55. package/dist/components/AgentHub/Chat/Detail/ThinkingSection/index.js +122 -0
  56. package/dist/components/AgentHub/Chat/Detail/ThinkingSection/index.js.map +1 -0
  57. package/dist/components/AgentHub/Chat/Detail/ThinkingSection/style.module.scss.js +25 -0
  58. package/dist/components/AgentHub/Chat/Detail/ThinkingSection/style.module.scss.js.map +1 -0
  59. package/dist/components/AgentHub/Chat/Detail/index.d.ts +12 -0
  60. package/dist/components/AgentHub/Chat/Form/Form.js +37 -0
  61. package/dist/components/AgentHub/Chat/Form/Form.js.map +1 -0
  62. package/dist/components/AgentHub/Chat/List/ChatCard/index.js +86 -0
  63. package/dist/components/AgentHub/Chat/List/ChatCard/index.js.map +1 -0
  64. package/dist/components/AgentHub/Chat/List/ChatCard/style.module.scss.js +25 -0
  65. package/dist/components/AgentHub/Chat/List/ChatCard/style.module.scss.js.map +1 -0
  66. package/dist/components/AgentHub/Chat/List/FilterBar.js +17 -0
  67. package/dist/components/AgentHub/Chat/List/FilterBar.js.map +1 -0
  68. package/dist/components/AgentHub/Chat/List/SessionSidebar/index.js +156 -0
  69. package/dist/components/AgentHub/Chat/List/SessionSidebar/index.js.map +1 -0
  70. package/dist/components/AgentHub/Chat/List/SessionSidebar/style.module.scss.js +28 -0
  71. package/dist/components/AgentHub/Chat/List/SessionSidebar/style.module.scss.js.map +1 -0
  72. package/dist/components/AgentHub/Chat/Modal/FormModal.js +58 -0
  73. package/dist/components/AgentHub/Chat/Modal/FormModal.js.map +1 -0
  74. package/dist/components/AgentHub/Chat/hooks/useAutoScrollToBottom.js +35 -0
  75. package/dist/components/AgentHub/Chat/hooks/useAutoScrollToBottom.js.map +1 -0
  76. package/dist/components/AgentHub/Chat/hooks/useChat.js +51 -0
  77. package/dist/components/AgentHub/Chat/hooks/useChat.js.map +1 -0
  78. package/dist/components/AgentHub/Chat/hooks/useChatSessions.js +60 -0
  79. package/dist/components/AgentHub/Chat/hooks/useChatSessions.js.map +1 -0
  80. package/dist/components/AgentHub/Chat/hooks/useSSECompletion.js +69 -0
  81. package/dist/components/AgentHub/Chat/hooks/useSSECompletion.js.map +1 -0
  82. package/dist/components/AgentHub/Chat/hooks/useTypewriter.js +39 -0
  83. package/dist/components/AgentHub/Chat/hooks/useTypewriter.js.map +1 -0
  84. package/dist/components/AgentHub/Chat/index.d.ts +1 -0
  85. package/dist/components/AgentHub/Chat/utils/citationContent.js +169 -0
  86. package/dist/components/AgentHub/Chat/utils/citationContent.js.map +1 -0
  87. package/dist/components/AgentHub/Chat/utils/messageContent.js +85 -0
  88. package/dist/components/AgentHub/Chat/utils/messageContent.js.map +1 -0
  89. package/dist/components/AgentHub/Chat/utils/sanitizeMermaidChart.js +22 -0
  90. package/dist/components/AgentHub/Chat/utils/sanitizeMermaidChart.js.map +1 -0
  91. package/dist/components/AgentHub/Chat/utils/sessionMessages.js +151 -0
  92. package/dist/components/AgentHub/Chat/utils/sessionMessages.js.map +1 -0
  93. package/dist/components/AgentHub/KnowledgeBase/Action/CreateButton.js +8 -0
  94. package/dist/components/AgentHub/KnowledgeBase/Action/CreateButton.js.map +1 -0
  95. package/dist/components/AgentHub/KnowledgeBase/Action/ManageActionButtons.js +20 -0
  96. package/dist/components/AgentHub/KnowledgeBase/Action/ManageActionButtons.js.map +1 -0
  97. package/dist/components/AgentHub/KnowledgeBase/Detail/DocumentTable/index.js +110 -0
  98. package/dist/components/AgentHub/KnowledgeBase/Detail/DocumentTable/index.js.map +1 -0
  99. package/dist/components/AgentHub/KnowledgeBase/Detail/DocumentTable/style.module.scss.js +7 -0
  100. package/dist/components/AgentHub/KnowledgeBase/Detail/DocumentTable/style.module.scss.js.map +1 -0
  101. package/dist/components/AgentHub/KnowledgeBase/Detail/ParseStatusTag/index.js +18 -0
  102. package/dist/components/AgentHub/KnowledgeBase/Detail/ParseStatusTag/index.js.map +1 -0
  103. package/dist/components/AgentHub/KnowledgeBase/Detail/ParseStatusTag/style.module.scss.js +7 -0
  104. package/dist/components/AgentHub/KnowledgeBase/Detail/ParseStatusTag/style.module.scss.js.map +1 -0
  105. package/dist/components/AgentHub/KnowledgeBase/Form/Form.js +31 -0
  106. package/dist/components/AgentHub/KnowledgeBase/Form/Form.js.map +1 -0
  107. package/dist/components/AgentHub/KnowledgeBase/List/FilterBar.js +17 -0
  108. package/dist/components/AgentHub/KnowledgeBase/List/FilterBar.js.map +1 -0
  109. package/dist/components/AgentHub/KnowledgeBase/List/KnowledgeCard/index.js +118 -0
  110. package/dist/components/AgentHub/KnowledgeBase/List/KnowledgeCard/index.js.map +1 -0
  111. package/dist/components/AgentHub/KnowledgeBase/List/KnowledgeCard/style.module.scss.js +23 -0
  112. package/dist/components/AgentHub/KnowledgeBase/List/KnowledgeCard/style.module.scss.js.map +1 -0
  113. package/dist/components/AgentHub/KnowledgeBase/Modal/FormModal.js +47 -0
  114. package/dist/components/AgentHub/KnowledgeBase/Modal/FormModal.js.map +1 -0
  115. package/dist/components/AgentHub/KnowledgeBase/constants/types.js +28 -0
  116. package/dist/components/AgentHub/KnowledgeBase/constants/types.js.map +1 -0
  117. package/dist/components/AgentHub/KnowledgeBase/hooks/useKBDocuments.js +21 -0
  118. package/dist/components/AgentHub/KnowledgeBase/hooks/useKBDocuments.js.map +1 -0
  119. package/dist/components/AgentHub/KnowledgeBase/hooks/useKnowledgeBase.js +32 -0
  120. package/dist/components/AgentHub/KnowledgeBase/hooks/useKnowledgeBase.js.map +1 -0
  121. package/dist/components/Filter/CommonFilter/index.js +34 -30
  122. package/dist/components/Filter/CommonFilter/index.js.map +1 -1
  123. package/dist/components/Filter/CommonFilter/style.module.scss.js +17 -16
  124. package/dist/components/Filter/CommonFilter/style.module.scss.js.map +1 -1
  125. package/dist/components/Filter/FilterDateRange/index.d.ts +2 -0
  126. package/dist/components/Filter/FilterDateRange/index.js +62 -51
  127. package/dist/components/Filter/FilterDateRange/index.js.map +1 -1
  128. package/dist/components/Filter/FilterSelect/index.d.ts +8 -2
  129. package/dist/components/Filter/FilterSelect/index.js +163 -116
  130. package/dist/components/Filter/FilterSelect/index.js.map +1 -1
  131. package/dist/components/Filter/FilterSelect/style.module.scss.js +12 -10
  132. package/dist/components/Filter/FilterSelect/style.module.scss.js.map +1 -1
  133. package/dist/components/Filter/FilterTrigger/index.d.ts +2 -2
  134. package/dist/components/Filter/FilterTrigger/index.js.map +1 -1
  135. package/dist/components/Filter/FilterTrigger/style.module.scss.js +4 -4
  136. package/dist/components/Filter/index.d.ts +1 -1
  137. package/dist/components/Filter/types.d.ts +2 -0
  138. package/dist/components/Filter/types.js.map +1 -1
  139. package/dist/components/Filter/useFilterState.d.ts +2 -0
  140. package/dist/components/Filter/useFilterState.js +27 -26
  141. package/dist/components/Filter/useFilterState.js.map +1 -1
  142. package/dist/components/Icons/index.js +153 -145
  143. package/dist/components/Icons/index.js.map +1 -1
  144. package/dist/components/TooltipInfo/TooltipInfo.js +29 -20
  145. package/dist/components/TooltipInfo/TooltipInfo.js.map +1 -1
  146. package/dist/index.d.ts +3 -1
  147. package/dist/index.js +295 -186
  148. package/dist/index.js.map +1 -1
  149. package/dist/marsun-components-core.css +1 -1
  150. package/dist/styles/global.css +1 -1
  151. package/dist/theme/constants.d.ts +47 -1
  152. package/dist/theme/constants.js +50 -5
  153. package/dist/theme/constants.js.map +1 -1
  154. package/dist/theme/index.d.ts +2 -2
  155. package/dist/theme/index.js +8 -6
  156. package/dist/theme/theme.d.ts +10 -0
  157. package/dist/theme/theme.js +24 -34
  158. package/dist/theme/theme.js.map +1 -1
  159. package/dist/theme/tokens.css +139 -0
  160. package/package.json +7 -3
@@ -1,4 +1,12 @@
1
1
  import { ThemeConfig } from 'antd';
2
+ /**
3
+ * Marsun Components Core - Ant Design 主题配置
4
+ *
5
+ * 分层说明:
6
+ * 1. Design Token(全局层):颜色、字号、间距、圆角等基础变量
7
+ * 2. Semantic Token(语义层):别名 token,映射全局 token 的语义用途
8
+ * 3. Component Token(组件层):按组件定制,替代 global.css 中的 :global 覆盖
9
+ */
2
10
  /**
3
11
  * 根据主色生成完整的 Ant Design 主题配置
4
12
  * @param primaryColor - 主题主色,来自系统设置
@@ -9,3 +17,5 @@ export declare function generateTheme(primaryColor: string): ThemeConfig;
9
17
  * 用于 SCSS 和非 antd 组件的样式引用
10
18
  */
11
19
  export declare function applyThemeToCssVariables(primaryColor: string): void;
20
+ /** 项目级 CSS 变量覆盖(在 applyThemeToCssVariables 之后调用) */
21
+ export declare function applyCssTokenOverrides(overrides: Record<string, string>, target?: HTMLElement): void;
@@ -1,26 +1,4 @@
1
- const e = {
2
- /** 成功色 */
3
- success: "#027A48",
4
- /** 信息色 */
5
- info: "#155ACF",
6
- /** 错误/危险色 */
7
- error: "#D14343",
8
- /** 警告色 */
9
- warning: "#F09700",
10
- /** 字体色 */
11
- textBase: "#222222",
12
- textSecondary: "#666666",
13
- textTertiary: "#999999",
14
- textDisabled: "rgba(0, 0, 0, 0.25)",
15
- borderSeparator: "#f3f3f3",
16
- /** 背景色 */
17
- bgWhite: "#ffffff",
18
- bgGrey: "#fafafa",
19
- bgGreyLight: "#f8f8f8",
20
- bgGreyNormal: "#f3f3f3",
21
- bgGreyDark: "#f1f1f1",
22
- bgBlueTint: "#fafcff"
23
- };
1
+ import { PALETTE as e, LAYOUT_TOKENS as r } from "./constants.js";
24
2
  function d(o) {
25
3
  return {
26
4
  token: {
@@ -41,7 +19,7 @@ function d(o) {
41
19
  colorBgContainer: e.bgWhite,
42
20
  colorBgLayout: e.bgGrey,
43
21
  colorBgElevated: e.bgWhite,
44
- colorBgSpotlight: e.bgGreyDark,
22
+ // colorTextLightSolid 勿改为 tooltip 深色 — Button primary 文字依赖此 token(须为浅色)
45
23
  // 边框
46
24
  colorBorder: e.borderSeparator,
47
25
  colorBorderSecondary: e.borderSeparator,
@@ -91,7 +69,9 @@ function d(o) {
91
69
  controlHeight: 32,
92
70
  controlHeightSM: 24,
93
71
  controlHeightLG: 40,
94
- controlHeightXS: 16
72
+ controlHeightXS: 16,
73
+ // ====== 弹层 ======
74
+ zIndexPopupBase: r.zIndexPopupBase
95
75
  },
96
76
  components: {
97
77
  // ====== Button ======
@@ -107,7 +87,9 @@ function d(o) {
107
87
  dangerShadow: "none",
108
88
  borderRadius: 4,
109
89
  borderRadiusSM: 4,
110
- borderRadiusLG: 4
90
+ borderRadiusLG: 4,
91
+ primaryColor: e.bgWhite,
92
+ dangerColor: e.bgWhite
111
93
  },
112
94
  // ====== Table ======
113
95
  Table: {
@@ -182,8 +164,9 @@ function d(o) {
182
164
  },
183
165
  // ====== Tooltip ======
184
166
  Tooltip: {
185
- colorBgSpotlight: e.bgWhite,
186
- colorTextLightSolid: e.textBase
167
+ colorBgSpotlight: e.tooltipBg,
168
+ colorTextLightSolid: e.tooltipColor,
169
+ zIndexPopup: r.zIndexPopupBase
187
170
  },
188
171
  // ====== Popover ======
189
172
  Popover: {
@@ -271,16 +254,23 @@ function g(o) {
271
254
  b: parseInt(t.substring(4, 6), 16)
272
255
  };
273
256
  }
274
- function a(o, t, l) {
275
- const { r, g: i, b: n } = g(l);
276
- o.style.setProperty(`--${t}-bg`, `rgba(${r}, ${i}, ${n}, 0.06)`), o.style.setProperty(`--${t}-bg-hover`, `rgba(${r}, ${i}, ${n}, 0.10)`), o.style.setProperty(`--${t}-bg-active`, `rgba(${r}, ${i}, ${n}, 0.16)`), o.style.setProperty(`--${t}-border`, `rgba(${r}, ${i}, ${n}, 0.20)`), o.style.setProperty(`--${t}-fill`, `rgba(${r}, ${i}, ${n}, 0.10)`);
257
+ function a(o, t, n) {
258
+ const { r: i, g: l, b: s } = g(n);
259
+ o.style.setProperty(`--${t}-bg`, `rgba(${i}, ${l}, ${s}, 0.06)`), o.style.setProperty(`--${t}-bg-hover`, `rgba(${i}, ${l}, ${s}, 0.10)`), o.style.setProperty(`--${t}-bg-active`, `rgba(${i}, ${l}, ${s}, 0.16)`), o.style.setProperty(`--${t}-border`, `rgba(${i}, ${l}, ${s}, 0.20)`), o.style.setProperty(`--${t}-fill`, `rgba(${i}, ${l}, ${s}, 0.10)`);
277
260
  }
278
- function c(o) {
261
+ function y(o) {
279
262
  const t = document.documentElement;
280
- t.style.setProperty("--primary-color", o), t.style.setProperty("--success-color", e.success), t.style.setProperty("--info-color", e.info), t.style.setProperty("--error-color", e.error), t.style.setProperty("--warning-color", e.warning), a(t, "primary-color", o), a(t, "success-color", e.success), a(t, "info-color", e.info), a(t, "error-color", e.error), a(t, "warning-color", e.warning);
263
+ t.style.setProperty("--primary-color", o), t.style.setProperty("--success-color", e.success), t.style.setProperty("--info-color", e.info), t.style.setProperty("--error-color", e.error), t.style.setProperty("--warning-color", e.warning), t.style.setProperty("--layout-header-height", r.headerHeight), t.style.setProperty("--layout-sider-width", r.siderWidth), t.style.setProperty("--font-size-default", r.fontSizeDefault), t.style.setProperty("--font-size-small", r.fontSizeSmall), t.style.setProperty("--font-size-large", r.fontSizeLarge), t.style.setProperty("--font-size-18", r.fontSize18), t.style.setProperty("--font-size-24", r.fontSize24), t.style.setProperty("--line-height-default", r.lineHeightDefault), t.style.setProperty("--line-height-middle", r.lineHeightMiddle), t.style.setProperty("--line-height-small", r.lineHeightSmall), t.style.setProperty("--line-height-large", r.lineHeightLarge), t.style.setProperty("--font-color", e.textBase), t.style.setProperty("--font-color-disabled", e.textDisabled), t.style.setProperty("--font-color-grey", e.textSecondary), t.style.setProperty("--font-color-grey-1", e.textTertiary), t.style.setProperty("--font-color-grey-2", e.borderBase), t.style.setProperty("--font-color-grey-3", e.borderLight), t.style.setProperty("--font-color-grey-4", e.borderLighter), t.style.setProperty("--bg-color-white", e.bgWhite), t.style.setProperty("--bg-color-grey", e.bgGrey), t.style.setProperty("--bg-color-grey-1", e.bgGreyLight), t.style.setProperty("--bg-color-grey-2", e.bgGreyNormal), t.style.setProperty("--bg-color-grey-3", e.bgGreyDark), t.style.setProperty("--bg-color-grey-4", e.bgBlueTint), t.style.setProperty("--tag-default", e.tagDefault), t.style.setProperty("--tag-success", e.tagSuccess), t.style.setProperty("--tag-progress", e.tagProgress), t.style.setProperty("--tag-danger", e.tagDanger), t.style.setProperty("--tag-info", e.tagInfo), t.style.setProperty("--tag-other", e.tagOther), t.style.setProperty("--file-icon-word", e.fileIconWord), t.style.setProperty("--file-icon-pdf", e.fileIconPdf), t.style.setProperty("--file-icon-excel", e.fileIconExcel), t.style.setProperty("--file-icon-ppt", e.fileIconPpt), t.style.setProperty("--file-icon-image", e.fileIconImage), t.style.setProperty("--file-icon-markdown", e.fileIconMarkdown), t.style.setProperty("--file-icon-visio", e.fileIconVisio), t.style.setProperty("--file-icon-archive", e.fileIconArchive), t.style.setProperty("--file-icon-folder", e.fileIconFolder), t.style.setProperty("--file-icon-other", e.fileIconOther), t.style.setProperty("--tooltip-bg", e.tooltipBg), t.style.setProperty("--tooltip-color", e.tooltipColor), t.style.setProperty("--tooltip-info-bg", e.bgWhite), t.style.setProperty("--tooltip-info-color", e.textBase), a(t, "primary-color", o), a(t, "success-color", e.success), a(t, "info-color", e.info), a(t, "error-color", e.error), a(t, "warning-color", e.warning);
264
+ }
265
+ function p(o, t = document.documentElement) {
266
+ Object.entries(o).forEach(([n, i]) => {
267
+ const l = n.startsWith("--") ? n : `--${n}`;
268
+ t.style.setProperty(l, i);
269
+ });
281
270
  }
282
271
  export {
283
- c as applyThemeToCssVariables,
272
+ p as applyCssTokenOverrides,
273
+ y as applyThemeToCssVariables,
284
274
  d as generateTheme
285
275
  };
286
276
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sources":["../../src/theme/theme.ts"],"sourcesContent":["import type { ThemeConfig } from 'antd';\n\n/**\n * Marsun Components Core - Ant Design 主题配置\n *\n * 分层说明:\n * 1. Design Token(全局层):颜色、字号、间距、圆角等基础变量\n * 2. Semantic Token(语义层):别名 token,映射全局 token 的语义用途\n * 3. Component Token(组件层):按组件定制,替代 global.css 中的 :global 覆盖\n */\n\n/** ========== 基础色板(与 CSS 变量一一对应) ========== */\nconst PALETTE = {\n /** 主色 */\n primary: '#1677ff',\n /** 成功色 */\n success: '#027A48',\n /** 信息色 */\n info: '#155ACF',\n /** 错误/危险色 */\n error: '#D14343',\n /** 警告色 */\n warning: '#F09700',\n\n /** 字体色 */\n textBase: '#222222',\n textSecondary: '#666666',\n textTertiary: '#999999',\n textDisabled: 'rgba(0, 0, 0, 0.25)',\n\n /** 边框色 */\n borderBase: '#cccccc',\n borderLight: '#dddddd',\n borderLighter: '#eeeeee',\n borderSeparator: '#f3f3f3',\n\n /** 背景色 */\n bgWhite: '#ffffff',\n bgGrey: '#fafafa',\n bgGreyLight: '#f8f8f8',\n bgGreyNormal: '#f3f3f3',\n bgGreyDark: '#f1f1f1',\n bgBlueTint: '#fafcff',\n} as const;\n\n/**\n * 根据主色生成完整的 Ant Design 主题配置\n * @param primaryColor - 主题主色,来自系统设置\n */\nexport function generateTheme(primaryColor: string): ThemeConfig {\n return {\n token: {\n // ====== 颜色 ======\n colorPrimary: primaryColor,\n colorSuccess: PALETTE.success,\n colorWarning: PALETTE.warning,\n colorError: PALETTE.error,\n colorInfo: PALETTE.info,\n colorLink: primaryColor,\n colorTextBase: PALETTE.textBase,\n\n // 文字\n colorText: PALETTE.textBase,\n colorTextSecondary: PALETTE.textSecondary,\n colorTextTertiary: PALETTE.textTertiary,\n colorTextDisabled: PALETTE.textDisabled,\n\n // 背景\n colorBgContainer: PALETTE.bgWhite,\n colorBgLayout: PALETTE.bgGrey,\n colorBgElevated: PALETTE.bgWhite,\n colorBgSpotlight: PALETTE.bgGreyDark,\n\n // 边框\n colorBorder: PALETTE.borderSeparator,\n colorBorderSecondary: PALETTE.borderSeparator,\n colorSplit: PALETTE.borderSeparator,\n\n // 填充\n colorFill: PALETTE.bgGreyDark,\n colorFillSecondary: PALETTE.bgGreyNormal,\n colorFillTertiary: PALETTE.bgGreyLight,\n colorFillQuaternary: PALETTE.bgGrey,\n\n // ====== 字体 ======\n fontSize: 14,\n fontSizeSM: 12,\n fontSizeLG: 16,\n fontSizeXL: 20,\n fontSizeHeading1: 38,\n fontSizeHeading2: 30,\n fontSizeHeading3: 24,\n fontSizeHeading4: 20,\n fontSizeHeading5: 16,\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'\",\n lineHeight: 1.8,\n lineHeightSM: 1.5,\n lineHeightLG: 2.2,\n\n // ====== 圆角 ======\n borderRadius: 4,\n borderRadiusSM: 2,\n borderRadiusLG: 8,\n\n // ====== 间距 ======\n padding: 16,\n paddingSM: 12,\n paddingLG: 24,\n paddingXL: 32,\n paddingXS: 8,\n margin: 16,\n marginSM: 12,\n marginLG: 24,\n marginXL: 32,\n marginXS: 8,\n\n // ====== 阴影 ======\n boxShadow:\n '0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02)',\n boxShadowSecondary:\n '0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)',\n\n // ====== 动画 ======\n motionDurationSlow: '0.3s',\n motionDurationMid: '0.2s',\n motionDurationFast: '0.1s',\n\n // ====== 控件 ======\n controlHeight: 32,\n controlHeightSM: 24,\n controlHeightLG: 40,\n controlHeightXS: 16,\n },\n\n components: {\n // ====== Button ======\n Button: {\n contentFontSizeSM: 12,\n contentFontSizeLG: 16,\n contentLineHeightSM: 1.5,\n paddingInlineSM: 8,\n paddingInline: 12,\n paddingInlineLG: 16,\n defaultShadow: 'none',\n primaryShadow: 'none',\n dangerShadow: 'none',\n borderRadius: 4,\n borderRadiusSM: 4,\n borderRadiusLG: 4,\n },\n\n // ====== Table ======\n Table: {\n headerBg: PALETTE.bgBlueTint,\n headerColor: PALETTE.textBase,\n headerBorderRadius: 4,\n headerSortActiveBg: PALETTE.bgGreyNormal,\n headerSortHoverBg: PALETTE.bgGreyNormal,\n headerFilterHoverBg: PALETTE.bgGreyNormal,\n rowHoverBg: PALETTE.bgGrey,\n // rowHoverColor: PALETTE.textBase,\n rowSelectedBg: `${primaryColor}10`,\n rowSelectedHoverBg: `${primaryColor}20`,\n borderColor: PALETTE.borderSeparator,\n // headerCellSplitColor: 'transparent',\n cellPaddingBlock: 8,\n cellPaddingInline: 24,\n cellPaddingBlockMD: 6,\n cellPaddingInlineMD: 24,\n cellPaddingBlockSM: 6,\n cellPaddingInlineSM: 8,\n fontSize: 14,\n fontSizeSM: 12,\n },\n\n // ====== Pagination ======\n Pagination: {\n fontSize: 12,\n itemSize: 24,\n itemSizeSM: 20,\n itemActiveBg: primaryColor,\n itemActiveColor: PALETTE.bgWhite,\n itemInputBg: PALETTE.bgWhite,\n // itemBorderColor: PALETTE.borderLight,\n // itemBorderRadiusSM: 2,\n },\n\n // ====== Modal ======\n Modal: {\n contentBg: PALETTE.bgWhite,\n headerBg: PALETTE.bgWhite,\n footerBg: PALETTE.bgWhite,\n titleFontSize: 16,\n titleLineHeight: 1.5,\n },\n\n // ====== Menu ======\n Menu: {\n itemBorderRadius: 4,\n itemMarginBlock: 4,\n itemMarginInline: 8,\n itemHeight: 40,\n itemColor: PALETTE.textBase,\n itemHoverColor: primaryColor,\n itemSelectedColor: primaryColor,\n itemSelectedBg: `${primaryColor}10`,\n subMenuItemBorderRadius: 4,\n collapsedIconSize: 16,\n iconMarginInlineEnd: 10,\n },\n\n // ====== Select ======\n Select: {\n optionSelectedBg: `${primaryColor}10`,\n optionSelectedColor: primaryColor,\n optionFontSize: 14,\n optionLineHeight: 1.8,\n optionPadding: '5px 12px',\n selectorBg: PALETTE.bgWhite,\n singleItemHeightLG: 40,\n },\n\n // ====== Input ======\n Input: {\n colorTextDisabled: PALETTE.textDisabled,\n colorBgContainerDisabled: PALETTE.bgGreyNormal,\n },\n\n // ====== Tooltip ======\n Tooltip: {\n colorBgSpotlight: PALETTE.bgWhite,\n colorTextLightSolid: PALETTE.textBase,\n },\n\n // ====== Popover ======\n Popover: {\n borderRadiusLG: 4,\n },\n\n // ====== Alert ======\n Alert: {\n withDescriptionIconSize: 14,\n // defaultBg: `${PALETTE.primary}10`,\n // infoBg: `${PALETTE.info}10`,\n // successBg: `${PALETTE.success}10`,\n // warningBg: `${PALETTE.warning}10`,\n // errorBg: `${PALETTE.error}10`,\n },\n\n // ====== Tag ======\n Tag: {\n borderRadiusSM: 4,\n defaultBg: 'rgba(102, 102, 102, 0.06)',\n defaultColor: PALETTE.textSecondary,\n },\n\n // ====== Card ======\n Card: {\n borderRadiusLG: 4,\n },\n\n // ====== Descriptions ======\n Descriptions: {\n labelBg: PALETTE.bgGrey,\n labelColor: PALETTE.textSecondary,\n contentColor: PALETTE.textBase,\n },\n\n // ====== Dropdown ======\n Dropdown: {\n borderRadiusLG: 4,\n paddingBlock: 4,\n },\n\n // ====== Checkbox ======\n Checkbox: {\n // marginInlineEnd: 8,\n },\n\n // ====== Segmented ======\n Segmented: {\n itemSelectedBg: PALETTE.bgWhite,\n itemColor: PALETTE.textSecondary,\n itemSelectedColor: PALETTE.textBase,\n // containerBg: PALETTE.bgGreyNormal,\n },\n\n // ====== Tabs ======\n Tabs: {\n itemSelectedColor: primaryColor,\n itemHoverColor: primaryColor,\n inkBarColor: primaryColor,\n },\n\n // ====== Form ======\n Form: {\n labelColor: PALETTE.textBase,\n labelFontSize: 14,\n verticalLabelPadding: '0 0 4px',\n },\n\n // ====== Timeline ======\n Timeline: {\n dotBg: 'transparent',\n itemPaddingBottom: 20,\n },\n\n // ====== Empty ======\n Empty: {\n // descriptionColor: PALETTE.textTertiary,\n },\n\n // ====== Spin ======\n Spin: {\n colorPrimary: primaryColor,\n },\n\n // ====== Upload ======\n Upload: {\n colorPrimary: primaryColor,\n colorPrimaryHover: primaryColor,\n },\n },\n };\n}\n\n/**\n * 将 hex 颜色解析为 RGB 分量\n */\nfunction hexToRgb(hex: string): { r: number; g: number; b: number } {\n const h = hex.replace('#', '');\n return {\n r: parseInt(h.substring(0, 2), 16),\n g: parseInt(h.substring(2, 4), 16),\n b: parseInt(h.substring(4, 6), 16),\n };\n}\n\n/**\n * 批量设置某颜色的透明度系列 CSS 变量\n */\nfunction setColorVariants(\n root: HTMLElement,\n prefix: string,\n hex: string,\n): void {\n const { r, g, b } = hexToRgb(hex);\n root.style.setProperty(`--${prefix}-bg`, `rgba(${r}, ${g}, ${b}, 0.06)`);\n root.style.setProperty(`--${prefix}-bg-hover`, `rgba(${r}, ${g}, ${b}, 0.10)`);\n root.style.setProperty(`--${prefix}-bg-active`, `rgba(${r}, ${g}, ${b}, 0.16)`);\n root.style.setProperty(`--${prefix}-border`, `rgba(${r}, ${g}, ${b}, 0.20)`);\n root.style.setProperty(`--${prefix}-fill`, `rgba(${r}, ${g}, ${b}, 0.10)`);\n}\n\n/**\n * 将 antd 主题色同步到 CSS 变量\n * 用于 SCSS 和非 antd 组件的样式引用\n */\nexport function applyThemeToCssVariables(primaryColor: string): void {\n const root = document.documentElement;\n\n root.style.setProperty('--primary-color', primaryColor);\n root.style.setProperty('--success-color', PALETTE.success);\n root.style.setProperty('--info-color', PALETTE.info);\n root.style.setProperty('--error-color', PALETTE.error);\n root.style.setProperty('--warning-color', PALETTE.warning);\n\n // 各颜色透明度系列\n setColorVariants(root, 'primary-color', primaryColor);\n setColorVariants(root, 'success-color', PALETTE.success);\n setColorVariants(root, 'info-color', PALETTE.info);\n setColorVariants(root, 'error-color', PALETTE.error);\n setColorVariants(root, 'warning-color', PALETTE.warning);\n}\n"],"names":["PALETTE","generateTheme","primaryColor","hexToRgb","hex","h","setColorVariants","root","prefix","g","b","applyThemeToCssVariables"],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sources":["../../src/theme/theme.ts"],"sourcesContent":["import type { ThemeConfig } from 'antd';\nimport { LAYOUT_TOKENS, PALETTE } from './constants';\n\n/**\n * Marsun Components Core - Ant Design 主题配置\n *\n * 分层说明:\n * 1. Design Token(全局层):颜色、字号、间距、圆角等基础变量\n * 2. Semantic Token(语义层):别名 token,映射全局 token 的语义用途\n * 3. Component Token(组件层):按组件定制,替代 global.css 中的 :global 覆盖\n */\n\n/**\n * 根据主色生成完整的 Ant Design 主题配置\n * @param primaryColor - 主题主色,来自系统设置\n */\nexport function generateTheme(primaryColor: string): ThemeConfig {\n return {\n token: {\n // ====== 颜色 ======\n colorPrimary: primaryColor,\n colorSuccess: PALETTE.success,\n colorWarning: PALETTE.warning,\n colorError: PALETTE.error,\n colorInfo: PALETTE.info,\n colorLink: primaryColor,\n colorTextBase: PALETTE.textBase,\n\n // 文字\n colorText: PALETTE.textBase,\n colorTextSecondary: PALETTE.textSecondary,\n colorTextTertiary: PALETTE.textTertiary,\n colorTextDisabled: PALETTE.textDisabled,\n\n // 背景\n colorBgContainer: PALETTE.bgWhite,\n colorBgLayout: PALETTE.bgGrey,\n colorBgElevated: PALETTE.bgWhite,\n // colorTextLightSolid 勿改为 tooltip 深色 — Button primary 文字依赖此 token(须为浅色)\n\n // 边框\n colorBorder: PALETTE.borderSeparator,\n colorBorderSecondary: PALETTE.borderSeparator,\n colorSplit: PALETTE.borderSeparator,\n\n // 填充\n colorFill: PALETTE.bgGreyDark,\n colorFillSecondary: PALETTE.bgGreyNormal,\n colorFillTertiary: PALETTE.bgGreyLight,\n colorFillQuaternary: PALETTE.bgGrey,\n\n // ====== 字体 ======\n fontSize: 14,\n fontSizeSM: 12,\n fontSizeLG: 16,\n fontSizeXL: 20,\n fontSizeHeading1: 38,\n fontSizeHeading2: 30,\n fontSizeHeading3: 24,\n fontSizeHeading4: 20,\n fontSizeHeading5: 16,\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'\",\n lineHeight: 1.8,\n lineHeightSM: 1.5,\n lineHeightLG: 2.2,\n\n // ====== 圆角 ======\n borderRadius: 4,\n borderRadiusSM: 2,\n borderRadiusLG: 8,\n\n // ====== 间距 ======\n padding: 16,\n paddingSM: 12,\n paddingLG: 24,\n paddingXL: 32,\n paddingXS: 8,\n margin: 16,\n marginSM: 12,\n marginLG: 24,\n marginXL: 32,\n marginXS: 8,\n\n // ====== 阴影 ======\n boxShadow:\n '0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02)',\n boxShadowSecondary:\n '0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)',\n\n // ====== 动画 ======\n motionDurationSlow: '0.3s',\n motionDurationMid: '0.2s',\n motionDurationFast: '0.1s',\n\n // ====== 控件 ======\n controlHeight: 32,\n controlHeightSM: 24,\n controlHeightLG: 40,\n controlHeightXS: 16,\n\n // ====== 弹层 ======\n zIndexPopupBase: LAYOUT_TOKENS.zIndexPopupBase,\n },\n\n components: {\n // ====== Button ======\n Button: {\n contentFontSizeSM: 12,\n contentFontSizeLG: 16,\n contentLineHeightSM: 1.5,\n paddingInlineSM: 8,\n paddingInline: 12,\n paddingInlineLG: 16,\n defaultShadow: 'none',\n primaryShadow: 'none',\n dangerShadow: 'none',\n borderRadius: 4,\n borderRadiusSM: 4,\n borderRadiusLG: 4,\n primaryColor: PALETTE.bgWhite,\n dangerColor: PALETTE.bgWhite,\n },\n\n // ====== Table ======\n Table: {\n headerBg: PALETTE.bgBlueTint,\n headerColor: PALETTE.textBase,\n headerBorderRadius: 4,\n headerSortActiveBg: PALETTE.bgGreyNormal,\n headerSortHoverBg: PALETTE.bgGreyNormal,\n headerFilterHoverBg: PALETTE.bgGreyNormal,\n rowHoverBg: PALETTE.bgGrey,\n // rowHoverColor: PALETTE.textBase,\n rowSelectedBg: `${primaryColor}10`,\n rowSelectedHoverBg: `${primaryColor}20`,\n borderColor: PALETTE.borderSeparator,\n // headerCellSplitColor: 'transparent',\n cellPaddingBlock: 8,\n cellPaddingInline: 24,\n cellPaddingBlockMD: 6,\n cellPaddingInlineMD: 24,\n cellPaddingBlockSM: 6,\n cellPaddingInlineSM: 8,\n fontSize: 14,\n fontSizeSM: 12,\n },\n\n // ====== Pagination ======\n Pagination: {\n fontSize: 12,\n itemSize: 24,\n itemSizeSM: 20,\n itemActiveBg: primaryColor,\n itemActiveColor: PALETTE.bgWhite,\n itemInputBg: PALETTE.bgWhite,\n // itemBorderColor: PALETTE.borderLight,\n // itemBorderRadiusSM: 2,\n },\n\n // ====== Modal ======\n Modal: {\n contentBg: PALETTE.bgWhite,\n headerBg: PALETTE.bgWhite,\n footerBg: PALETTE.bgWhite,\n titleFontSize: 16,\n titleLineHeight: 1.5,\n },\n\n // ====== Menu ======\n Menu: {\n itemBorderRadius: 4,\n itemMarginBlock: 4,\n itemMarginInline: 8,\n itemHeight: 40,\n itemColor: PALETTE.textBase,\n itemHoverColor: primaryColor,\n itemSelectedColor: primaryColor,\n itemSelectedBg: `${primaryColor}10`,\n subMenuItemBorderRadius: 4,\n collapsedIconSize: 16,\n iconMarginInlineEnd: 10,\n },\n\n // ====== Select ======\n Select: {\n optionSelectedBg: `${primaryColor}10`,\n optionSelectedColor: primaryColor,\n optionFontSize: 14,\n optionLineHeight: 1.8,\n optionPadding: '5px 12px',\n selectorBg: PALETTE.bgWhite,\n singleItemHeightLG: 40,\n },\n\n // ====== Input ======\n Input: {\n colorTextDisabled: PALETTE.textDisabled,\n colorBgContainerDisabled: PALETTE.bgGreyNormal,\n },\n\n // ====== Tooltip ======\n Tooltip: {\n colorBgSpotlight: PALETTE.tooltipBg,\n colorTextLightSolid: PALETTE.tooltipColor,\n zIndexPopup: LAYOUT_TOKENS.zIndexPopupBase,\n },\n\n // ====== Popover ======\n Popover: {\n borderRadiusLG: 4,\n },\n\n // ====== Alert ======\n Alert: {\n withDescriptionIconSize: 14,\n // defaultBg: `${PALETTE.primary}10`,\n // infoBg: `${PALETTE.info}10`,\n // successBg: `${PALETTE.success}10`,\n // warningBg: `${PALETTE.warning}10`,\n // errorBg: `${PALETTE.error}10`,\n },\n\n // ====== Tag ======\n Tag: {\n borderRadiusSM: 4,\n defaultBg: 'rgba(102, 102, 102, 0.06)',\n defaultColor: PALETTE.textSecondary,\n },\n\n // ====== Card ======\n Card: {\n borderRadiusLG: 4,\n },\n\n // ====== Descriptions ======\n Descriptions: {\n labelBg: PALETTE.bgGrey,\n labelColor: PALETTE.textSecondary,\n contentColor: PALETTE.textBase,\n },\n\n // ====== Dropdown ======\n Dropdown: {\n borderRadiusLG: 4,\n paddingBlock: 4,\n },\n\n // ====== Checkbox ======\n Checkbox: {\n // marginInlineEnd: 8,\n },\n\n // ====== Segmented ======\n Segmented: {\n itemSelectedBg: PALETTE.bgWhite,\n itemColor: PALETTE.textSecondary,\n itemSelectedColor: PALETTE.textBase,\n // containerBg: PALETTE.bgGreyNormal,\n },\n\n // ====== Tabs ======\n Tabs: {\n itemSelectedColor: primaryColor,\n itemHoverColor: primaryColor,\n inkBarColor: primaryColor,\n },\n\n // ====== Form ======\n Form: {\n labelColor: PALETTE.textBase,\n labelFontSize: 14,\n verticalLabelPadding: '0 0 4px',\n },\n\n // ====== Timeline ======\n Timeline: {\n dotBg: 'transparent',\n itemPaddingBottom: 20,\n },\n\n // ====== Empty ======\n Empty: {\n // descriptionColor: PALETTE.textTertiary,\n },\n\n // ====== Spin ======\n Spin: {\n colorPrimary: primaryColor,\n },\n\n // ====== Upload ======\n Upload: {\n colorPrimary: primaryColor,\n colorPrimaryHover: primaryColor,\n },\n },\n };\n}\n\n/**\n * 将 hex 颜色解析为 RGB 分量\n */\nfunction hexToRgb(hex: string): { r: number; g: number; b: number } {\n const h = hex.replace('#', '');\n return {\n r: parseInt(h.substring(0, 2), 16),\n g: parseInt(h.substring(2, 4), 16),\n b: parseInt(h.substring(4, 6), 16),\n };\n}\n\n/**\n * 批量设置某颜色的透明度系列 CSS 变量\n */\nfunction setColorVariants(\n root: HTMLElement,\n prefix: string,\n hex: string,\n): void {\n const { r, g, b } = hexToRgb(hex);\n root.style.setProperty(`--${prefix}-bg`, `rgba(${r}, ${g}, ${b}, 0.06)`);\n root.style.setProperty(`--${prefix}-bg-hover`, `rgba(${r}, ${g}, ${b}, 0.10)`);\n root.style.setProperty(`--${prefix}-bg-active`, `rgba(${r}, ${g}, ${b}, 0.16)`);\n root.style.setProperty(`--${prefix}-border`, `rgba(${r}, ${g}, ${b}, 0.20)`);\n root.style.setProperty(`--${prefix}-fill`, `rgba(${r}, ${g}, ${b}, 0.10)`);\n}\n\n/**\n * 将 antd 主题色同步到 CSS 变量\n * 用于 SCSS 和非 antd 组件的样式引用\n */\nexport function applyThemeToCssVariables(primaryColor: string): void {\n const root = document.documentElement;\n\n root.style.setProperty('--primary-color', primaryColor);\n root.style.setProperty('--success-color', PALETTE.success);\n root.style.setProperty('--info-color', PALETTE.info);\n root.style.setProperty('--error-color', PALETTE.error);\n root.style.setProperty('--warning-color', PALETTE.warning);\n\n root.style.setProperty('--layout-header-height', LAYOUT_TOKENS.headerHeight);\n root.style.setProperty('--layout-sider-width', LAYOUT_TOKENS.siderWidth);\n\n root.style.setProperty('--font-size-default', LAYOUT_TOKENS.fontSizeDefault);\n root.style.setProperty('--font-size-small', LAYOUT_TOKENS.fontSizeSmall);\n root.style.setProperty('--font-size-large', LAYOUT_TOKENS.fontSizeLarge);\n root.style.setProperty('--font-size-18', LAYOUT_TOKENS.fontSize18);\n root.style.setProperty('--font-size-24', LAYOUT_TOKENS.fontSize24);\n\n root.style.setProperty('--line-height-default', LAYOUT_TOKENS.lineHeightDefault);\n root.style.setProperty('--line-height-middle', LAYOUT_TOKENS.lineHeightMiddle);\n root.style.setProperty('--line-height-small', LAYOUT_TOKENS.lineHeightSmall);\n root.style.setProperty('--line-height-large', LAYOUT_TOKENS.lineHeightLarge);\n\n root.style.setProperty('--font-color', PALETTE.textBase);\n root.style.setProperty('--font-color-disabled', PALETTE.textDisabled);\n root.style.setProperty('--font-color-grey', PALETTE.textSecondary);\n root.style.setProperty('--font-color-grey-1', PALETTE.textTertiary);\n root.style.setProperty('--font-color-grey-2', PALETTE.borderBase);\n root.style.setProperty('--font-color-grey-3', PALETTE.borderLight);\n root.style.setProperty('--font-color-grey-4', PALETTE.borderLighter);\n\n root.style.setProperty('--bg-color-white', PALETTE.bgWhite);\n root.style.setProperty('--bg-color-grey', PALETTE.bgGrey);\n root.style.setProperty('--bg-color-grey-1', PALETTE.bgGreyLight);\n root.style.setProperty('--bg-color-grey-2', PALETTE.bgGreyNormal);\n root.style.setProperty('--bg-color-grey-3', PALETTE.bgGreyDark);\n root.style.setProperty('--bg-color-grey-4', PALETTE.bgBlueTint);\n\n root.style.setProperty('--tag-default', PALETTE.tagDefault);\n root.style.setProperty('--tag-success', PALETTE.tagSuccess);\n root.style.setProperty('--tag-progress', PALETTE.tagProgress);\n root.style.setProperty('--tag-danger', PALETTE.tagDanger);\n root.style.setProperty('--tag-info', PALETTE.tagInfo);\n root.style.setProperty('--tag-other', PALETTE.tagOther);\n\n root.style.setProperty('--file-icon-word', PALETTE.fileIconWord);\n root.style.setProperty('--file-icon-pdf', PALETTE.fileIconPdf);\n root.style.setProperty('--file-icon-excel', PALETTE.fileIconExcel);\n root.style.setProperty('--file-icon-ppt', PALETTE.fileIconPpt);\n root.style.setProperty('--file-icon-image', PALETTE.fileIconImage);\n root.style.setProperty('--file-icon-markdown', PALETTE.fileIconMarkdown);\n root.style.setProperty('--file-icon-visio', PALETTE.fileIconVisio);\n root.style.setProperty('--file-icon-archive', PALETTE.fileIconArchive);\n root.style.setProperty('--file-icon-folder', PALETTE.fileIconFolder);\n root.style.setProperty('--file-icon-other', PALETTE.fileIconOther);\n\n root.style.setProperty('--tooltip-bg', PALETTE.tooltipBg);\n root.style.setProperty('--tooltip-color', PALETTE.tooltipColor);\n root.style.setProperty('--tooltip-info-bg', PALETTE.bgWhite);\n root.style.setProperty('--tooltip-info-color', PALETTE.textBase);\n\n setColorVariants(root, 'primary-color', primaryColor);\n setColorVariants(root, 'success-color', PALETTE.success);\n setColorVariants(root, 'info-color', PALETTE.info);\n setColorVariants(root, 'error-color', PALETTE.error);\n setColorVariants(root, 'warning-color', PALETTE.warning);\n}\n\n/** 项目级 CSS 变量覆盖(在 applyThemeToCssVariables 之后调用) */\nexport function applyCssTokenOverrides(\n overrides: Record<string, string>,\n target: HTMLElement = document.documentElement,\n): void {\n Object.entries(overrides).forEach(([key, value]) => {\n const varName = key.startsWith('--') ? key : `--${key}`;\n target.style.setProperty(varName, value);\n });\n}\n"],"names":["generateTheme","primaryColor","PALETTE","LAYOUT_TOKENS","hexToRgb","hex","h","setColorVariants","root","prefix","r","g","b","applyThemeToCssVariables","applyCssTokenOverrides","overrides","target","key","value","varName"],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Marsun Components Core — 公共 Design Tokens
3
+ * 项目接入:import '@hkyhy/marsun-components-core/tokens'
4
+ * 动态主色与透明度系列由 applyThemeToCssVariables() 在运行时覆盖
5
+ */
6
+ :root {
7
+ /* 基础颜色(与 antd theme token 同步,由 applyThemeToCssVariables 维护) */
8
+ --primary-color: #1677ff;
9
+ --success-color: #027a48;
10
+ --info-color: #155acf;
11
+ --error-color: #d14343;
12
+ --warning-color: #f09700;
13
+
14
+ /* 布局 */
15
+ --layout-header-height: 56px;
16
+ --layout-sider-width: 220px;
17
+
18
+ /* 字号(与 antd theme token 对齐) */
19
+ --font-size-default: 14px;
20
+ --font-size-small: 12px;
21
+ --font-size-large: 16px;
22
+ --font-size-18: 18px;
23
+ --font-size-24: 24px;
24
+
25
+ /* 行高(与 antd theme token 对齐) */
26
+ --line-height-default: 1.8;
27
+ --line-height-middle: 2;
28
+ --line-height-small: 1.5;
29
+ --line-height-large: 2.2;
30
+
31
+ /* 字体颜色(与 antd theme token 对齐) */
32
+ --font-color: #222222;
33
+ --font-color-disabled: rgba(0, 0, 0, 0.25);
34
+ --font-color-grey: #666666;
35
+ --font-color-grey-1: #999999;
36
+ --font-color-grey-2: #cccccc;
37
+ --font-color-grey-3: #dddddd;
38
+ --font-color-grey-4: #eeeeee;
39
+
40
+ /* 背景色(与 antd theme token 对齐) */
41
+ --bg-color-white: #ffffff;
42
+ --bg-color-grey: #fafafa;
43
+ --bg-color-grey-1: #f8f8f8;
44
+ --bg-color-grey-2: #f3f3f3;
45
+ --bg-color-grey-3: #f1f1f1;
46
+ --bg-color-grey-4: #fafcff;
47
+
48
+ /* 标签 */
49
+ --tag-default: #666666;
50
+ --tag-success: #027a48;
51
+ --tag-progress: #f09700;
52
+ --tag-danger: #d14343;
53
+ --tag-info: #155acf;
54
+ --tag-other: #6740c3;
55
+
56
+ /* primary 透明度系列(由 applyThemeToCssVariables 维护) */
57
+ --primary-color-bg: rgba(22, 119, 255, 0.06);
58
+ --primary-color-bg-hover: rgba(22, 119, 255, 0.1);
59
+ --primary-color-bg-active: rgba(22, 119, 255, 0.16);
60
+ --primary-color-border: rgba(22, 119, 255, 0.2);
61
+ --primary-color-fill: rgba(22, 119, 255, 0.1);
62
+
63
+ /* success 透明度系列(由 applyThemeToCssVariables 维护) */
64
+ --success-color-bg: rgba(2, 122, 72, 0.06);
65
+ --success-color-bg-hover: rgba(2, 122, 72, 0.1);
66
+ --success-color-bg-active: rgba(2, 122, 72, 0.16);
67
+ --success-color-border: rgba(2, 122, 72, 0.2);
68
+ --success-color-fill: rgba(2, 122, 72, 0.1);
69
+
70
+ /* info 透明度系列(由 applyThemeToCssVariables 维护) */
71
+ --info-color-bg: rgba(21, 90, 207, 0.06);
72
+ --info-color-bg-hover: rgba(21, 90, 207, 0.1);
73
+ --info-color-bg-active: rgba(21, 90, 207, 0.16);
74
+ --info-color-border: rgba(21, 90, 207, 0.2);
75
+ --info-color-fill: rgba(21, 90, 207, 0.1);
76
+
77
+ /* error 透明度系列(由 applyThemeToCssVariables 维护) */
78
+ --error-color-bg: rgba(209, 67, 67, 0.06);
79
+ --error-color-bg-hover: rgba(209, 67, 67, 0.1);
80
+ --error-color-bg-active: rgba(209, 67, 67, 0.16);
81
+ --error-color-border: rgba(209, 67, 67, 0.2);
82
+ --error-color-fill: rgba(209, 67, 67, 0.1);
83
+
84
+ /* warning 透明度系列(由 applyThemeToCssVariables 维护) */
85
+ --warning-color-bg: rgba(240, 151, 0, 0.06);
86
+ --warning-color-bg-hover: rgba(240, 151, 0, 0.1);
87
+ --warning-color-bg-active: rgba(240, 151, 0, 0.16);
88
+ --warning-color-border: rgba(240, 151, 0, 0.2);
89
+ --warning-color-fill: rgba(240, 151, 0, 0.1);
90
+
91
+ /* 文件类型图标颜色 */
92
+ --file-icon-word: #1677ff;
93
+ --file-icon-pdf: #f5222d;
94
+ --file-icon-excel: #00b42a;
95
+ --file-icon-ppt: #ff7d00;
96
+ --file-icon-image: #722ed1;
97
+ --file-icon-markdown: #595959;
98
+ --file-icon-visio: #13c2c2;
99
+ --file-icon-archive: #eb2f96;
100
+ --file-icon-folder: #faad14;
101
+ --file-icon-other: #8c8c8c;
102
+
103
+ /* Tooltip — 简单提示白底深字;详情卡片见 TooltipInfo(--tooltip-info-*) */
104
+ --tooltip-bg: #ffffff;
105
+ --tooltip-color: #222222;
106
+ --tooltip-info-bg: var(--bg-color-white);
107
+ --tooltip-info-color: var(--font-color);
108
+ }
109
+
110
+ /* 与 maoyang _antd-overrides 一致:箭头与气泡同色;CSS 变量兜底(弹层挂 body 时 theme 仍生效) */
111
+ .ant-tooltip {
112
+ z-index: 1200;
113
+ }
114
+
115
+ .ant-tooltip .ant-tooltip-container {
116
+ color: var(--tooltip-color);
117
+ background-color: var(--tooltip-bg);
118
+ border: 1px solid var(--font-color-grey-3);
119
+ box-shadow:
120
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08),
121
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12);
122
+ }
123
+
124
+ .ant-tooltip .ant-tooltip-arrow::before {
125
+ background: var(--tooltip-bg) !important;
126
+ }
127
+
128
+ .text-primary {
129
+ color: var(--primary-color);
130
+ }
131
+
132
+ .bg-primary {
133
+ background-color: var(--primary-color);
134
+ }
135
+
136
+ /* Lucide 图标在 antd Button 内跟随按钮文字色 */
137
+ .ant-btn-icon .marsun-icon {
138
+ color: inherit;
139
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hkyhy/marsun-components-core",
3
- "version": "0.1.12",
3
+ "version": "0.1.17",
4
4
  "description": "Marsun pure UI component library",
5
5
  "type": "module",
6
6
  "repository": {
@@ -27,7 +27,8 @@
27
27
  "import": "./dist/theme/index.js",
28
28
  "types": "./dist/theme/index.d.ts"
29
29
  },
30
- "./styles": "./dist/styles/global.css"
30
+ "./styles": "./dist/styles/global.css",
31
+ "./tokens": "./dist/theme/tokens.css"
31
32
  },
32
33
  "sideEffects": [
33
34
  "**/*.css",
@@ -39,7 +40,10 @@
39
40
  "scripts": {
40
41
  "predev": "node dev/scripts/collect-examples.mjs",
41
42
  "dev": "vite --config vite.config.dev.ts",
42
- "build": "tsc -p tsconfig.build.json && vite build --config vite.config.lib.ts && node -e \"const fs=require('fs'); fs.mkdirSync('dist/styles',{recursive:true}); fs.copyFileSync('dist/marsun-components-core.css','dist/styles/global.css');\"",
43
+ "version:check": "node scripts/version-check.mjs",
44
+ "version:check:apply": "node scripts/version-check.mjs --apply",
45
+ "version:sync": "node scripts/version-check.mjs --apply-published",
46
+ "build": "tsc -p tsconfig.build.json && vite build --config vite.config.lib.ts && node -e \"const fs=require('fs');const path=require('path');fs.mkdirSync('dist/styles',{recursive:true});fs.mkdirSync('dist/theme',{recursive:true});fs.copyFileSync('dist/marsun-components-core.css','dist/styles/global.css');fs.copyFileSync(path.join('src','theme','tokens.css'),'dist/theme/tokens.css');\"",
43
47
  "prepublishOnly": "npm run build",
44
48
  "prebuild:showcase": "node dev/scripts/collect-examples.mjs",
45
49
  "build:showcase": "vite build --config vite.config.dev.ts",