knight-ui 1.2.4 → 1.2.6
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 +201 -8
- package/component/ai/AIChatInput.d.ts +66 -9
- package/component/input/AutoComplete.d.ts +14 -4
- package/component/input/TreeSelect.d.ts +3 -0
- package/component/plus/AttachmentPicker.d.ts +30 -0
- package/component/plus/Markdown.d.ts +26 -1
- package/component/plus/index.d.ts +2 -0
- package/index.d.ts +1 -0
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/tokens/tokens.css +37 -3
- package/utility/AttachmentUtility.d.ts +81 -0
- package/utility/index.d.ts +1 -0
package/package.json
CHANGED
package/tokens/tokens.css
CHANGED
|
@@ -856,10 +856,12 @@
|
|
|
856
856
|
transition: background-color var(--ku-transition-fast);
|
|
857
857
|
}
|
|
858
858
|
|
|
859
|
-
/*
|
|
859
|
+
/* 底走半透明档, 与 .ku-dropdown-item / .ku-menu-option 一致: 下拉面是毛玻璃(.ku-glass-menu),
|
|
860
|
+
不透明 fill-* 铺上去会把玻璃糊成一片死色 —— 玻璃白做。本行曾走 fill-1, 那时弹层底还是
|
|
861
|
+
bg-2, 悬停底与它几乎同值(等于没反馈); 换成玻璃档后, 不透明底这条前提整个没了。 */
|
|
860
862
|
.ku-select-option:hover
|
|
861
863
|
{
|
|
862
|
-
background-color: var(--ku-color-fill-
|
|
864
|
+
background-color: var(--ku-color-fill-translucent-hover);
|
|
863
865
|
}
|
|
864
866
|
|
|
865
867
|
.ku-select-option.ku-selected
|
|
@@ -868,7 +870,8 @@
|
|
|
868
870
|
background-color: var(--ku-color-primary-light-default);
|
|
869
871
|
}
|
|
870
872
|
|
|
871
|
-
/*
|
|
873
|
+
/* 选中项被悬停时不能被悬停底盖掉主色底, 要走主色浅档的下一级(特异性 (0,3,0), 高于上面两条)。
|
|
874
|
+
与 .ku-menu-option.ku-selected:hover 同档 —— 那条多一个禁用守卫, 这里没有禁用修饰类可挂 */
|
|
872
875
|
.ku-select-option.ku-selected:hover
|
|
873
876
|
{
|
|
874
877
|
background-color: var(--ku-color-primary-light-hover);
|
|
@@ -886,6 +889,37 @@
|
|
|
886
889
|
background-color: var(--ku-color-fill-translucent-hover);
|
|
887
890
|
}
|
|
888
891
|
|
|
892
|
+
/* ===== 玻璃菜单里的选项行 (Cascader / TreeSelect) =====
|
|
893
|
+
与 .ku-select-option 是同一件事的两份写法, 悬停 / 激活 / 选中 / 选中悬停四态已逐档对齐 ——
|
|
894
|
+
见上面 Select 那一组, 两边逐条对照即可。眼下只剩一处结构差异: 这里多一条 .ku-active ——
|
|
895
|
+
级联的"已展开路径", Select 没有这个概念。将来若并成一份, 只需把 .ku-active 那个选择器捎上。
|
|
896
|
+
前两条规则特异性都是 (0,2,0), 顺序即优先级: 悬停/激活在前、选中在后, 选中项被悬停时
|
|
897
|
+
才留得住蓝底; 最后一条 (0,3,0) 再压过前两条, 把悬停中的选中项加深一档。 */
|
|
898
|
+
.ku-menu-option
|
|
899
|
+
{
|
|
900
|
+
transition: background-color var(--ku-transition-fast);
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
/* 悬停与"激活"(已展开路径上那一行)同色 —— 两者都是"鼠标或视线正落在这行", 不必区分。
|
|
904
|
+
与"已选中"的蓝底分工: 中性底 = 正在看, 蓝底 = 选定了 */
|
|
905
|
+
.ku-menu-option:hover:not(.ku-menu-option-disabled),
|
|
906
|
+
.ku-menu-option.ku-active
|
|
907
|
+
{
|
|
908
|
+
background-color: var(--ku-color-fill-translucent-hover);
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
.ku-menu-option.ku-selected
|
|
912
|
+
{
|
|
913
|
+
color: var(--ku-color-primary);
|
|
914
|
+
background-color: var(--ku-color-primary-light-default);
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
/* 与 .ku-select-option.ku-selected:hover 同档 —— 选中项也要有悬停反馈, 否则划过与没划过长得一样 */
|
|
918
|
+
.ku-menu-option.ku-selected:hover:not(.ku-menu-option-disabled)
|
|
919
|
+
{
|
|
920
|
+
background-color: var(--ku-color-primary-light-hover);
|
|
921
|
+
}
|
|
922
|
+
|
|
889
923
|
/* ===== Modal 对话框 ===== */
|
|
890
924
|
/* 关闭按钮的底色内联没写, 所以这条穿得过去; 但 color 内联恒有值, 悬停改色是白写, 故只留底色。
|
|
891
925
|
底走半透明档: 对话框本身是毛玻璃, 不透明 fill-* 会在玻璃上糊出一片死色。 */
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 附件工具 — 只管"文件 → 附件"这一段: 类别判定、校验、缩略图生成与归还。
|
|
3
|
+
* 内容编码(base64 / 上传)不在这一层, 由调用方按平台处理。
|
|
4
|
+
*/
|
|
5
|
+
export declare namespace AttachmentUtility {
|
|
6
|
+
/** 附件类别 — 决定缩略图形状与发送时对应的 part 形态 */
|
|
7
|
+
type Kind = "image" | "file" | "audio" | "video";
|
|
8
|
+
/** fromFiles 的产物形状 — 各组件的附件模型只要结构兼容即可, 不必绑同一个类型 */
|
|
9
|
+
interface Item {
|
|
10
|
+
/** 稳定标识 */
|
|
11
|
+
id: string;
|
|
12
|
+
/** 文件名 */
|
|
13
|
+
name: string;
|
|
14
|
+
/** 字节数 */
|
|
15
|
+
size: number;
|
|
16
|
+
/** MIME */
|
|
17
|
+
type: string;
|
|
18
|
+
/** 类别 */
|
|
19
|
+
kind: Kind;
|
|
20
|
+
/** 图片缩略图(objectURL), 非图片为空 */
|
|
21
|
+
thumbnail?: string;
|
|
22
|
+
/** 原始文件 */
|
|
23
|
+
file: File;
|
|
24
|
+
}
|
|
25
|
+
/** 校验项 */
|
|
26
|
+
interface FilterOptions {
|
|
27
|
+
/** 与 <input accept> 同语法: 逗号分隔的后缀 / MIME / "type/*" */
|
|
28
|
+
accept?: string;
|
|
29
|
+
/** 是否允许多选, 不传视为允许 */
|
|
30
|
+
multiple?: boolean;
|
|
31
|
+
/** 数量上限 */
|
|
32
|
+
maxCount?: number;
|
|
33
|
+
/** 单个文件字节上限 */
|
|
34
|
+
maxSize?: number;
|
|
35
|
+
/** 已有数量 — 与 maxCount 一起算剩余名额 */
|
|
36
|
+
count?: number;
|
|
37
|
+
}
|
|
38
|
+
/** 被拒的原因 */
|
|
39
|
+
interface RejectReason {
|
|
40
|
+
file: File;
|
|
41
|
+
/** type=类型不符 / size=超体积 / count=超数量或多选受限 */
|
|
42
|
+
code: "type" | "size" | "count";
|
|
43
|
+
message: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 文件 → 附件; 图片顺带生成缩略图(内存 objectURL, 不用了须 release)
|
|
47
|
+
* @param files 原始文件
|
|
48
|
+
* @returns 附件项
|
|
49
|
+
*/
|
|
50
|
+
function fromFiles(files: Array<File>): Array<Item>;
|
|
51
|
+
/**
|
|
52
|
+
* 按 accept / maxSize / maxCount 过一遍 — 被拒的带上原因, 交给调用方去提示
|
|
53
|
+
* @param files 待校验文件
|
|
54
|
+
* @param options 校验项
|
|
55
|
+
* @returns 通过的文件与被拒原因
|
|
56
|
+
*/
|
|
57
|
+
function filter(files: Array<File>, options?: FilterOptions): {
|
|
58
|
+
accepted: Array<File>;
|
|
59
|
+
rejected: Array<RejectReason>;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* 归还缩略图占的内存 — 只认本工具生成的 blob: 地址, 调用方自带的 dataURL / 远程地址不动。
|
|
63
|
+
* 参数只要求 thumbnail 一个字段, 故各组件用自己的附件模型即可
|
|
64
|
+
* @param attachment 附件
|
|
65
|
+
*/
|
|
66
|
+
function release(attachment: {
|
|
67
|
+
thumbnail?: string;
|
|
68
|
+
}): void;
|
|
69
|
+
/**
|
|
70
|
+
* 类别判定 — 先看 MIME, 不可辨时退回后缀
|
|
71
|
+
* @param file 原始文件
|
|
72
|
+
* @returns 类别
|
|
73
|
+
*/
|
|
74
|
+
function kindOf(file: File): Kind;
|
|
75
|
+
/**
|
|
76
|
+
* 字节数 → 可读体量
|
|
77
|
+
* @param size 字节数
|
|
78
|
+
* @returns 可读字符串
|
|
79
|
+
*/
|
|
80
|
+
function readSize(size: number): string;
|
|
81
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./AttachmentUtility";
|