@hkyhy/marsun-components-core 0.1.2

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 (139) hide show
  1. package/README.md +99 -0
  2. package/dist/components/AgentHub/AgentHubAccessGuard.js +12 -0
  3. package/dist/components/AgentHub/AgentHubAccessGuard.js.map +1 -0
  4. package/dist/components/AgentHub/AgentHubIndexRedirect.js +11 -0
  5. package/dist/components/AgentHub/AgentHubIndexRedirect.js.map +1 -0
  6. package/dist/components/AgentHub/ChatSessionAccessGuard.js +11 -0
  7. package/dist/components/AgentHub/ChatSessionAccessGuard.js.map +1 -0
  8. package/dist/components/Auth/PermissionGuard.js +18 -0
  9. package/dist/components/Auth/PermissionGuard.js.map +1 -0
  10. package/dist/components/Auth/ProtectedRoute.js +21 -0
  11. package/dist/components/Auth/ProtectedRoute.js.map +1 -0
  12. package/dist/components/Auth/hasPermission.js +7 -0
  13. package/dist/components/Auth/hasPermission.js.map +1 -0
  14. package/dist/components/Descriptions/CommonDescriptions.js +14 -0
  15. package/dist/components/Descriptions/CommonDescriptions.js.map +1 -0
  16. package/dist/components/File/FileItem/index.js +82 -0
  17. package/dist/components/File/FileItem/index.js.map +1 -0
  18. package/dist/components/File/FileItem/style.module.scss.js +18 -0
  19. package/dist/components/File/FileItem/style.module.scss.js.map +1 -0
  20. package/dist/components/File/FileLink/index.js +27 -0
  21. package/dist/components/File/FileLink/index.js.map +1 -0
  22. package/dist/components/File/FileLink/style.module.scss.js +10 -0
  23. package/dist/components/File/FileLink/style.module.scss.js.map +1 -0
  24. package/dist/components/File/FilePreview/index.js +49 -0
  25. package/dist/components/File/FilePreview/index.js.map +1 -0
  26. package/dist/components/File/FilePreview/style.module.scss.js +5 -0
  27. package/dist/components/File/FilePreview/style.module.scss.js.map +1 -0
  28. package/dist/components/File/FilePreviewModal/index.js +12 -0
  29. package/dist/components/File/FilePreviewModal/index.js.map +1 -0
  30. package/dist/components/File/fileDisplay.js +67 -0
  31. package/dist/components/File/fileDisplay.js.map +1 -0
  32. package/dist/components/Filter/CommonFilter/index.js +81 -0
  33. package/dist/components/Filter/CommonFilter/index.js.map +1 -0
  34. package/dist/components/Filter/CommonFilter/style.module.scss.js +20 -0
  35. package/dist/components/Filter/CommonFilter/style.module.scss.js.map +1 -0
  36. package/dist/components/Filter/FilterDateRange/index.js +97 -0
  37. package/dist/components/Filter/FilterDateRange/index.js.map +1 -0
  38. package/dist/components/Filter/FilterDateRange/style.module.scss.js +10 -0
  39. package/dist/components/Filter/FilterDateRange/style.module.scss.js.map +1 -0
  40. package/dist/components/Filter/FilterInput/index.js +56 -0
  41. package/dist/components/Filter/FilterInput/index.js.map +1 -0
  42. package/dist/components/Filter/FilterNumberRange/index.js +81 -0
  43. package/dist/components/Filter/FilterNumberRange/index.js.map +1 -0
  44. package/dist/components/Filter/FilterNumberRange/style.module.scss.js +9 -0
  45. package/dist/components/Filter/FilterNumberRange/style.module.scss.js.map +1 -0
  46. package/dist/components/Filter/FilterPanel/index.js +21 -0
  47. package/dist/components/Filter/FilterPanel/index.js.map +1 -0
  48. package/dist/components/Filter/FilterPanel/style.module.scss.js +8 -0
  49. package/dist/components/Filter/FilterPanel/style.module.scss.js.map +1 -0
  50. package/dist/components/Filter/FilterPopover/index.js +52 -0
  51. package/dist/components/Filter/FilterPopover/index.js.map +1 -0
  52. package/dist/components/Filter/FilterSelect/index.js +160 -0
  53. package/dist/components/Filter/FilterSelect/index.js.map +1 -0
  54. package/dist/components/Filter/FilterSelect/style.module.scss.js +16 -0
  55. package/dist/components/Filter/FilterSelect/style.module.scss.js.map +1 -0
  56. package/dist/components/Filter/FilterTreeSelect/index.js +249 -0
  57. package/dist/components/Filter/FilterTreeSelect/index.js.map +1 -0
  58. package/dist/components/Filter/FilterTreeSelect/style.module.scss.js +19 -0
  59. package/dist/components/Filter/FilterTreeSelect/style.module.scss.js.map +1 -0
  60. package/dist/components/Filter/FilterTrigger/index.js +31 -0
  61. package/dist/components/Filter/FilterTrigger/index.js.map +1 -0
  62. package/dist/components/Filter/FilterTrigger/style.module.scss.js +10 -0
  63. package/dist/components/Filter/FilterTrigger/style.module.scss.js.map +1 -0
  64. package/dist/components/Filter/types.js +12 -0
  65. package/dist/components/Filter/types.js.map +1 -0
  66. package/dist/components/Filter/useFilterState.js +35 -0
  67. package/dist/components/Filter/useFilterState.js.map +1 -0
  68. package/dist/components/Form/FetchSelect.js +37 -0
  69. package/dist/components/Form/FetchSelect.js.map +1 -0
  70. package/dist/components/Form/FetchTreeSelect.js +28 -0
  71. package/dist/components/Form/FetchTreeSelect.js.map +1 -0
  72. package/dist/components/Form/PersonOptionRow/index.js +37 -0
  73. package/dist/components/Form/PersonOptionRow/index.js.map +1 -0
  74. package/dist/components/Form/PersonOptionRow/style.module.scss.js +11 -0
  75. package/dist/components/Form/PersonOptionRow/style.module.scss.js.map +1 -0
  76. package/dist/components/Form/StepForm.js +34 -0
  77. package/dist/components/Form/StepForm.js.map +1 -0
  78. package/dist/components/Icons/index.js +245 -0
  79. package/dist/components/Icons/index.js.map +1 -0
  80. package/dist/components/Layout/PageHeaderLayout/index.js +41 -0
  81. package/dist/components/Layout/PageHeaderLayout/index.js.map +1 -0
  82. package/dist/components/Layout/PageHeaderLayout/style.module.scss.js +10 -0
  83. package/dist/components/Layout/PageHeaderLayout/style.module.scss.js.map +1 -0
  84. package/dist/components/Modal/StepModal/index.js +64 -0
  85. package/dist/components/Modal/StepModal/index.js.map +1 -0
  86. package/dist/components/Modal/StepModal/style.module.scss.js +9 -0
  87. package/dist/components/Modal/StepModal/style.module.scss.js.map +1 -0
  88. package/dist/components/Stat/StatCard/index.js +34 -0
  89. package/dist/components/Stat/StatCard/index.js.map +1 -0
  90. package/dist/components/Stat/StatCard/style.module.scss.js +7 -0
  91. package/dist/components/Stat/StatCard/style.module.scss.js.map +1 -0
  92. package/dist/components/Stat/StatCardList.js +20 -0
  93. package/dist/components/Stat/StatCardList.js.map +1 -0
  94. package/dist/components/Stat/StatPendingBreakdown/index.js +38 -0
  95. package/dist/components/Stat/StatPendingBreakdown/index.js.map +1 -0
  96. package/dist/components/Stat/StatPendingBreakdown/style.module.scss.js +9 -0
  97. package/dist/components/Stat/StatPendingBreakdown/style.module.scss.js.map +1 -0
  98. package/dist/components/Tag/FileTags.js +8 -0
  99. package/dist/components/Tag/FileTags.js.map +1 -0
  100. package/dist/components/Tag/SemanticTag.js +92 -0
  101. package/dist/components/Tag/SemanticTag.js.map +1 -0
  102. package/dist/components/Tag/Tags/index.js +32 -0
  103. package/dist/components/Tag/Tags/index.js.map +1 -0
  104. package/dist/components/Tag/Tags/style.module.scss.js +9 -0
  105. package/dist/components/Tag/Tags/style.module.scss.js.map +1 -0
  106. package/dist/components/TooltipInfo/TooltipInfo.js +31 -0
  107. package/dist/components/TooltipInfo/TooltipInfo.js.map +1 -0
  108. package/dist/components/Tour/AppTour/index.js +40 -0
  109. package/dist/components/Tour/AppTour/index.js.map +1 -0
  110. package/dist/components/Tour/AppTour/style.module.scss.js +7 -0
  111. package/dist/components/Tour/AppTour/style.module.scss.js.map +1 -0
  112. package/dist/components/VirtualScrollbar/VirtualScrollbar/index.js +97 -0
  113. package/dist/components/VirtualScrollbar/VirtualScrollbar/index.js.map +1 -0
  114. package/dist/components/VirtualScrollbar/VirtualScrollbar/style.module.scss.js +12 -0
  115. package/dist/components/VirtualScrollbar/VirtualScrollbar/style.module.scss.js.map +1 -0
  116. package/dist/components/VirtualScrollbar/useVirtualScrollbar.js +97 -0
  117. package/dist/components/VirtualScrollbar/useVirtualScrollbar.js.map +1 -0
  118. package/dist/hooks/useFetchData.js +69 -0
  119. package/dist/hooks/useFetchData.js.map +1 -0
  120. package/dist/index.d.ts +28 -0
  121. package/dist/index.js +182 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/marsun-components-core.css +1 -0
  124. package/dist/provider/MarsunCoreProvider.js +51 -0
  125. package/dist/provider/MarsunCoreProvider.js.map +1 -0
  126. package/dist/provider/context.js +27 -0
  127. package/dist/provider/context.js.map +1 -0
  128. package/dist/theme/constants.js +15 -0
  129. package/dist/theme/constants.js.map +1 -0
  130. package/dist/theme/index.d.ts +2 -0
  131. package/dist/theme/index.js +9 -0
  132. package/dist/theme/index.js.map +1 -0
  133. package/dist/theme/theme.js +286 -0
  134. package/dist/theme/theme.js.map +1 -0
  135. package/dist/utils/format.js +9 -0
  136. package/dist/utils/format.js.map +1 -0
  137. package/dist/utils/resolveMaybeFn.js +11 -0
  138. package/dist/utils/resolveMaybeFn.js.map +1 -0
  139. package/package.json +83 -0
@@ -0,0 +1,286 @@
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
+ };
24
+ function d(o) {
25
+ return {
26
+ token: {
27
+ // ====== 颜色 ======
28
+ colorPrimary: o,
29
+ colorSuccess: e.success,
30
+ colorWarning: e.warning,
31
+ colorError: e.error,
32
+ colorInfo: e.info,
33
+ colorLink: o,
34
+ colorTextBase: e.textBase,
35
+ // 文字
36
+ colorText: e.textBase,
37
+ colorTextSecondary: e.textSecondary,
38
+ colorTextTertiary: e.textTertiary,
39
+ colorTextDisabled: e.textDisabled,
40
+ // 背景
41
+ colorBgContainer: e.bgWhite,
42
+ colorBgLayout: e.bgGrey,
43
+ colorBgElevated: e.bgWhite,
44
+ colorBgSpotlight: e.bgGreyDark,
45
+ // 边框
46
+ colorBorder: e.borderSeparator,
47
+ colorBorderSecondary: e.borderSeparator,
48
+ colorSplit: e.borderSeparator,
49
+ // 填充
50
+ colorFill: e.bgGreyDark,
51
+ colorFillSecondary: e.bgGreyNormal,
52
+ colorFillTertiary: e.bgGreyLight,
53
+ colorFillQuaternary: e.bgGrey,
54
+ // ====== 字体 ======
55
+ fontSize: 14,
56
+ fontSizeSM: 12,
57
+ fontSizeLG: 16,
58
+ fontSizeXL: 20,
59
+ fontSizeHeading1: 38,
60
+ fontSizeHeading2: 30,
61
+ fontSizeHeading3: 24,
62
+ fontSizeHeading4: 20,
63
+ fontSizeHeading5: 16,
64
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'",
65
+ lineHeight: 1.8,
66
+ lineHeightSM: 1.5,
67
+ lineHeightLG: 2.2,
68
+ // ====== 圆角 ======
69
+ borderRadius: 4,
70
+ borderRadiusSM: 2,
71
+ borderRadiusLG: 8,
72
+ // ====== 间距 ======
73
+ padding: 16,
74
+ paddingSM: 12,
75
+ paddingLG: 24,
76
+ paddingXL: 32,
77
+ paddingXS: 8,
78
+ margin: 16,
79
+ marginSM: 12,
80
+ marginLG: 24,
81
+ marginXL: 32,
82
+ marginXS: 8,
83
+ // ====== 阴影 ======
84
+ boxShadow: "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)",
85
+ boxShadowSecondary: "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)",
86
+ // ====== 动画 ======
87
+ motionDurationSlow: "0.3s",
88
+ motionDurationMid: "0.2s",
89
+ motionDurationFast: "0.1s",
90
+ // ====== 控件 ======
91
+ controlHeight: 32,
92
+ controlHeightSM: 24,
93
+ controlHeightLG: 40,
94
+ controlHeightXS: 16
95
+ },
96
+ components: {
97
+ // ====== Button ======
98
+ Button: {
99
+ contentFontSizeSM: 12,
100
+ contentFontSizeLG: 16,
101
+ contentLineHeightSM: 1.5,
102
+ paddingInlineSM: 8,
103
+ paddingInline: 12,
104
+ paddingInlineLG: 16,
105
+ defaultShadow: "none",
106
+ primaryShadow: "none",
107
+ dangerShadow: "none",
108
+ borderRadius: 4,
109
+ borderRadiusSM: 4,
110
+ borderRadiusLG: 4
111
+ },
112
+ // ====== Table ======
113
+ Table: {
114
+ headerBg: e.bgBlueTint,
115
+ headerColor: e.textBase,
116
+ headerBorderRadius: 4,
117
+ headerSortActiveBg: e.bgGreyNormal,
118
+ headerSortHoverBg: e.bgGreyNormal,
119
+ headerFilterHoverBg: e.bgGreyNormal,
120
+ rowHoverBg: e.bgGrey,
121
+ // rowHoverColor: PALETTE.textBase,
122
+ rowSelectedBg: `${o}10`,
123
+ rowSelectedHoverBg: `${o}20`,
124
+ borderColor: e.borderSeparator,
125
+ // headerCellSplitColor: 'transparent',
126
+ cellPaddingBlock: 8,
127
+ cellPaddingInline: 24,
128
+ cellPaddingBlockMD: 6,
129
+ cellPaddingInlineMD: 24,
130
+ cellPaddingBlockSM: 6,
131
+ cellPaddingInlineSM: 8,
132
+ fontSize: 14,
133
+ fontSizeSM: 12
134
+ },
135
+ // ====== Pagination ======
136
+ Pagination: {
137
+ fontSize: 12,
138
+ itemSize: 24,
139
+ itemSizeSM: 20,
140
+ itemActiveBg: o,
141
+ itemActiveColor: e.bgWhite,
142
+ itemInputBg: e.bgWhite
143
+ // itemBorderColor: PALETTE.borderLight,
144
+ // itemBorderRadiusSM: 2,
145
+ },
146
+ // ====== Modal ======
147
+ Modal: {
148
+ contentBg: e.bgWhite,
149
+ headerBg: e.bgWhite,
150
+ footerBg: e.bgWhite,
151
+ titleFontSize: 16,
152
+ titleLineHeight: 1.5
153
+ },
154
+ // ====== Menu ======
155
+ Menu: {
156
+ itemBorderRadius: 4,
157
+ itemMarginBlock: 4,
158
+ itemMarginInline: 8,
159
+ itemHeight: 40,
160
+ itemColor: e.textBase,
161
+ itemHoverColor: o,
162
+ itemSelectedColor: o,
163
+ itemSelectedBg: `${o}10`,
164
+ subMenuItemBorderRadius: 4,
165
+ collapsedIconSize: 16,
166
+ iconMarginInlineEnd: 10
167
+ },
168
+ // ====== Select ======
169
+ Select: {
170
+ optionSelectedBg: `${o}10`,
171
+ optionSelectedColor: o,
172
+ optionFontSize: 14,
173
+ optionLineHeight: 1.8,
174
+ optionPadding: "5px 12px",
175
+ selectorBg: e.bgWhite,
176
+ singleItemHeightLG: 40
177
+ },
178
+ // ====== Input ======
179
+ Input: {
180
+ colorTextDisabled: e.textDisabled,
181
+ colorBgContainerDisabled: e.bgGreyNormal
182
+ },
183
+ // ====== Tooltip ======
184
+ Tooltip: {
185
+ colorBgSpotlight: e.bgWhite,
186
+ colorTextLightSolid: e.textBase
187
+ },
188
+ // ====== Popover ======
189
+ Popover: {
190
+ borderRadiusLG: 4
191
+ },
192
+ // ====== Alert ======
193
+ Alert: {
194
+ withDescriptionIconSize: 14
195
+ // defaultBg: `${PALETTE.primary}10`,
196
+ // infoBg: `${PALETTE.info}10`,
197
+ // successBg: `${PALETTE.success}10`,
198
+ // warningBg: `${PALETTE.warning}10`,
199
+ // errorBg: `${PALETTE.error}10`,
200
+ },
201
+ // ====== Tag ======
202
+ Tag: {
203
+ borderRadiusSM: 4,
204
+ defaultBg: "rgba(102, 102, 102, 0.06)",
205
+ defaultColor: e.textSecondary
206
+ },
207
+ // ====== Card ======
208
+ Card: {
209
+ borderRadiusLG: 4
210
+ },
211
+ // ====== Descriptions ======
212
+ Descriptions: {
213
+ labelBg: e.bgGrey,
214
+ labelColor: e.textSecondary,
215
+ contentColor: e.textBase
216
+ },
217
+ // ====== Dropdown ======
218
+ Dropdown: {
219
+ borderRadiusLG: 4,
220
+ paddingBlock: 4
221
+ },
222
+ // ====== Checkbox ======
223
+ Checkbox: {
224
+ // marginInlineEnd: 8,
225
+ },
226
+ // ====== Segmented ======
227
+ Segmented: {
228
+ itemSelectedBg: e.bgWhite,
229
+ itemColor: e.textSecondary,
230
+ itemSelectedColor: e.textBase
231
+ // containerBg: PALETTE.bgGreyNormal,
232
+ },
233
+ // ====== Tabs ======
234
+ Tabs: {
235
+ itemSelectedColor: o,
236
+ itemHoverColor: o,
237
+ inkBarColor: o
238
+ },
239
+ // ====== Form ======
240
+ Form: {
241
+ labelColor: e.textBase,
242
+ labelFontSize: 14,
243
+ verticalLabelPadding: "0 0 4px"
244
+ },
245
+ // ====== Timeline ======
246
+ Timeline: {
247
+ dotBg: "transparent",
248
+ itemPaddingBottom: 20
249
+ },
250
+ // ====== Empty ======
251
+ Empty: {
252
+ // descriptionColor: PALETTE.textTertiary,
253
+ },
254
+ // ====== Spin ======
255
+ Spin: {
256
+ colorPrimary: o
257
+ },
258
+ // ====== Upload ======
259
+ Upload: {
260
+ colorPrimary: o,
261
+ colorPrimaryHover: o
262
+ }
263
+ }
264
+ };
265
+ }
266
+ function g(o) {
267
+ const t = o.replace("#", "");
268
+ return {
269
+ r: parseInt(t.substring(0, 2), 16),
270
+ g: parseInt(t.substring(2, 4), 16),
271
+ b: parseInt(t.substring(4, 6), 16)
272
+ };
273
+ }
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)`);
277
+ }
278
+ function c(o) {
279
+ 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);
281
+ }
282
+ export {
283
+ c as applyThemeToCssVariables,
284
+ d as generateTheme
285
+ };
286
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,9 @@
1
+ function r(o) {
2
+ if (o === 0) return "0 B";
3
+ const i = ["B", "KB", "MB", "GB", "TB"], t = Math.floor(Math.log(o) / Math.log(1024));
4
+ return `${(o / Math.pow(1024, t)).toFixed(t === 0 ? 0 : 1)} ${i[t]}`;
5
+ }
6
+ export {
7
+ r as formatFileSize
8
+ };
9
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sources":["../../src/utils/format.ts"],"sourcesContent":["/** 格式化文件大小(纯 UI 展示) */\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n const size = bytes / Math.pow(1024, i);\n return `${size.toFixed(i === 0 ? 0 : 1)} ${units[i]}`;\n}\n"],"names":["formatFileSize","bytes","units","i"],"mappings":"AACO,SAASA,EAAeC,GAAuB;AACpD,MAAIA,MAAU,EAAG,QAAO;AACxB,QAAMC,IAAQ,CAAC,KAAK,MAAM,MAAM,MAAM,IAAI,GACpCC,IAAI,KAAK,MAAM,KAAK,IAAIF,CAAK,IAAI,KAAK,IAAI,IAAI,CAAC;AAErD,SAAO,IADMA,IAAQ,KAAK,IAAI,MAAME,CAAC,GACtB,QAAQA,MAAM,IAAI,IAAI,CAAC,CAAC,IAAID,EAAMC,CAAC,CAAC;AACrD;"}
@@ -0,0 +1,11 @@
1
+ function t(r, e, n) {
2
+ return r === void 0 ? n : typeof r == "function" ? r(e) : r;
3
+ }
4
+ function o(r, e, n = {}) {
5
+ return r !== void 0 ? t(r, n, !0) : e !== void 0 ? !t(e, n, !1) : !0;
6
+ }
7
+ export {
8
+ t as resolveMaybeFn,
9
+ o as resolveVisible
10
+ };
11
+ //# sourceMappingURL=resolveMaybeFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveMaybeFn.js","sources":["../../src/utils/resolveMaybeFn.ts"],"sourcesContent":["/** 值或基于上下文的函数 */\nexport type MaybeFn<T, Ctx = Record<string, unknown>> = T | ((ctx: Ctx) => T);\n\n/** 可见性:boolean 或函数式 */\nexport type Visibility = MaybeFn<boolean>;\n\n/**\n * 解析 MaybeFn 值\n * display 与 hidden 互斥时:display 优先;均未传则默认展示\n */\nexport function resolveMaybeFn<T, Ctx = Record<string, unknown>>(\n value: MaybeFn<T, Ctx> | undefined,\n ctx: Ctx,\n fallback: T,\n): T {\n if (value === undefined) return fallback;\n return typeof value === 'function' ? (value as (ctx: Ctx) => T)(ctx) : value;\n}\n\n/** 根据 display / hidden 计算是否可见 */\nexport function resolveVisible(\n display: Visibility | undefined,\n hidden: Visibility | undefined,\n ctx: Record<string, unknown> = {},\n): boolean {\n if (display !== undefined) {\n return resolveMaybeFn(display, ctx, true);\n }\n if (hidden !== undefined) {\n return !resolveMaybeFn(hidden, ctx, false);\n }\n return true;\n}\n"],"names":["resolveMaybeFn","value","ctx","fallback","resolveVisible","display","hidden"],"mappings":"AAUO,SAASA,EACdC,GACAC,GACAC,GACG;AACH,SAAIF,MAAU,SAAkBE,IACzB,OAAOF,KAAU,aAAcA,EAA0BC,CAAG,IAAID;AACzE;AAGO,SAASG,EACdC,GACAC,GACAJ,IAA+B,CAAA,GACtB;AACT,SAAIG,MAAY,SACPL,EAAeK,GAASH,GAAK,EAAI,IAEtCI,MAAW,SACN,CAACN,EAAeM,GAAQJ,GAAK,EAAK,IAEpC;AACT;"}
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@hkyhy/marsun-components-core",
3
+ "version": "0.1.2",
4
+ "description": "Marsun pure UI component library",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/hkyhy/MARSUN_components-core.git"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/hkyhy/MARSUN_components-core/issues"
12
+ },
13
+ "homepage": "https://hkyhy.github.io/MARSUN_components-core/",
14
+ "publishConfig": {
15
+ "access": "public",
16
+ "provenance": true
17
+ },
18
+ "main": "./dist/index.js",
19
+ "module": "./dist/index.js",
20
+ "types": "./dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "import": "./dist/index.js",
24
+ "types": "./dist/index.d.ts"
25
+ },
26
+ "./theme": {
27
+ "import": "./dist/theme/index.js",
28
+ "types": "./dist/theme/index.d.ts"
29
+ },
30
+ "./styles": "./dist/styles/global.css"
31
+ },
32
+ "sideEffects": ["**/*.css", "**/*.scss"],
33
+ "files": ["dist"],
34
+ "scripts": {
35
+ "predev": "node dev/scripts/collect-examples.mjs",
36
+ "dev": "vite --config vite.config.dev.ts",
37
+ "build": "tsc -p tsconfig.build.json && vite build --config vite.config.lib.ts",
38
+ "prepublishOnly": "npm run build",
39
+ "prebuild:showcase": "node dev/scripts/collect-examples.mjs",
40
+ "build:showcase": "vite build --config vite.config.dev.ts",
41
+ "postbuild:showcase": "node dev/scripts/postbuild-showcase.mjs",
42
+ "typecheck": "tsc -p tsconfig.json --noEmit",
43
+ "preview": "vite preview --config vite.config.dev.ts",
44
+ "preview:showcase": "vite preview --config vite.config.dev.ts --outDir dist-showcase",
45
+ "collect-examples": "node dev/scripts/collect-examples.mjs",
46
+ "test": "vitest run",
47
+ "test:watch": "vitest"
48
+ },
49
+ "peerDependencies": {
50
+ "antd": "^6.0.0",
51
+ "react": "^19.0.0",
52
+ "react-dom": "^19.0.0",
53
+ "react-router-dom": "^6.28.0 || ^7.0.0"
54
+ },
55
+ "dependencies": {
56
+ "@kne/button-group": "^0.1.24",
57
+ "ahooks": "^3.8.1",
58
+ "classnames": "^2.5.1",
59
+ "dayjs": "^1.11.13",
60
+ "lucide-react": "^1.18.0",
61
+ "mermaid": "^11.15.0",
62
+ "prism-react-renderer": "^2.4.1",
63
+ "react-markdown": "^10.1.0",
64
+ "remark-gfm": "^4.0.1"
65
+ },
66
+ "devDependencies": {
67
+ "@testing-library/jest-dom": "^6.9.1",
68
+ "@testing-library/react": "^16.3.2",
69
+ "@types/react": "^19.0.0",
70
+ "@types/react-dom": "^19.0.0",
71
+ "@vitejs/plugin-react": "^4.3.4",
72
+ "antd": "^6.0.0",
73
+ "happy-dom": "^20.9.0",
74
+ "react": "^19.0.0",
75
+ "react-dom": "^19.0.0",
76
+ "react-router-dom": "^7.0.0",
77
+ "sass": "^1.101.0",
78
+ "typescript": "~5.6.2",
79
+ "vite": "^6.0.1",
80
+ "vite-plugin-dts": "^4.5.0",
81
+ "vitest": "^4.1.7"
82
+ }
83
+ }