@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.
- package/README.md +99 -0
- package/dist/components/AgentHub/AgentHubAccessGuard.js +12 -0
- package/dist/components/AgentHub/AgentHubAccessGuard.js.map +1 -0
- package/dist/components/AgentHub/AgentHubIndexRedirect.js +11 -0
- package/dist/components/AgentHub/AgentHubIndexRedirect.js.map +1 -0
- package/dist/components/AgentHub/ChatSessionAccessGuard.js +11 -0
- package/dist/components/AgentHub/ChatSessionAccessGuard.js.map +1 -0
- package/dist/components/Auth/PermissionGuard.js +18 -0
- package/dist/components/Auth/PermissionGuard.js.map +1 -0
- package/dist/components/Auth/ProtectedRoute.js +21 -0
- package/dist/components/Auth/ProtectedRoute.js.map +1 -0
- package/dist/components/Auth/hasPermission.js +7 -0
- package/dist/components/Auth/hasPermission.js.map +1 -0
- package/dist/components/Descriptions/CommonDescriptions.js +14 -0
- package/dist/components/Descriptions/CommonDescriptions.js.map +1 -0
- package/dist/components/File/FileItem/index.js +82 -0
- package/dist/components/File/FileItem/index.js.map +1 -0
- package/dist/components/File/FileItem/style.module.scss.js +18 -0
- package/dist/components/File/FileItem/style.module.scss.js.map +1 -0
- package/dist/components/File/FileLink/index.js +27 -0
- package/dist/components/File/FileLink/index.js.map +1 -0
- package/dist/components/File/FileLink/style.module.scss.js +10 -0
- package/dist/components/File/FileLink/style.module.scss.js.map +1 -0
- package/dist/components/File/FilePreview/index.js +49 -0
- package/dist/components/File/FilePreview/index.js.map +1 -0
- package/dist/components/File/FilePreview/style.module.scss.js +5 -0
- package/dist/components/File/FilePreview/style.module.scss.js.map +1 -0
- package/dist/components/File/FilePreviewModal/index.js +12 -0
- package/dist/components/File/FilePreviewModal/index.js.map +1 -0
- package/dist/components/File/fileDisplay.js +67 -0
- package/dist/components/File/fileDisplay.js.map +1 -0
- package/dist/components/Filter/CommonFilter/index.js +81 -0
- package/dist/components/Filter/CommonFilter/index.js.map +1 -0
- package/dist/components/Filter/CommonFilter/style.module.scss.js +20 -0
- package/dist/components/Filter/CommonFilter/style.module.scss.js.map +1 -0
- package/dist/components/Filter/FilterDateRange/index.js +97 -0
- package/dist/components/Filter/FilterDateRange/index.js.map +1 -0
- package/dist/components/Filter/FilterDateRange/style.module.scss.js +10 -0
- package/dist/components/Filter/FilterDateRange/style.module.scss.js.map +1 -0
- package/dist/components/Filter/FilterInput/index.js +56 -0
- package/dist/components/Filter/FilterInput/index.js.map +1 -0
- package/dist/components/Filter/FilterNumberRange/index.js +81 -0
- package/dist/components/Filter/FilterNumberRange/index.js.map +1 -0
- package/dist/components/Filter/FilterNumberRange/style.module.scss.js +9 -0
- package/dist/components/Filter/FilterNumberRange/style.module.scss.js.map +1 -0
- package/dist/components/Filter/FilterPanel/index.js +21 -0
- package/dist/components/Filter/FilterPanel/index.js.map +1 -0
- package/dist/components/Filter/FilterPanel/style.module.scss.js +8 -0
- package/dist/components/Filter/FilterPanel/style.module.scss.js.map +1 -0
- package/dist/components/Filter/FilterPopover/index.js +52 -0
- package/dist/components/Filter/FilterPopover/index.js.map +1 -0
- package/dist/components/Filter/FilterSelect/index.js +160 -0
- package/dist/components/Filter/FilterSelect/index.js.map +1 -0
- package/dist/components/Filter/FilterSelect/style.module.scss.js +16 -0
- package/dist/components/Filter/FilterSelect/style.module.scss.js.map +1 -0
- package/dist/components/Filter/FilterTreeSelect/index.js +249 -0
- package/dist/components/Filter/FilterTreeSelect/index.js.map +1 -0
- package/dist/components/Filter/FilterTreeSelect/style.module.scss.js +19 -0
- package/dist/components/Filter/FilterTreeSelect/style.module.scss.js.map +1 -0
- package/dist/components/Filter/FilterTrigger/index.js +31 -0
- package/dist/components/Filter/FilterTrigger/index.js.map +1 -0
- package/dist/components/Filter/FilterTrigger/style.module.scss.js +10 -0
- package/dist/components/Filter/FilterTrigger/style.module.scss.js.map +1 -0
- package/dist/components/Filter/types.js +12 -0
- package/dist/components/Filter/types.js.map +1 -0
- package/dist/components/Filter/useFilterState.js +35 -0
- package/dist/components/Filter/useFilterState.js.map +1 -0
- package/dist/components/Form/FetchSelect.js +37 -0
- package/dist/components/Form/FetchSelect.js.map +1 -0
- package/dist/components/Form/FetchTreeSelect.js +28 -0
- package/dist/components/Form/FetchTreeSelect.js.map +1 -0
- package/dist/components/Form/PersonOptionRow/index.js +37 -0
- package/dist/components/Form/PersonOptionRow/index.js.map +1 -0
- package/dist/components/Form/PersonOptionRow/style.module.scss.js +11 -0
- package/dist/components/Form/PersonOptionRow/style.module.scss.js.map +1 -0
- package/dist/components/Form/StepForm.js +34 -0
- package/dist/components/Form/StepForm.js.map +1 -0
- package/dist/components/Icons/index.js +245 -0
- package/dist/components/Icons/index.js.map +1 -0
- package/dist/components/Layout/PageHeaderLayout/index.js +41 -0
- package/dist/components/Layout/PageHeaderLayout/index.js.map +1 -0
- package/dist/components/Layout/PageHeaderLayout/style.module.scss.js +10 -0
- package/dist/components/Layout/PageHeaderLayout/style.module.scss.js.map +1 -0
- package/dist/components/Modal/StepModal/index.js +64 -0
- package/dist/components/Modal/StepModal/index.js.map +1 -0
- package/dist/components/Modal/StepModal/style.module.scss.js +9 -0
- package/dist/components/Modal/StepModal/style.module.scss.js.map +1 -0
- package/dist/components/Stat/StatCard/index.js +34 -0
- package/dist/components/Stat/StatCard/index.js.map +1 -0
- package/dist/components/Stat/StatCard/style.module.scss.js +7 -0
- package/dist/components/Stat/StatCard/style.module.scss.js.map +1 -0
- package/dist/components/Stat/StatCardList.js +20 -0
- package/dist/components/Stat/StatCardList.js.map +1 -0
- package/dist/components/Stat/StatPendingBreakdown/index.js +38 -0
- package/dist/components/Stat/StatPendingBreakdown/index.js.map +1 -0
- package/dist/components/Stat/StatPendingBreakdown/style.module.scss.js +9 -0
- package/dist/components/Stat/StatPendingBreakdown/style.module.scss.js.map +1 -0
- package/dist/components/Tag/FileTags.js +8 -0
- package/dist/components/Tag/FileTags.js.map +1 -0
- package/dist/components/Tag/SemanticTag.js +92 -0
- package/dist/components/Tag/SemanticTag.js.map +1 -0
- package/dist/components/Tag/Tags/index.js +32 -0
- package/dist/components/Tag/Tags/index.js.map +1 -0
- package/dist/components/Tag/Tags/style.module.scss.js +9 -0
- package/dist/components/Tag/Tags/style.module.scss.js.map +1 -0
- package/dist/components/TooltipInfo/TooltipInfo.js +31 -0
- package/dist/components/TooltipInfo/TooltipInfo.js.map +1 -0
- package/dist/components/Tour/AppTour/index.js +40 -0
- package/dist/components/Tour/AppTour/index.js.map +1 -0
- package/dist/components/Tour/AppTour/style.module.scss.js +7 -0
- package/dist/components/Tour/AppTour/style.module.scss.js.map +1 -0
- package/dist/components/VirtualScrollbar/VirtualScrollbar/index.js +97 -0
- package/dist/components/VirtualScrollbar/VirtualScrollbar/index.js.map +1 -0
- package/dist/components/VirtualScrollbar/VirtualScrollbar/style.module.scss.js +12 -0
- package/dist/components/VirtualScrollbar/VirtualScrollbar/style.module.scss.js.map +1 -0
- package/dist/components/VirtualScrollbar/useVirtualScrollbar.js +97 -0
- package/dist/components/VirtualScrollbar/useVirtualScrollbar.js.map +1 -0
- package/dist/hooks/useFetchData.js +69 -0
- package/dist/hooks/useFetchData.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/marsun-components-core.css +1 -0
- package/dist/provider/MarsunCoreProvider.js +51 -0
- package/dist/provider/MarsunCoreProvider.js.map +1 -0
- package/dist/provider/context.js +27 -0
- package/dist/provider/context.js.map +1 -0
- package/dist/theme/constants.js +15 -0
- package/dist/theme/constants.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.js +9 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme.js +286 -0
- package/dist/theme/theme.js.map +1 -0
- package/dist/utils/format.js +9 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/resolveMaybeFn.js +11 -0
- package/dist/utils/resolveMaybeFn.js.map +1 -0
- 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
|
+
}
|