djm-ui 0.67.3 → 0.72.0
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/CHANGELOG.md +108 -0
- package/README.md +38 -2
- package/dist/djm-ui.cjs +1051 -356
- package/dist/djm-ui.cjs.map +4 -4
- package/dist/djm-ui.css +752 -17
- package/dist/djm-ui.esm.js +1127 -432
- package/dist/djm-ui.esm.js.map +4 -4
- package/dist/djm-ui.esm.min.js +375 -229
- package/dist/djm-ui.min.cjs +375 -229
- package/dist/djm-ui.min.css +2 -2
- package/dist/djm-ui.umd.js +967 -272
- package/dist/djm-ui.umd.min.js +375 -229
- package/dist/mcp/manifest.json +12195 -0
- package/dist/mcp/server.js +90 -0
- package/package.json +12 -4
- package/src/components/icon/index.js +13 -1
- package/src/components/input/index.js +17 -6
- package/src/components/rich-editor/index.js +724 -61
- package/src/index.js +1 -1
- package/src/locale/en-US.js +33 -1
- package/src/locale/zh-CN.js +33 -1
- package/src/styles/base.css +2 -3
- package/src/styles/components/button.css +2 -1
- package/src/styles/components/console.css +5 -0
- package/src/styles/components/content.css +517 -0
- package/src/styles/components/form.css +5 -0
- package/src/styles/components/layout.css +327 -1
- package/src/styles/components/media-picker.css +3 -3
- package/src/styles/components/menu.css +2 -1
- package/src/styles/components/org-picker.css +1 -1
- package/src/styles/components/responsive.css +86 -0
- package/src/styles/components/rich-editor.css +206 -7
- package/src/styles/components/skin.css +54 -0
- package/src/styles/components/template.css +5 -0
- package/src/styles/index.css +1 -0
- package/src/styles/theme-dark.css +2 -0
- package/src/styles/tokens.css +8 -0
- package/src/theme/index.js +40 -0
- package/src/utils/sanitize-html.js +44 -6
- package/types/index.d.ts +8 -0
package/dist/djm-ui.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! DJM UI v0.
|
|
1
|
+
/*! DJM UI v0.72.0 · MIT · 2026-10-26 */
|
|
2
2
|
|
|
3
3
|
/* ---- tokens.css ---- */
|
|
4
4
|
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
:root {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
/* 字体族:宿主页面可通过覆盖这两个变量统一换字体 */
|
|
23
|
+
--djm-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
|
|
24
|
+
"Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
|
25
|
+
--djm-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
26
|
+
|
|
22
27
|
--djm-brand-50: #eef6fe;
|
|
23
28
|
--djm-brand-100: #dcebfb;
|
|
24
29
|
--djm-brand-200: #b9d7f6;
|
|
@@ -70,6 +75,9 @@
|
|
|
70
75
|
/* 彩色底上的文字(两主题均为白色) */
|
|
71
76
|
--djm-text-inverse: #fff;
|
|
72
77
|
|
|
78
|
+
/* 文字提示的深底:暗色主题改用略亮的灰,避免和页面背景糊在一起 */
|
|
79
|
+
--djm-tooltip-bg: #1f2a37;
|
|
80
|
+
|
|
73
81
|
/* 盖在图片等媒体内容上的蒙层,不随主题变化 */
|
|
74
82
|
--djm-media-mask: rgba(9, 20, 33, 0.55);
|
|
75
83
|
|
|
@@ -155,6 +163,8 @@
|
|
|
155
163
|
--djm-text-side: #c2ccd8;
|
|
156
164
|
--djm-text-2: #a6b2c0;
|
|
157
165
|
--djm-text-3: #8492a1;
|
|
166
|
+
/* 暗色下提示框比页面背景亮一档,白字仍有足够对比 */
|
|
167
|
+
--djm-tooltip-bg: #3a4652;
|
|
158
168
|
/* 暗色下水印改用浅色,保持可辨识 */
|
|
159
169
|
--djm-watermark: rgba(232, 237, 243, 0.12);
|
|
160
170
|
|
|
@@ -211,8 +221,7 @@ body {
|
|
|
211
221
|
body {
|
|
212
222
|
background: var(--djm-bg);
|
|
213
223
|
color: var(--djm-text);
|
|
214
|
-
font-family: -
|
|
215
|
-
"Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
|
224
|
+
font-family: var(--djm-font-sans);
|
|
216
225
|
font-size: 13px;
|
|
217
226
|
line-height: 1.5;
|
|
218
227
|
-webkit-font-smoothing: antialiased;
|
|
@@ -293,7 +302,7 @@ a {
|
|
|
293
302
|
}
|
|
294
303
|
|
|
295
304
|
.djm-mono {
|
|
296
|
-
font-family:
|
|
305
|
+
font-family: var(--djm-font-mono);
|
|
297
306
|
font-size: 11.5px;
|
|
298
307
|
font-variant-numeric: tabular-nums;
|
|
299
308
|
}
|
|
@@ -2120,7 +2129,8 @@ button.djm-breadcrumb-text {
|
|
|
2120
2129
|
height: 16px;
|
|
2121
2130
|
padding: 0 4px;
|
|
2122
2131
|
border-radius: 8px;
|
|
2123
|
-
|
|
2132
|
+
/* 红点底色用实色档,暗色主题下白字才够清楚 */
|
|
2133
|
+
background: var(--djm-red-strong);
|
|
2124
2134
|
color: var(--djm-text-inverse);
|
|
2125
2135
|
font-size: 10px;
|
|
2126
2136
|
font-style: normal;
|
|
@@ -3484,7 +3494,8 @@ button.djm-breadcrumb-text {
|
|
|
3484
3494
|
background: none;
|
|
3485
3495
|
padding: 0;
|
|
3486
3496
|
font-size: 12px;
|
|
3487
|
-
|
|
3497
|
+
/* 品牌深色档:浅色底与暗色底都能过 4.5:1 */
|
|
3498
|
+
color: var(--djm-brand-700);
|
|
3488
3499
|
white-space: nowrap;
|
|
3489
3500
|
}
|
|
3490
3501
|
|
|
@@ -4015,6 +4026,11 @@ input[type="date"] {
|
|
|
4015
4026
|
font-size: 11.5px;
|
|
4016
4027
|
margin-right: 2px;
|
|
4017
4028
|
}
|
|
4029
|
+
|
|
4030
|
+
/* 表格工具栏的操作提示:选中行后自动隐藏 */
|
|
4031
|
+
.djm-toolbar-tip {
|
|
4032
|
+
font-size: 11.5px;
|
|
4033
|
+
}
|
|
4018
4034
|
/* ---------------- 表单 ---------------- */
|
|
4019
4035
|
|
|
4020
4036
|
.djm-form-grid {
|
|
@@ -6704,6 +6720,8 @@ input[type="date"] {
|
|
|
6704
6720
|
/* ---------------- 富文本编辑器 ---------------- */
|
|
6705
6721
|
|
|
6706
6722
|
.djm-rich-editor {
|
|
6723
|
+
display: flex;
|
|
6724
|
+
flex-direction: column;
|
|
6707
6725
|
border: 1px solid var(--djm-border-strong);
|
|
6708
6726
|
border-radius: 4px;
|
|
6709
6727
|
overflow: hidden;
|
|
@@ -6715,11 +6733,26 @@ input[type="date"] {
|
|
|
6715
6733
|
box-shadow: var(--djm-ring);
|
|
6716
6734
|
}
|
|
6717
6735
|
|
|
6736
|
+
/* 全屏:铺满视口,内容区自己滚动 */
|
|
6737
|
+
.djm-rich-editor.djm-is-fullscreen {
|
|
6738
|
+
position: fixed;
|
|
6739
|
+
inset: 0;
|
|
6740
|
+
z-index: 1200;
|
|
6741
|
+
border: 0;
|
|
6742
|
+
border-radius: 0;
|
|
6743
|
+
}
|
|
6744
|
+
|
|
6745
|
+
.djm-rich-editor.djm-is-fullscreen .djm-rich-editor-content,
|
|
6746
|
+
.djm-rich-editor.djm-is-fullscreen .djm-rich-editor-source {
|
|
6747
|
+
flex: 1;
|
|
6748
|
+
max-height: none;
|
|
6749
|
+
}
|
|
6750
|
+
|
|
6718
6751
|
.djm-rich-editor-toolbar {
|
|
6719
6752
|
display: flex;
|
|
6720
6753
|
align-items: center;
|
|
6721
6754
|
flex-wrap: wrap;
|
|
6722
|
-
gap:
|
|
6755
|
+
gap: 2px;
|
|
6723
6756
|
padding: 5px 6px;
|
|
6724
6757
|
border-bottom: 1px solid var(--djm-border);
|
|
6725
6758
|
background: var(--djm-surface-2);
|
|
@@ -6727,9 +6760,9 @@ input[type="date"] {
|
|
|
6727
6760
|
|
|
6728
6761
|
.djm-rich-editor-group {
|
|
6729
6762
|
display: flex;
|
|
6730
|
-
gap:
|
|
6731
|
-
padding-right:
|
|
6732
|
-
margin-right:
|
|
6763
|
+
gap: 1px;
|
|
6764
|
+
padding-right: 4px;
|
|
6765
|
+
margin-right: 2px;
|
|
6733
6766
|
border-right: 1px solid var(--djm-border);
|
|
6734
6767
|
}
|
|
6735
6768
|
|
|
@@ -6737,10 +6770,92 @@ input[type="date"] {
|
|
|
6737
6770
|
border-right: 0;
|
|
6738
6771
|
}
|
|
6739
6772
|
|
|
6773
|
+
/* 段落格式 / 字号下拉 */
|
|
6774
|
+
.djm-rich-editor-select {
|
|
6775
|
+
height: 26px;
|
|
6776
|
+
padding: 0 2px;
|
|
6777
|
+
border: 1px solid var(--djm-border);
|
|
6778
|
+
border-radius: 3px;
|
|
6779
|
+
background: var(--djm-surface);
|
|
6780
|
+
color: var(--djm-text-2);
|
|
6781
|
+
font: inherit;
|
|
6782
|
+
font-size: 11.5px;
|
|
6783
|
+
cursor: pointer;
|
|
6784
|
+
}
|
|
6785
|
+
|
|
6786
|
+
.djm-rich-editor-select-size {
|
|
6787
|
+
width: 64px;
|
|
6788
|
+
}
|
|
6789
|
+
|
|
6790
|
+
.djm-rich-editor-select:focus-visible {
|
|
6791
|
+
outline: 2px solid var(--djm-brand-500);
|
|
6792
|
+
outline-offset: -1px;
|
|
6793
|
+
}
|
|
6794
|
+
|
|
6795
|
+
.djm-rich-editor-select:disabled {
|
|
6796
|
+
opacity: 0.5;
|
|
6797
|
+
cursor: not-allowed;
|
|
6798
|
+
}
|
|
6799
|
+
|
|
6800
|
+
/* 颜色按钮:字母底部带当前色,背景色按钮直接把颜色铺在字母上 */
|
|
6801
|
+
.djm-rich-editor-color {
|
|
6802
|
+
position: relative;
|
|
6803
|
+
}
|
|
6804
|
+
|
|
6805
|
+
.djm-rich-editor-letter {
|
|
6806
|
+
display: inline-block;
|
|
6807
|
+
padding-bottom: 1px;
|
|
6808
|
+
border-bottom: 2px solid var(--djm-text);
|
|
6809
|
+
font-size: 12px;
|
|
6810
|
+
font-weight: 600;
|
|
6811
|
+
line-height: 1;
|
|
6812
|
+
}
|
|
6813
|
+
|
|
6814
|
+
.djm-rich-editor-letter-bg {
|
|
6815
|
+
padding: 0 3px;
|
|
6816
|
+
border-bottom: 0;
|
|
6817
|
+
border-radius: 2px;
|
|
6818
|
+
color: var(--djm-text);
|
|
6819
|
+
}
|
|
6820
|
+
|
|
6821
|
+
.djm-rich-editor-panel {
|
|
6822
|
+
position: absolute;
|
|
6823
|
+
top: calc(100% + 4px);
|
|
6824
|
+
left: 0;
|
|
6825
|
+
z-index: 5;
|
|
6826
|
+
display: grid;
|
|
6827
|
+
grid-template-columns: repeat(4, 20px);
|
|
6828
|
+
gap: 4px;
|
|
6829
|
+
padding: 6px;
|
|
6830
|
+
border: 1px solid var(--djm-border);
|
|
6831
|
+
border-radius: 6px;
|
|
6832
|
+
background: var(--djm-surface);
|
|
6833
|
+
box-shadow: var(--djm-shadow-md);
|
|
6834
|
+
}
|
|
6835
|
+
|
|
6836
|
+
.djm-rich-editor-swatch {
|
|
6837
|
+
width: 20px;
|
|
6838
|
+
height: 20px;
|
|
6839
|
+
padding: 0;
|
|
6840
|
+
border: 1px solid var(--djm-border);
|
|
6841
|
+
border-radius: 4px;
|
|
6842
|
+
cursor: pointer;
|
|
6843
|
+
}
|
|
6844
|
+
|
|
6845
|
+
.djm-rich-editor-swatch:hover {
|
|
6846
|
+
border-color: var(--djm-brand-500);
|
|
6847
|
+
}
|
|
6848
|
+
|
|
6849
|
+
/* 素材库按钮:媒体选择器默认是块级 span,塞进工具栏里要收成行内 */
|
|
6850
|
+
.djm-rich-editor-picker {
|
|
6851
|
+
display: inline-flex;
|
|
6852
|
+
align-items: center;
|
|
6853
|
+
}
|
|
6854
|
+
|
|
6740
6855
|
.djm-rich-editor-btn {
|
|
6741
|
-
min-width:
|
|
6856
|
+
min-width: 24px;
|
|
6742
6857
|
height: 26px;
|
|
6743
|
-
padding: 0
|
|
6858
|
+
padding: 0 4px;
|
|
6744
6859
|
display: inline-flex;
|
|
6745
6860
|
align-items: center;
|
|
6746
6861
|
justify-content: center;
|
|
@@ -6823,11 +6938,93 @@ input[type="date"] {
|
|
|
6823
6938
|
color: var(--djm-text-3);
|
|
6824
6939
|
}
|
|
6825
6940
|
|
|
6826
|
-
.djm-rich-editor-content
|
|
6941
|
+
.djm-rich-editor-content h1,
|
|
6942
|
+
.djm-rich-editor-content h2,
|
|
6943
|
+
.djm-rich-editor-content h3 {
|
|
6827
6944
|
margin: 0 0 8px;
|
|
6945
|
+
color: var(--djm-text);
|
|
6946
|
+
line-height: 1.5;
|
|
6947
|
+
}
|
|
6948
|
+
|
|
6949
|
+
.djm-rich-editor-content h1 {
|
|
6950
|
+
font-size: 20px;
|
|
6951
|
+
}
|
|
6952
|
+
|
|
6953
|
+
.djm-rich-editor-content h2 {
|
|
6828
6954
|
font-size: 16px;
|
|
6829
6955
|
}
|
|
6830
6956
|
|
|
6957
|
+
.djm-rich-editor-content h3 {
|
|
6958
|
+
font-size: 14px;
|
|
6959
|
+
}
|
|
6960
|
+
|
|
6961
|
+
.djm-rich-editor-content blockquote {
|
|
6962
|
+
margin: 0 0 8px;
|
|
6963
|
+
padding: 4px 10px;
|
|
6964
|
+
border-left: 3px solid var(--djm-brand-500);
|
|
6965
|
+
background: var(--djm-surface-2);
|
|
6966
|
+
color: var(--djm-text-2);
|
|
6967
|
+
}
|
|
6968
|
+
|
|
6969
|
+
.djm-rich-editor-content pre {
|
|
6970
|
+
margin: 0 0 8px;
|
|
6971
|
+
padding: 10px 12px;
|
|
6972
|
+
overflow: auto;
|
|
6973
|
+
border-radius: 4px;
|
|
6974
|
+
background: var(--djm-surface-3);
|
|
6975
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
6976
|
+
font-size: 12px;
|
|
6977
|
+
line-height: 1.7;
|
|
6978
|
+
white-space: pre-wrap;
|
|
6979
|
+
word-break: break-word;
|
|
6980
|
+
}
|
|
6981
|
+
|
|
6982
|
+
.djm-rich-editor-content code {
|
|
6983
|
+
padding: 1px 4px;
|
|
6984
|
+
border-radius: 3px;
|
|
6985
|
+
background: var(--djm-surface-3);
|
|
6986
|
+
color: var(--djm-brand-700);
|
|
6987
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
6988
|
+
font-size: 12px;
|
|
6989
|
+
}
|
|
6990
|
+
|
|
6991
|
+
.djm-rich-editor-content pre code {
|
|
6992
|
+
padding: 0;
|
|
6993
|
+
background: none;
|
|
6994
|
+
color: inherit;
|
|
6995
|
+
}
|
|
6996
|
+
|
|
6997
|
+
.djm-rich-editor-content hr {
|
|
6998
|
+
margin: 12px 0;
|
|
6999
|
+
border: 0;
|
|
7000
|
+
border-top: 1px solid var(--djm-border);
|
|
7001
|
+
}
|
|
7002
|
+
|
|
7003
|
+
/* 图片:单图、多图统一限宽,避免撑破内容区 */
|
|
7004
|
+
.djm-rich-editor-content img {
|
|
7005
|
+
max-width: 100%;
|
|
7006
|
+
height: auto;
|
|
7007
|
+
border-radius: 4px;
|
|
7008
|
+
vertical-align: bottom;
|
|
7009
|
+
}
|
|
7010
|
+
|
|
7011
|
+
/* 上传插入的图片之间留一点间距,多图并排时不粘在一起 */
|
|
7012
|
+
.djm-rich-editor-img {
|
|
7013
|
+
margin: 2px 4px 2px 0;
|
|
7014
|
+
}
|
|
7015
|
+
|
|
7016
|
+
/* 上传中的占位块,上传完成后被图片替换 */
|
|
7017
|
+
.djm-rich-editor-uploading {
|
|
7018
|
+
display: inline-flex;
|
|
7019
|
+
align-items: center;
|
|
7020
|
+
padding: 4px 10px;
|
|
7021
|
+
border: 1px dashed var(--djm-border-strong);
|
|
7022
|
+
border-radius: 4px;
|
|
7023
|
+
background: var(--djm-surface-2);
|
|
7024
|
+
color: var(--djm-text-3);
|
|
7025
|
+
font-size: 12px;
|
|
7026
|
+
}
|
|
7027
|
+
|
|
6831
7028
|
.djm-rich-editor-content p {
|
|
6832
7029
|
margin: 0 0 8px;
|
|
6833
7030
|
}
|
|
@@ -6855,6 +7052,24 @@ input[type="date"] {
|
|
|
6855
7052
|
line-height: 1.7;
|
|
6856
7053
|
}
|
|
6857
7054
|
|
|
7055
|
+
/* 底部状态:上传提示与字数 */
|
|
7056
|
+
.djm-rich-editor-foot {
|
|
7057
|
+
display: flex;
|
|
7058
|
+
align-items: center;
|
|
7059
|
+
justify-content: flex-end;
|
|
7060
|
+
gap: 12px;
|
|
7061
|
+
padding: 4px 12px;
|
|
7062
|
+
border-top: 1px solid var(--djm-border);
|
|
7063
|
+
background: var(--djm-surface-2);
|
|
7064
|
+
color: var(--djm-text-3);
|
|
7065
|
+
font-size: 11px;
|
|
7066
|
+
}
|
|
7067
|
+
|
|
7068
|
+
/* 文件选择框只作为上传入口,不显示 */
|
|
7069
|
+
.djm-rich-editor-file {
|
|
7070
|
+
display: none;
|
|
7071
|
+
}
|
|
7072
|
+
|
|
6858
7073
|
.djm-editor-bar {
|
|
6859
7074
|
display: flex;
|
|
6860
7075
|
align-items: center;
|
|
@@ -7611,7 +7826,7 @@ input[type="date"] {
|
|
|
7611
7826
|
/* 打开在弹窗 / 抽屉里时也要压在遮罩之上 */
|
|
7612
7827
|
z-index: var(--djm-z-popper, 1450);
|
|
7613
7828
|
border: 1px solid var(--djm-border);
|
|
7614
|
-
border-radius: var(--djm-radius
|
|
7829
|
+
border-radius: var(--djm-radius);
|
|
7615
7830
|
background: var(--djm-surface);
|
|
7616
7831
|
box-shadow: var(--djm-shadow-md, 0 6px 20px rgba(0, 0, 0, 0.12));
|
|
7617
7832
|
}
|
|
@@ -8232,7 +8447,7 @@ input[type="date"] {
|
|
|
8232
8447
|
padding: 0 10px;
|
|
8233
8448
|
height: 30px;
|
|
8234
8449
|
border: 1px solid var(--djm-border);
|
|
8235
|
-
border-radius: var(--djm-radius
|
|
8450
|
+
border-radius: var(--djm-radius);
|
|
8236
8451
|
background: var(--djm-surface);
|
|
8237
8452
|
color: var(--djm-text-3);
|
|
8238
8453
|
}
|
|
@@ -8265,14 +8480,14 @@ input[type="date"] {
|
|
|
8265
8480
|
|
|
8266
8481
|
.djm-media-item {
|
|
8267
8482
|
border: 1px solid var(--djm-border);
|
|
8268
|
-
border-radius: var(--djm-radius
|
|
8483
|
+
border-radius: var(--djm-radius);
|
|
8269
8484
|
overflow: hidden;
|
|
8270
8485
|
cursor: pointer;
|
|
8271
8486
|
background: var(--djm-surface);
|
|
8272
8487
|
}
|
|
8273
8488
|
|
|
8274
8489
|
.djm-media-item:hover {
|
|
8275
|
-
border-color: var(--djm-brand-
|
|
8490
|
+
border-color: var(--djm-brand-500);
|
|
8276
8491
|
}
|
|
8277
8492
|
|
|
8278
8493
|
.djm-media-item:focus-visible {
|
|
@@ -8356,6 +8571,526 @@ input[type="date"] {
|
|
|
8356
8571
|
font-style: normal;
|
|
8357
8572
|
}
|
|
8358
8573
|
|
|
8574
|
+
/* ---- components/content.css ---- */
|
|
8575
|
+
|
|
8576
|
+
/* DJM UI · 内容管理:文件管理器 / 图片相册 */
|
|
8577
|
+
|
|
8578
|
+
/* ---------------- 文件管理器 ---------------- */
|
|
8579
|
+
|
|
8580
|
+
.djm-fm {
|
|
8581
|
+
display: grid;
|
|
8582
|
+
grid-template-columns: 208px minmax(0, 1fr);
|
|
8583
|
+
border: 1px solid var(--djm-border);
|
|
8584
|
+
border-radius: var(--djm-radius-lg);
|
|
8585
|
+
overflow: hidden;
|
|
8586
|
+
background: var(--djm-surface);
|
|
8587
|
+
}
|
|
8588
|
+
|
|
8589
|
+
.djm-fm-side {
|
|
8590
|
+
display: flex;
|
|
8591
|
+
flex-direction: column;
|
|
8592
|
+
gap: 2px;
|
|
8593
|
+
padding: 10px;
|
|
8594
|
+
border-right: 1px solid var(--djm-border);
|
|
8595
|
+
background: var(--djm-surface-2);
|
|
8596
|
+
}
|
|
8597
|
+
|
|
8598
|
+
.djm-fm-side-title {
|
|
8599
|
+
padding: 4px 8px 8px;
|
|
8600
|
+
color: var(--djm-text-3);
|
|
8601
|
+
font-size: 10.5px;
|
|
8602
|
+
letter-spacing: 0.5px;
|
|
8603
|
+
}
|
|
8604
|
+
|
|
8605
|
+
.djm-fm-folder {
|
|
8606
|
+
display: flex;
|
|
8607
|
+
align-items: center;
|
|
8608
|
+
gap: 8px;
|
|
8609
|
+
height: 32px;
|
|
8610
|
+
padding: 0 8px;
|
|
8611
|
+
border: 0;
|
|
8612
|
+
border-radius: 4px;
|
|
8613
|
+
background: none;
|
|
8614
|
+
color: var(--djm-text-2);
|
|
8615
|
+
font-size: 12.5px;
|
|
8616
|
+
text-align: left;
|
|
8617
|
+
cursor: pointer;
|
|
8618
|
+
}
|
|
8619
|
+
|
|
8620
|
+
.djm-fm-folder:hover {
|
|
8621
|
+
background: var(--djm-brand-soft);
|
|
8622
|
+
color: var(--djm-brand-700);
|
|
8623
|
+
}
|
|
8624
|
+
|
|
8625
|
+
.djm-fm-folder.djm-is-active {
|
|
8626
|
+
background: var(--djm-brand-50);
|
|
8627
|
+
color: var(--djm-brand-700);
|
|
8628
|
+
font-weight: 600;
|
|
8629
|
+
}
|
|
8630
|
+
|
|
8631
|
+
.djm-fm-folder-count {
|
|
8632
|
+
margin-left: auto;
|
|
8633
|
+
color: var(--djm-text-3);
|
|
8634
|
+
font-size: 10.5px;
|
|
8635
|
+
}
|
|
8636
|
+
|
|
8637
|
+
.djm-fm-storage {
|
|
8638
|
+
margin-top: auto;
|
|
8639
|
+
padding: 12px 8px 4px;
|
|
8640
|
+
border-top: 1px solid var(--djm-border);
|
|
8641
|
+
color: var(--djm-text-3);
|
|
8642
|
+
font-size: 11px;
|
|
8643
|
+
}
|
|
8644
|
+
|
|
8645
|
+
.djm-fm-storage-head {
|
|
8646
|
+
display: flex;
|
|
8647
|
+
justify-content: space-between;
|
|
8648
|
+
gap: 6px;
|
|
8649
|
+
margin-bottom: 6px;
|
|
8650
|
+
color: var(--djm-text-2);
|
|
8651
|
+
}
|
|
8652
|
+
|
|
8653
|
+
.djm-fm-bar {
|
|
8654
|
+
height: 5px;
|
|
8655
|
+
overflow: hidden;
|
|
8656
|
+
border-radius: 3px;
|
|
8657
|
+
background: var(--djm-surface-3);
|
|
8658
|
+
}
|
|
8659
|
+
|
|
8660
|
+
.djm-fm-bar i {
|
|
8661
|
+
display: block;
|
|
8662
|
+
height: 100%;
|
|
8663
|
+
background: linear-gradient(90deg, var(--djm-brand-500), var(--djm-brand-600));
|
|
8664
|
+
}
|
|
8665
|
+
|
|
8666
|
+
.djm-fm-storage p {
|
|
8667
|
+
margin: 8px 0 0;
|
|
8668
|
+
line-height: 1.6;
|
|
8669
|
+
}
|
|
8670
|
+
|
|
8671
|
+
.djm-fm-main {
|
|
8672
|
+
display: flex;
|
|
8673
|
+
flex-direction: column;
|
|
8674
|
+
min-width: 0;
|
|
8675
|
+
}
|
|
8676
|
+
|
|
8677
|
+
.djm-fm-path {
|
|
8678
|
+
display: flex;
|
|
8679
|
+
align-items: center;
|
|
8680
|
+
justify-content: space-between;
|
|
8681
|
+
gap: 10px;
|
|
8682
|
+
padding: 8px 14px;
|
|
8683
|
+
border-bottom: 1px solid var(--djm-border);
|
|
8684
|
+
background: var(--djm-surface-2);
|
|
8685
|
+
}
|
|
8686
|
+
|
|
8687
|
+
.djm-fm-crumb {
|
|
8688
|
+
display: flex;
|
|
8689
|
+
align-items: center;
|
|
8690
|
+
gap: 6px;
|
|
8691
|
+
color: var(--djm-text);
|
|
8692
|
+
font-size: 12.5px;
|
|
8693
|
+
font-weight: 600;
|
|
8694
|
+
}
|
|
8695
|
+
|
|
8696
|
+
.djm-fm-crumb em {
|
|
8697
|
+
color: var(--djm-text-3);
|
|
8698
|
+
font-size: 11px;
|
|
8699
|
+
font-style: normal;
|
|
8700
|
+
font-weight: 400;
|
|
8701
|
+
}
|
|
8702
|
+
|
|
8703
|
+
.djm-fm-search {
|
|
8704
|
+
display: flex;
|
|
8705
|
+
align-items: center;
|
|
8706
|
+
gap: 6px;
|
|
8707
|
+
height: 28px;
|
|
8708
|
+
padding: 0 8px;
|
|
8709
|
+
border: 1px solid var(--djm-border);
|
|
8710
|
+
border-radius: 4px;
|
|
8711
|
+
background: var(--djm-surface);
|
|
8712
|
+
color: var(--djm-text-3);
|
|
8713
|
+
}
|
|
8714
|
+
|
|
8715
|
+
.djm-fm-search:focus-within {
|
|
8716
|
+
border-color: var(--djm-brand-500);
|
|
8717
|
+
}
|
|
8718
|
+
|
|
8719
|
+
.djm-fm-search input {
|
|
8720
|
+
width: 160px;
|
|
8721
|
+
border: 0;
|
|
8722
|
+
outline: none;
|
|
8723
|
+
background: none;
|
|
8724
|
+
color: var(--djm-text-2);
|
|
8725
|
+
font-size: 12px;
|
|
8726
|
+
}
|
|
8727
|
+
|
|
8728
|
+
.djm-fm-all {
|
|
8729
|
+
display: inline-flex;
|
|
8730
|
+
align-items: center;
|
|
8731
|
+
gap: 6px;
|
|
8732
|
+
padding-right: 2px;
|
|
8733
|
+
color: var(--djm-text-2);
|
|
8734
|
+
font-size: 12px;
|
|
8735
|
+
cursor: pointer;
|
|
8736
|
+
}
|
|
8737
|
+
|
|
8738
|
+
.djm-fm-grid {
|
|
8739
|
+
display: grid;
|
|
8740
|
+
grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
|
|
8741
|
+
gap: 12px;
|
|
8742
|
+
padding: 14px;
|
|
8743
|
+
}
|
|
8744
|
+
|
|
8745
|
+
.djm-fm-card {
|
|
8746
|
+
position: relative;
|
|
8747
|
+
display: flex;
|
|
8748
|
+
flex-direction: column;
|
|
8749
|
+
gap: 4px;
|
|
8750
|
+
padding: 8px;
|
|
8751
|
+
border: 1px solid var(--djm-border);
|
|
8752
|
+
border-radius: 6px;
|
|
8753
|
+
background: var(--djm-surface);
|
|
8754
|
+
}
|
|
8755
|
+
|
|
8756
|
+
.djm-fm-card.djm-is-selected {
|
|
8757
|
+
border-color: var(--djm-brand-500);
|
|
8758
|
+
box-shadow: 0 0 0 2px var(--djm-brand-soft);
|
|
8759
|
+
}
|
|
8760
|
+
|
|
8761
|
+
.djm-fm-check {
|
|
8762
|
+
position: absolute;
|
|
8763
|
+
top: 8px;
|
|
8764
|
+
left: 8px;
|
|
8765
|
+
z-index: 1;
|
|
8766
|
+
padding: 2px;
|
|
8767
|
+
border-radius: 4px;
|
|
8768
|
+
background: var(--djm-surface);
|
|
8769
|
+
}
|
|
8770
|
+
|
|
8771
|
+
.djm-fm-thumb {
|
|
8772
|
+
display: flex;
|
|
8773
|
+
align-items: center;
|
|
8774
|
+
justify-content: center;
|
|
8775
|
+
height: 96px;
|
|
8776
|
+
padding: 0;
|
|
8777
|
+
overflow: hidden;
|
|
8778
|
+
border: 0;
|
|
8779
|
+
border-radius: 4px;
|
|
8780
|
+
background: var(--djm-surface-3);
|
|
8781
|
+
cursor: zoom-in;
|
|
8782
|
+
}
|
|
8783
|
+
|
|
8784
|
+
.djm-fm-thumb img {
|
|
8785
|
+
width: 100%;
|
|
8786
|
+
height: 100%;
|
|
8787
|
+
object-fit: cover;
|
|
8788
|
+
}
|
|
8789
|
+
|
|
8790
|
+
.djm-fm-doc {
|
|
8791
|
+
color: var(--djm-text-3);
|
|
8792
|
+
font-size: 11px;
|
|
8793
|
+
font-weight: 600;
|
|
8794
|
+
letter-spacing: 0.4px;
|
|
8795
|
+
}
|
|
8796
|
+
|
|
8797
|
+
.djm-fm-name {
|
|
8798
|
+
margin-top: 2px;
|
|
8799
|
+
overflow: hidden;
|
|
8800
|
+
color: var(--djm-text);
|
|
8801
|
+
font-size: 12.5px;
|
|
8802
|
+
font-weight: 500;
|
|
8803
|
+
text-overflow: ellipsis;
|
|
8804
|
+
white-space: nowrap;
|
|
8805
|
+
}
|
|
8806
|
+
|
|
8807
|
+
.djm-fm-meta {
|
|
8808
|
+
color: var(--djm-text-3);
|
|
8809
|
+
font-size: 11px;
|
|
8810
|
+
}
|
|
8811
|
+
|
|
8812
|
+
.djm-fm-empty {
|
|
8813
|
+
margin: 40px 14px;
|
|
8814
|
+
}
|
|
8815
|
+
|
|
8816
|
+
.djm-fm-loading {
|
|
8817
|
+
display: flex;
|
|
8818
|
+
align-items: center;
|
|
8819
|
+
gap: 8px;
|
|
8820
|
+
padding: 10px 14px;
|
|
8821
|
+
color: var(--djm-text-3);
|
|
8822
|
+
font-size: 12px;
|
|
8823
|
+
}
|
|
8824
|
+
|
|
8825
|
+
/* 上传用的隐藏输入 */
|
|
8826
|
+
.djm-fm-file {
|
|
8827
|
+
display: none;
|
|
8828
|
+
}
|
|
8829
|
+
|
|
8830
|
+
.djm-fm-preview-img {
|
|
8831
|
+
display: block;
|
|
8832
|
+
width: 100%;
|
|
8833
|
+
max-height: 420px;
|
|
8834
|
+
border-radius: 6px;
|
|
8835
|
+
background: var(--djm-surface-3);
|
|
8836
|
+
object-fit: contain;
|
|
8837
|
+
}
|
|
8838
|
+
|
|
8839
|
+
.djm-fm-preview-empty {
|
|
8840
|
+
display: flex;
|
|
8841
|
+
flex-direction: column;
|
|
8842
|
+
align-items: center;
|
|
8843
|
+
gap: 8px;
|
|
8844
|
+
padding: 40px;
|
|
8845
|
+
border-radius: 6px;
|
|
8846
|
+
background: var(--djm-surface-2);
|
|
8847
|
+
color: var(--djm-text-3);
|
|
8848
|
+
font-size: 12px;
|
|
8849
|
+
}
|
|
8850
|
+
|
|
8851
|
+
.djm-fm-preview-meta {
|
|
8852
|
+
display: grid;
|
|
8853
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
8854
|
+
gap: 10px;
|
|
8855
|
+
margin-top: 12px;
|
|
8856
|
+
}
|
|
8857
|
+
|
|
8858
|
+
.djm-fm-preview-meta div {
|
|
8859
|
+
display: flex;
|
|
8860
|
+
flex-direction: column;
|
|
8861
|
+
gap: 2px;
|
|
8862
|
+
color: var(--djm-text-3);
|
|
8863
|
+
font-size: 11.5px;
|
|
8864
|
+
}
|
|
8865
|
+
|
|
8866
|
+
.djm-fm-preview-meta b {
|
|
8867
|
+
color: var(--djm-text-2);
|
|
8868
|
+
font-size: 12px;
|
|
8869
|
+
font-weight: 500;
|
|
8870
|
+
}
|
|
8871
|
+
|
|
8872
|
+
/* ---------------- 图片相册 ---------------- */
|
|
8873
|
+
|
|
8874
|
+
.djm-album-head {
|
|
8875
|
+
display: flex;
|
|
8876
|
+
align-items: center;
|
|
8877
|
+
justify-content: space-between;
|
|
8878
|
+
gap: 12px;
|
|
8879
|
+
flex-wrap: wrap;
|
|
8880
|
+
padding: 10px 14px;
|
|
8881
|
+
border-bottom: 1px solid var(--djm-border);
|
|
8882
|
+
background: var(--djm-surface-2);
|
|
8883
|
+
}
|
|
8884
|
+
|
|
8885
|
+
.djm-album-tabs {
|
|
8886
|
+
display: flex;
|
|
8887
|
+
flex-wrap: wrap;
|
|
8888
|
+
gap: 6px;
|
|
8889
|
+
}
|
|
8890
|
+
|
|
8891
|
+
.djm-album-tab {
|
|
8892
|
+
display: inline-flex;
|
|
8893
|
+
align-items: center;
|
|
8894
|
+
gap: 6px;
|
|
8895
|
+
height: 28px;
|
|
8896
|
+
padding: 0 10px;
|
|
8897
|
+
border: 1px solid var(--djm-border);
|
|
8898
|
+
border-radius: 14px;
|
|
8899
|
+
background: var(--djm-surface);
|
|
8900
|
+
color: var(--djm-text-2);
|
|
8901
|
+
font-size: 12px;
|
|
8902
|
+
cursor: pointer;
|
|
8903
|
+
}
|
|
8904
|
+
|
|
8905
|
+
.djm-album-tab span {
|
|
8906
|
+
color: var(--djm-text-3);
|
|
8907
|
+
font-size: 10.5px;
|
|
8908
|
+
}
|
|
8909
|
+
|
|
8910
|
+
.djm-album-tab:hover {
|
|
8911
|
+
border-color: var(--djm-brand-500);
|
|
8912
|
+
color: var(--djm-brand-700);
|
|
8913
|
+
}
|
|
8914
|
+
|
|
8915
|
+
.djm-album-tab.djm-is-active {
|
|
8916
|
+
border-color: var(--djm-brand-500);
|
|
8917
|
+
background: var(--djm-brand-soft);
|
|
8918
|
+
color: var(--djm-brand-700);
|
|
8919
|
+
font-weight: 600;
|
|
8920
|
+
}
|
|
8921
|
+
|
|
8922
|
+
.djm-album-tab.djm-is-active span {
|
|
8923
|
+
color: var(--djm-brand-700);
|
|
8924
|
+
}
|
|
8925
|
+
|
|
8926
|
+
.djm-album-actions {
|
|
8927
|
+
display: flex;
|
|
8928
|
+
align-items: center;
|
|
8929
|
+
gap: 10px;
|
|
8930
|
+
}
|
|
8931
|
+
|
|
8932
|
+
.djm-album-grid {
|
|
8933
|
+
display: grid;
|
|
8934
|
+
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
|
8935
|
+
gap: 14px;
|
|
8936
|
+
padding: 14px;
|
|
8937
|
+
}
|
|
8938
|
+
|
|
8939
|
+
.djm-album-card {
|
|
8940
|
+
position: relative;
|
|
8941
|
+
margin: 0;
|
|
8942
|
+
overflow: hidden;
|
|
8943
|
+
border: 1px solid var(--djm-border);
|
|
8944
|
+
border-radius: 6px;
|
|
8945
|
+
background: var(--djm-surface);
|
|
8946
|
+
}
|
|
8947
|
+
|
|
8948
|
+
.djm-album-card.djm-is-selected {
|
|
8949
|
+
border-color: var(--djm-brand-500);
|
|
8950
|
+
box-shadow: 0 0 0 2px var(--djm-brand-soft);
|
|
8951
|
+
}
|
|
8952
|
+
|
|
8953
|
+
.djm-album-thumb {
|
|
8954
|
+
position: relative;
|
|
8955
|
+
display: block;
|
|
8956
|
+
width: 100%;
|
|
8957
|
+
aspect-ratio: 4 / 3;
|
|
8958
|
+
padding: 0;
|
|
8959
|
+
overflow: hidden;
|
|
8960
|
+
border: 0;
|
|
8961
|
+
background: var(--djm-surface-3);
|
|
8962
|
+
cursor: zoom-in;
|
|
8963
|
+
}
|
|
8964
|
+
|
|
8965
|
+
.djm-album-thumb img {
|
|
8966
|
+
width: 100%;
|
|
8967
|
+
height: 100%;
|
|
8968
|
+
object-fit: cover;
|
|
8969
|
+
transition: transform 0.2s ease;
|
|
8970
|
+
}
|
|
8971
|
+
|
|
8972
|
+
.djm-album-thumb:hover img {
|
|
8973
|
+
transform: scale(1.04);
|
|
8974
|
+
}
|
|
8975
|
+
|
|
8976
|
+
.djm-album-zoom {
|
|
8977
|
+
position: absolute;
|
|
8978
|
+
left: 50%;
|
|
8979
|
+
top: 50%;
|
|
8980
|
+
display: inline-flex;
|
|
8981
|
+
align-items: center;
|
|
8982
|
+
gap: 4px;
|
|
8983
|
+
padding: 4px 8px;
|
|
8984
|
+
border-radius: 12px;
|
|
8985
|
+
background: rgba(15, 23, 32, 0.62);
|
|
8986
|
+
color: #fff;
|
|
8987
|
+
font-size: 11px;
|
|
8988
|
+
opacity: 0;
|
|
8989
|
+
pointer-events: none;
|
|
8990
|
+
transform: translate(-50%, -50%);
|
|
8991
|
+
transition: opacity 0.2s ease;
|
|
8992
|
+
}
|
|
8993
|
+
|
|
8994
|
+
.djm-album-thumb:hover .djm-album-zoom {
|
|
8995
|
+
opacity: 1;
|
|
8996
|
+
}
|
|
8997
|
+
|
|
8998
|
+
.djm-album-check {
|
|
8999
|
+
position: absolute;
|
|
9000
|
+
top: 8px;
|
|
9001
|
+
left: 8px;
|
|
9002
|
+
padding: 3px;
|
|
9003
|
+
border-radius: 4px;
|
|
9004
|
+
background: rgba(255, 255, 255, 0.9);
|
|
9005
|
+
}
|
|
9006
|
+
|
|
9007
|
+
.djm-album-card figcaption {
|
|
9008
|
+
display: flex;
|
|
9009
|
+
flex-direction: column;
|
|
9010
|
+
gap: 2px;
|
|
9011
|
+
padding: 8px 10px 10px;
|
|
9012
|
+
}
|
|
9013
|
+
|
|
9014
|
+
.djm-album-card figcaption strong {
|
|
9015
|
+
overflow: hidden;
|
|
9016
|
+
font-size: 12.5px;
|
|
9017
|
+
font-weight: 500;
|
|
9018
|
+
text-overflow: ellipsis;
|
|
9019
|
+
white-space: nowrap;
|
|
9020
|
+
}
|
|
9021
|
+
|
|
9022
|
+
.djm-album-card figcaption span {
|
|
9023
|
+
color: var(--djm-text-3);
|
|
9024
|
+
font-size: 11px;
|
|
9025
|
+
}
|
|
9026
|
+
|
|
9027
|
+
.djm-album-empty {
|
|
9028
|
+
padding: 60px 20px;
|
|
9029
|
+
}
|
|
9030
|
+
|
|
9031
|
+
.djm-album-viewer img {
|
|
9032
|
+
display: block;
|
|
9033
|
+
width: 100%;
|
|
9034
|
+
max-height: 520px;
|
|
9035
|
+
border-radius: 6px;
|
|
9036
|
+
background: var(--djm-surface-3);
|
|
9037
|
+
object-fit: contain;
|
|
9038
|
+
}
|
|
9039
|
+
|
|
9040
|
+
.djm-album-viewer-meta {
|
|
9041
|
+
display: flex;
|
|
9042
|
+
justify-content: space-between;
|
|
9043
|
+
gap: 10px;
|
|
9044
|
+
margin-top: 8px;
|
|
9045
|
+
color: var(--djm-text-3);
|
|
9046
|
+
font-size: 11.5px;
|
|
9047
|
+
}
|
|
9048
|
+
|
|
9049
|
+
@media (max-width: 860px) {
|
|
9050
|
+
.djm-fm {
|
|
9051
|
+
grid-template-columns: 1fr;
|
|
9052
|
+
}
|
|
9053
|
+
|
|
9054
|
+
.djm-fm-side {
|
|
9055
|
+
border-right: 0;
|
|
9056
|
+
border-bottom: 1px solid var(--djm-border);
|
|
9057
|
+
}
|
|
9058
|
+
|
|
9059
|
+
.djm-fm-folder {
|
|
9060
|
+
height: 30px;
|
|
9061
|
+
}
|
|
9062
|
+
|
|
9063
|
+
/* 窄屏:路径与搜索各占一行,避免文字被挤成两行 */
|
|
9064
|
+
.djm-fm-path {
|
|
9065
|
+
flex-wrap: wrap;
|
|
9066
|
+
}
|
|
9067
|
+
|
|
9068
|
+
.djm-fm-search {
|
|
9069
|
+
flex: 1 1 100%;
|
|
9070
|
+
}
|
|
9071
|
+
|
|
9072
|
+
.djm-fm-search input {
|
|
9073
|
+
width: 100%;
|
|
9074
|
+
}
|
|
9075
|
+
|
|
9076
|
+
.djm-fm-crumb em {
|
|
9077
|
+
display: none;
|
|
9078
|
+
}
|
|
9079
|
+
|
|
9080
|
+
.djm-fm-storage {
|
|
9081
|
+
display: none;
|
|
9082
|
+
}
|
|
9083
|
+
|
|
9084
|
+
.djm-fm-grid,
|
|
9085
|
+
.djm-album-grid {
|
|
9086
|
+
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
|
|
9087
|
+
}
|
|
9088
|
+
|
|
9089
|
+
.djm-fm-preview-meta {
|
|
9090
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
9091
|
+
}
|
|
9092
|
+
}
|
|
9093
|
+
|
|
8359
9094
|
/* ---- components/kanban.css ---- */
|
|
8360
9095
|
|
|
8361
9096
|
/* 看板:横向列排布,列内纵向卡片流,超宽横向滚动 */
|