xt-element-ui 2.2.3 → 2.2.4
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 +140 -192
- package/docs/README.md +162 -88
- package/docs/components/base/theme.md +248 -0
- package/docs/components/base/xt-list.md +1 -1
- package/docs/components/base/xt-scroll-arrow.md +87 -1
- package/docs/components/base/xt-scroll.md +237 -0
- package/docs/components/utils/config.md +18 -4
- package/docs/components/utils/theme.md +280 -183
- package/lib/index.common.1.js +4 -26
- package/lib/index.common.2.js +1 -1
- package/lib/index.common.js +1871 -671
- package/lib/index.css +1 -1
- package/lib/index.umd.1.js +4 -26
- package/lib/index.umd.2.js +1 -1
- package/lib/index.umd.js +1871 -671
- package/lib/index.umd.min.1.js +1 -1
- package/lib/index.umd.min.js +1 -1
- package/lib/theme/element-overrides.css +607 -0
- package/lib/theme/element-vars.css +280 -0
- package/lib/xt-badge/xt-badge.common.js +1 -1
- package/lib/xt-badge/xt-badge.umd.js +1 -1
- package/lib/xt-button/xt-button.common.js +1 -1
- package/lib/xt-button/xt-button.umd.js +1 -1
- package/lib/xt-card/xt-card.common.js +1 -1
- package/lib/xt-card/xt-card.umd.js +1 -1
- package/lib/xt-card-item/xt-card-item.common.js +1 -1
- package/lib/xt-card-item/xt-card-item.umd.js +1 -1
- package/lib/xt-chart/xt-chart.common.js +5 -5
- package/lib/xt-chart/xt-chart.umd.js +5 -5
- package/lib/xt-config-provider/xt-config-provider.css +1 -1
- package/lib/xt-date-picker/xt-date-picker.common.1.js +4 -26
- package/lib/xt-date-picker/xt-date-picker.common.2.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.common.js +1 -47
- package/lib/xt-date-picker/xt-date-picker.css +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.1.js +4 -26
- package/lib/xt-date-picker/xt-date-picker.umd.2.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.js +1 -47
- package/lib/xt-date-picker/xt-date-picker.umd.min.1.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.min.js +1 -1
- package/lib/xt-flex-box/xt-flex-box.common.js +1 -1
- package/lib/xt-flex-box/xt-flex-box.umd.js +1 -1
- package/lib/xt-flow/xt-flow.common.js +1 -1
- package/lib/xt-flow/xt-flow.umd.js +1 -1
- package/lib/xt-form-schema/xt-form-schema.common.js +1 -1
- package/lib/xt-form-schema/xt-form-schema.umd.js +1 -1
- package/lib/xt-grid-box/xt-grid-box.common.js +1 -1
- package/lib/xt-grid-box/xt-grid-box.umd.js +1 -1
- package/lib/xt-grid-item/xt-grid-item.common.js +1 -1
- package/lib/xt-grid-item/xt-grid-item.umd.js +1 -1
- package/lib/xt-icon/xt-icon.common.js +1 -1
- package/lib/xt-icon/xt-icon.umd.js +1 -1
- package/lib/xt-input/xt-input.common.js +1 -1
- package/lib/xt-input/xt-input.umd.js +1 -1
- package/lib/xt-list/xt-list.common.js +457 -118
- package/lib/xt-list/xt-list.css +1 -1
- package/lib/xt-list/xt-list.umd.js +457 -118
- package/lib/xt-list/xt-list.umd.min.js +1 -1
- package/lib/xt-map/xt-map.common.js +1 -1
- package/lib/xt-map/xt-map.umd.js +1 -1
- package/lib/xt-map-provider/xt-map-provider.common.js +1 -1
- package/lib/xt-map-provider/xt-map-provider.umd.js +1 -1
- package/lib/xt-page/xt-page.common.js +1 -1
- package/lib/xt-page/xt-page.umd.js +1 -1
- package/lib/xt-progress/xt-progress.common.js +1 -1
- package/lib/xt-progress/xt-progress.umd.js +1 -1
- package/lib/xt-scroll/demo.html +10 -0
- package/lib/xt-scroll/index.js +1 -0
- package/lib/xt-scroll/xt-scroll.common.js +551 -0
- package/lib/xt-scroll/xt-scroll.css +1 -0
- package/lib/xt-scroll/xt-scroll.umd.js +561 -0
- package/lib/xt-scroll/xt-scroll.umd.min.js +1 -0
- package/lib/xt-scroll-arrow/xt-scroll-arrow.common.js +591 -170
- package/lib/xt-scroll-arrow/xt-scroll-arrow.css +1 -1
- package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.js +591 -170
- package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.min.js +1 -1
- package/lib/xt-select-tree/xt-select-tree.common.js +1 -1
- package/lib/xt-select-tree/xt-select-tree.umd.js +1 -1
- package/lib/xt-step-price/xt-step-price.common.js +2 -2
- package/lib/xt-step-price/xt-step-price.umd.js +2 -2
- package/lib/xt-step-price-item/xt-step-price-item.common.js +1 -1
- package/lib/xt-step-price-item/xt-step-price-item.umd.js +1 -1
- package/lib/xt-tab-pane/xt-tab-pane.common.js +1 -1
- package/lib/xt-tab-pane/xt-tab-pane.umd.js +1 -1
- package/lib/xt-table/xt-table.common.js +2 -2
- package/lib/xt-table/xt-table.umd.js +2 -2
- package/lib/xt-tabs/xt-tabs.common.js +1 -1
- package/lib/xt-tabs/xt-tabs.umd.js +1 -1
- package/lib/xt-text/xt-text.common.js +1 -1
- package/lib/xt-text/xt-text.umd.js +1 -1
- package/lib/xt-time/xt-time.common.js +1 -1
- package/lib/xt-time/xt-time.umd.js +1 -1
- package/lib/xt-transfer-tree/xt-transfer-tree.common.js +1 -1
- package/lib/xt-transfer-tree/xt-transfer-tree.umd.js +1 -1
- package/lib/xt-upload/xt-upload.common.js +2 -2
- package/lib/xt-upload/xt-upload.umd.js +2 -2
- package/package.json +5 -3
- package/src/components/index.scss +3 -0
- package/src/components/theme/element-overrides.css +607 -0
- package/src/components/theme/element-vars.css +280 -0
- package/src/components/theme/iframe-injector.js +502 -0
- package/src/components/theme/index.js +64 -0
- package/src/components/xt-config-provider/style/index.scss +0 -11
- package/src/components/xt-date-picker/component/RangeDate.vue +1 -29
- package/src/components/xt-date-picker/style/index.scss +80 -53
- package/src/components/xt-list/index.vue +23 -12
- package/src/components/xt-scroll/index.js +9 -0
- package/src/components/xt-scroll/index.vue +363 -0
- package/src/components/xt-scroll/style/index.scss +107 -0
- package/src/components/xt-scroll-arrow/index.vue +200 -83
- package/src/components/xt-scroll-arrow/style/index.scss +16 -5
- package/src/index.js +9 -2
- package/src/utils/color.js +105 -0
- package/src/utils/index.js +456 -468
- package/src/utils/theme-vars.js +134 -0
- package/lib/css/1.87a493be.css +0 -1
- package/lib/xt-date-picker/css/1.87a493be.css +0 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 主题 CSS 变量常量
|
|
3
|
+
* 供 utils/index.js 和 theme/iframe-injector.js 共同使用
|
|
4
|
+
* 定义 Element UI 组件主题相关的 CSS 变量映射
|
|
5
|
+
*/
|
|
6
|
+
import { generatePrimaryColorVars } from './color'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 亮色主题 Element UI CSS 变量(关键子集:主色/背景/文字/边框/填充/遮罩)
|
|
10
|
+
*/
|
|
11
|
+
export const LIGHT_THEME_VARS = {
|
|
12
|
+
'--el-color-primary': '#1890ff',
|
|
13
|
+
'--el-color-success': '#67c23a',
|
|
14
|
+
'--el-color-warning': '#e6a23c',
|
|
15
|
+
'--el-color-danger': '#f56c6c',
|
|
16
|
+
'--el-color-error': '#f56c6c',
|
|
17
|
+
'--el-color-info': '#909399',
|
|
18
|
+
'--el-bg-color': '#ffffff',
|
|
19
|
+
'--el-bg-color-page': '#f2f3f5',
|
|
20
|
+
'--el-bg-color-overlay': '#ffffff',
|
|
21
|
+
'--el-text-color-primary': '#303133',
|
|
22
|
+
'--el-text-color-regular': '#606266',
|
|
23
|
+
'--el-text-color-secondary': '#909399',
|
|
24
|
+
'--el-text-color-placeholder': '#a8abb2',
|
|
25
|
+
'--el-text-color-disabled': '#c0c4cc',
|
|
26
|
+
'--el-border-color': '#dcdfe6',
|
|
27
|
+
'--el-border-color-light': '#e4e7ed',
|
|
28
|
+
'--el-border-color-lighter': '#ebeef5',
|
|
29
|
+
'--el-fill-color': '#f0f2f5',
|
|
30
|
+
'--el-fill-color-light': '#f5f7fa',
|
|
31
|
+
'--el-fill-color-lighter': '#fafafa',
|
|
32
|
+
'--el-mask-color': 'rgba(255, 255, 255, .9)',
|
|
33
|
+
'--el-mask-color-extra-light': 'rgba(255, 255, 255, .3)'
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 暗色主题 Element UI CSS 变量(对应 LIGHT_THEME_VARS 的暗色版本)
|
|
38
|
+
*/
|
|
39
|
+
export const DARK_THEME_VARS = {
|
|
40
|
+
'--el-color-primary': '#409eff',
|
|
41
|
+
'--el-color-success': '#67c23a',
|
|
42
|
+
'--el-color-warning': '#e6a23c',
|
|
43
|
+
'--el-color-danger': '#f56c6c',
|
|
44
|
+
'--el-color-error': '#f56c6c',
|
|
45
|
+
'--el-color-info': '#909399',
|
|
46
|
+
'--el-bg-color': '#141414',
|
|
47
|
+
'--el-bg-color-page': '#0a0a0a',
|
|
48
|
+
'--el-bg-color-overlay': '#1d1e1f',
|
|
49
|
+
'--el-text-color-primary': '#E5EAF3',
|
|
50
|
+
'--el-text-color-regular': '#CFD3DC',
|
|
51
|
+
'--el-text-color-secondary': '#A3A6AD',
|
|
52
|
+
'--el-text-color-placeholder': '#8D9095',
|
|
53
|
+
'--el-text-color-disabled': '#6C6E72',
|
|
54
|
+
'--el-border-color': '#4C4D4F',
|
|
55
|
+
'--el-border-color-light': '#414243',
|
|
56
|
+
'--el-border-color-lighter': '#363637',
|
|
57
|
+
'--el-fill-color': '#303030',
|
|
58
|
+
'--el-fill-color-light': '#262727',
|
|
59
|
+
'--el-fill-color-lighter': '#1D1D1D',
|
|
60
|
+
'--el-mask-color': 'rgba(0, 0, 0, .8)',
|
|
61
|
+
'--el-mask-color-extra-light': 'rgba(0, 0, 0, .3)'
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 品牌色映射
|
|
66
|
+
* 用于微前端架构中根据品牌标识切换主题主色
|
|
67
|
+
*/
|
|
68
|
+
export const BRAND_COLORS = {
|
|
69
|
+
water: { light: '#0077be', dark: '#0099cc' },
|
|
70
|
+
electricity: { light: '#2ecc71', dark: '#27ae60' },
|
|
71
|
+
gas: { light: '#f39c12', dark: '#e67e22' }
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 主题存储 key
|
|
76
|
+
*/
|
|
77
|
+
export const THEME_STORAGE_KEY = 'xt-element-ui-theme-config'
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 主题变化事件名
|
|
81
|
+
*/
|
|
82
|
+
export const THEME_CHANGE_EVENT = 'xt-theme-change'
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* 将主题相关 CSS 变量应用到任意 DOM 元素
|
|
86
|
+
* 统一 utils/index.js(主文档)和 iframe-injector.js(iframe)的变量设置逻辑
|
|
87
|
+
*
|
|
88
|
+
* @param {HTMLElement} element - 目标元素(通常是 document.documentElement)
|
|
89
|
+
* @param {Object} config
|
|
90
|
+
* @param {string} config.theme - 'white' | 'dark'
|
|
91
|
+
* @param {string} [config.primaryColor] - 主色调 hex
|
|
92
|
+
* @param {string} [config.brand] - 品牌标识 '' | 'water' | 'electricity' | 'gas'
|
|
93
|
+
*/
|
|
94
|
+
export function applyThemeVars(element, config) {
|
|
95
|
+
if (!element) return
|
|
96
|
+
|
|
97
|
+
const { theme = 'white', primaryColor, brand = '' } = config
|
|
98
|
+
const style = element.style
|
|
99
|
+
|
|
100
|
+
// 1. 设置 data-theme / data-brand 属性
|
|
101
|
+
element.setAttribute('data-theme', theme)
|
|
102
|
+
if (brand) {
|
|
103
|
+
element.setAttribute('data-brand', brand)
|
|
104
|
+
} else {
|
|
105
|
+
element.removeAttribute('data-brand')
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// 2. 应用主题变量(亮色/暗色)
|
|
109
|
+
const themeVars = theme === 'dark' ? DARK_THEME_VARS : LIGHT_THEME_VARS
|
|
110
|
+
for (const key in themeVars) {
|
|
111
|
+
style.setProperty(key, themeVars[key])
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// 3. 应用主色调变量
|
|
115
|
+
let color = primaryColor
|
|
116
|
+
if (brand && BRAND_COLORS[brand]) {
|
|
117
|
+
color = BRAND_COLORS[brand][theme === 'dark' ? 'dark' : 'light'] || primaryColor
|
|
118
|
+
}
|
|
119
|
+
if (color) {
|
|
120
|
+
const primaryVars = generatePrimaryColorVars(color)
|
|
121
|
+
for (const key in primaryVars) {
|
|
122
|
+
style.setProperty(key, primaryVars[key])
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export default {
|
|
128
|
+
LIGHT_THEME_VARS,
|
|
129
|
+
DARK_THEME_VARS,
|
|
130
|
+
BRAND_COLORS,
|
|
131
|
+
THEME_STORAGE_KEY,
|
|
132
|
+
THEME_CHANGE_EVENT,
|
|
133
|
+
applyThemeVars
|
|
134
|
+
}
|
package/lib/css/1.87a493be.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.range-picker[data-v-32b85e82]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%}.range-picker .el-date-editor[data-v-32b85e82]{flex:1;min-width:130px}.split[data-v-32b85e82]{flex-shrink:0;padding:0 4px}@media (max-width:360px){.range-picker[data-v-32b85e82]{flex-direction:column;align-items:stretch}.split[data-v-32b85e82]{text-align:center;margin:4px 0}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.range-picker[data-v-32b85e82]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%}.range-picker .el-date-editor[data-v-32b85e82]{flex:1;min-width:130px}.split[data-v-32b85e82]{flex-shrink:0;padding:0 4px}@media (max-width:360px){.range-picker[data-v-32b85e82]{flex-direction:column;align-items:stretch}.split[data-v-32b85e82]{text-align:center;margin:4px 0}}
|