@open-feishu-card/schema 0.1.1 → 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/dist/index.cjs +3074 -0
- package/dist/index.js +2965 -16
- package/package.json +7 -4
- package/dist/card.js +0 -41
- package/dist/card.js.map +0 -1
- package/dist/common/behavior.js +0 -39
- package/dist/common/behavior.js.map +0 -1
- package/dist/common/behaviors-context.js +0 -88
- package/dist/common/behaviors-context.js.map +0 -1
- package/dist/common/confirm.js +0 -12
- package/dist/common/confirm.js.map +0 -1
- package/dist/common/enums.js +0 -131
- package/dist/common/enums.js.map +0 -1
- package/dist/common/fallback.js +0 -22
- package/dist/common/fallback.js.map +0 -1
- package/dist/common/icon-tokens.js +0 -1163
- package/dist/common/icon-tokens.js.map +0 -1
- package/dist/common/icon.js +0 -49
- package/dist/common/icon.js.map +0 -1
- package/dist/common/index.js +0 -9
- package/dist/common/index.js.map +0 -1
- package/dist/common/text.js +0 -80
- package/dist/common/text.js.map +0 -1
- package/dist/common/url.js +0 -30
- package/dist/common/url.js.map +0 -1
- package/dist/config.js +0 -123
- package/dist/config.js.map +0 -1
- package/dist/containers/index.js +0 -205
- package/dist/containers/index.js.map +0 -1
- package/dist/content/index.js +0 -426
- package/dist/content/index.js.map +0 -1
- package/dist/element-ref.js +0 -17
- package/dist/element-ref.js.map +0 -1
- package/dist/element.js +0 -46
- package/dist/element.js.map +0 -1
- package/dist/header.js +0 -27
- package/dist/header.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interactive/index.js +0 -533
- package/dist/interactive/index.js.map +0 -1
- package/dist/markdown/builders.js +0 -140
- package/dist/markdown/builders.js.map +0 -1
- package/dist/markdown/code-language.js +0 -79
- package/dist/markdown/code-language.js.map +0 -1
- package/dist/markdown/component.js +0 -38
- package/dist/markdown/component.js.map +0 -1
- package/dist/markdown/emoji-tokens.js +0 -193
- package/dist/markdown/emoji-tokens.js.map +0 -1
- package/dist/markdown/enums.js +0 -49
- package/dist/markdown/enums.js.map +0 -1
- package/dist/markdown/escape.js +0 -42
- package/dist/markdown/escape.js.map +0 -1
- package/dist/markdown/index.js +0 -16
- package/dist/markdown/index.js.map +0 -1
- package/dist/markdown/tags.js +0 -238
- package/dist/markdown/tags.js.map +0 -1
- package/dist/markdown/text-size.js +0 -58
- package/dist/markdown/text-size.js.map +0 -1
package/dist/markdown/tags.js
DELETED
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { IconTokenSchema } from '../common/icon-tokens.js';
|
|
3
|
-
import { ColorSchema } from '../common/enums.js';
|
|
4
|
-
import { MarkdownDateTimeFormatSchema, MarkdownInlineAudioStyleSchema, MarkdownPersonStyleSchema, MarkdownTextTagColorSchema, } from './enums.js';
|
|
5
|
-
function boolAttr(value) {
|
|
6
|
-
if (value === undefined)
|
|
7
|
-
return undefined;
|
|
8
|
-
return value ? 'true' : 'false';
|
|
9
|
-
}
|
|
10
|
-
function renderAttrs(attrs) {
|
|
11
|
-
return Object.entries(attrs)
|
|
12
|
-
.filter(([, v]) => v !== undefined && v !== '')
|
|
13
|
-
.map(([k, v]) => ` ${k}='${String(v)}'`)
|
|
14
|
-
.join('');
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* `@` 提及标签参数(会通知对方)。
|
|
18
|
-
* 渲染为 `<at id=...></at>` / `<at ids=...></at>` / `<at email=...></at>`。
|
|
19
|
-
* 仅展示不通知请用 `<person>` / person / person_list。
|
|
20
|
-
*/
|
|
21
|
-
export const MarkdownAtTagSchema = z
|
|
22
|
-
.object({
|
|
23
|
-
id: z
|
|
24
|
-
.string()
|
|
25
|
-
.optional()
|
|
26
|
-
.describe('单个用户 ID:优先 open_id(ou_) 或 user_id,或 all(@所有人);不要用 union_id(on_)'),
|
|
27
|
-
ids: z
|
|
28
|
-
.array(z.string())
|
|
29
|
-
.optional()
|
|
30
|
-
.describe('多个用户 ID,渲染为 ids=id1,id2;优先 ou_/user_id'),
|
|
31
|
-
email: z.string().optional().describe('通过邮箱 @ 指定人'),
|
|
32
|
-
})
|
|
33
|
-
.superRefine((data, ctx) => {
|
|
34
|
-
const count = [data.id, data.ids?.length, data.email].filter(Boolean).length;
|
|
35
|
-
if (count !== 1) {
|
|
36
|
-
ctx.addIssue({
|
|
37
|
-
code: 'custom',
|
|
38
|
-
message: 'at 标签需且仅需提供 id、ids、email 其中之一',
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
.describe('@ 提及标签 <at>:会通知对方。提示词明确要 @/艾特/通知时用;禁止用 person/<person> 冒充。勿把 <at> 包进 <font>');
|
|
43
|
-
/** 渲染 `<at ...></at>` */
|
|
44
|
-
export function renderAtTag(input) {
|
|
45
|
-
const data = MarkdownAtTagSchema.parse(input);
|
|
46
|
-
if (data.id !== undefined)
|
|
47
|
-
return `<at id=${data.id}></at>`;
|
|
48
|
-
if (data.ids)
|
|
49
|
-
return `<at ids=${data.ids.join(',')}></at>`;
|
|
50
|
-
return `<at email=${data.email}></at>`;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* 人员展示标签参数(仅展示,不发提及通知)。
|
|
54
|
-
*/
|
|
55
|
-
export const MarkdownPersonTagSchema = z
|
|
56
|
-
.object({
|
|
57
|
-
id: z
|
|
58
|
-
.string()
|
|
59
|
-
.describe('用户 ID:优先 open_id(ou_) 或 user_id;不要用 union_id(on_)。禁止臆造'),
|
|
60
|
-
show_name: z.boolean().optional().describe('是否展示用户名,默认 true'),
|
|
61
|
-
show_avatar: z.boolean().optional().describe('是否展示头像,默认 true'),
|
|
62
|
-
style: MarkdownPersonStyleSchema.optional().describe('展示样式,默认 normal'),
|
|
63
|
-
})
|
|
64
|
-
.describe('人员展示标签 <person>:仅渲染头像/姓名,不通知。行内展示优先用此标签;要通知改用 <at>。勿包进 <font>');
|
|
65
|
-
export function renderPersonTag(input) {
|
|
66
|
-
const data = MarkdownPersonTagSchema.parse(input);
|
|
67
|
-
return `<person${renderAttrs({
|
|
68
|
-
id: data.id,
|
|
69
|
-
show_name: boolAttr(data.show_name),
|
|
70
|
-
show_avatar: boolAttr(data.show_avatar),
|
|
71
|
-
style: data.style,
|
|
72
|
-
})}></person>`;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* 含图标的多端链接标签。
|
|
76
|
-
*/
|
|
77
|
-
export const MarkdownLinkTagSchema = z
|
|
78
|
-
.object({
|
|
79
|
-
text: z.string().describe('链接展示文案'),
|
|
80
|
-
url: z.string().describe('默认跳转地址(必填)'),
|
|
81
|
-
icon: IconTokenSchema.optional().describe('前缀图标 token,颜色固定蓝色'),
|
|
82
|
-
pc_url: z.string().optional().describe('PC 端链接,优先级高于 url'),
|
|
83
|
-
ios_url: z.string().optional().describe('iOS 端链接,优先级高于 url'),
|
|
84
|
-
android_url: z.string().optional().describe('Android 端链接,优先级高于 url'),
|
|
85
|
-
})
|
|
86
|
-
.describe('含图标的多端链接标签 <link> 参数');
|
|
87
|
-
export function renderLinkTag(input) {
|
|
88
|
-
const data = MarkdownLinkTagSchema.parse(input);
|
|
89
|
-
return `<link${renderAttrs({
|
|
90
|
-
icon: data.icon,
|
|
91
|
-
url: data.url,
|
|
92
|
-
pc_url: data.pc_url,
|
|
93
|
-
ios_url: data.ios_url,
|
|
94
|
-
android_url: data.android_url,
|
|
95
|
-
})}>${data.text}</link>`;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* 文本标签。状态、优先级、序号等短标识优先用此标签。
|
|
99
|
-
*/
|
|
100
|
-
export const MarkdownTextTagSchema = z
|
|
101
|
-
.object({
|
|
102
|
-
text: z.string().describe('标签文案(短标识)'),
|
|
103
|
-
color: MarkdownTextTagColorSchema.optional().describe('标签颜色'),
|
|
104
|
-
})
|
|
105
|
-
.describe('文本标签 <text_tag>:用于状态/优先级/序号等短标识。写法示例:`<text_tag color=\'blue\'>标签</text_tag>` + 两个空格 + 正文');
|
|
106
|
-
export function renderTextTag(input) {
|
|
107
|
-
const data = MarkdownTextTagSchema.parse(input);
|
|
108
|
-
return `<text_tag${renderAttrs({ color: data.color })}>${data.text}</text_tag>`;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* 数字角标(0–99)。
|
|
112
|
-
*/
|
|
113
|
-
export const MarkdownNumberTagSchema = z
|
|
114
|
-
.object({
|
|
115
|
-
number: z
|
|
116
|
-
.number()
|
|
117
|
-
.int()
|
|
118
|
-
.min(0)
|
|
119
|
-
.max(99)
|
|
120
|
-
.describe('角标数字,0–99'),
|
|
121
|
-
background_color: ColorSchema.optional().describe('圆圈背景色'),
|
|
122
|
-
font_color: ColorSchema.optional().describe('数字颜色'),
|
|
123
|
-
url: z.string().optional().describe('点击跳转默认链接'),
|
|
124
|
-
pc_url: z.string().optional().describe('PC 端跳转链接'),
|
|
125
|
-
ios_url: z.string().optional().describe('iOS 端跳转链接'),
|
|
126
|
-
android_url: z.string().optional().describe('Android 端跳转链接'),
|
|
127
|
-
})
|
|
128
|
-
.describe('数字角标 <number_tag> 参数');
|
|
129
|
-
export function renderNumberTag(input) {
|
|
130
|
-
const data = MarkdownNumberTagSchema.parse(input);
|
|
131
|
-
return `<number_tag${renderAttrs({
|
|
132
|
-
background_color: data.background_color,
|
|
133
|
-
font_color: data.font_color,
|
|
134
|
-
url: data.url,
|
|
135
|
-
pc_url: data.pc_url,
|
|
136
|
-
ios_url: data.ios_url,
|
|
137
|
-
android_url: data.android_url,
|
|
138
|
-
})}>${data.number}</number_tag>`;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* 国际化时间标签。
|
|
142
|
-
*/
|
|
143
|
-
export const MarkdownLocalDateTimeTagSchema = z
|
|
144
|
-
.object({
|
|
145
|
-
millisecond: z
|
|
146
|
-
.union([z.string(), z.number()])
|
|
147
|
-
.optional()
|
|
148
|
-
.describe('Unix 毫秒时间戳;省略则用发送/发布时间'),
|
|
149
|
-
format_type: MarkdownDateTimeFormatSchema.optional().describe('时间展示格式,默认 date_num'),
|
|
150
|
-
link: z.string().optional().describe('点击时间跳转的链接'),
|
|
151
|
-
})
|
|
152
|
-
.describe('国际化时间标签 <local_datetime> 参数');
|
|
153
|
-
export function renderLocalDateTimeTag(input) {
|
|
154
|
-
const data = MarkdownLocalDateTimeTagSchema.parse(input);
|
|
155
|
-
return `<local_datetime${renderAttrs({
|
|
156
|
-
millisecond: data.millisecond,
|
|
157
|
-
format_type: data.format_type,
|
|
158
|
-
link: data.link,
|
|
159
|
-
})}></local_datetime>`;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* 彩色文本(font)标签。
|
|
163
|
-
* 字段标签常用 grey;禁止把 `<at>` / `<person>` 包进 `<font>`(会显示标签原文)。
|
|
164
|
-
*/
|
|
165
|
-
export const MarkdownFontTagSchema = z
|
|
166
|
-
.object({
|
|
167
|
-
text: z
|
|
168
|
-
.string()
|
|
169
|
-
.describe('文本内容;不要在其中嵌套 <at>/<person>(嵌套后常显示标签原文)'),
|
|
170
|
-
color: ColorSchema.describe('文本颜色:default、颜色枚举或 rgba;不对链接文本生效。字段标签常用 grey'),
|
|
171
|
-
})
|
|
172
|
-
.describe("彩色文本 <font>。正例:`<font color='grey'>作者:</font><person id='ou_xxx' show_name=true show_avatar=true style='normal'></person>`");
|
|
173
|
-
export function renderFontTag(input) {
|
|
174
|
-
const data = MarkdownFontTagSchema.parse(input);
|
|
175
|
-
return `<font color='${data.color}'>${data.text}</font>`;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* 普通超链接(a)标签。
|
|
179
|
-
*/
|
|
180
|
-
export const MarkdownAnchorTagSchema = z
|
|
181
|
-
.object({
|
|
182
|
-
href: z.string().describe('跳转地址,仅支持 HTTP/HTTPS'),
|
|
183
|
-
text: z.string().optional().describe('展示文案;省略时通常展示 URL'),
|
|
184
|
-
})
|
|
185
|
-
.describe('超链接 <a> 参数');
|
|
186
|
-
export function renderAnchorTag(input) {
|
|
187
|
-
const data = MarkdownAnchorTagSchema.parse(input);
|
|
188
|
-
return `<a href='${data.href}'>${data.text ?? ''}</a>`;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* 富文本内嵌音频标签。
|
|
192
|
-
*/
|
|
193
|
-
export const MarkdownInlineAudioTagSchema = z
|
|
194
|
-
.object({
|
|
195
|
-
file_key: z.string().describe('音频文件 key(上传文件接口返回)'),
|
|
196
|
-
audio_id: z.string().optional().describe('音频实例唯一标识'),
|
|
197
|
-
show_time: z.boolean().optional().describe('是否显示时长,默认 false'),
|
|
198
|
-
style: MarkdownInlineAudioStyleSchema.optional().describe('音频样式,默认 normal'),
|
|
199
|
-
background_color: ColorSchema.optional().describe('组件背景色'),
|
|
200
|
-
fill_color: ColorSchema.optional().describe('图标与时间颜色'),
|
|
201
|
-
fallback_text: z
|
|
202
|
-
.string()
|
|
203
|
-
.optional()
|
|
204
|
-
.describe('低版本客户端降级文案;指定时必须同时提供 fallback_url'),
|
|
205
|
-
fallback_url: z.string().optional().describe('低版本客户端兜底 URL'),
|
|
206
|
-
fallback_pc_url: z.string().optional().describe('PC 端兜底 URL'),
|
|
207
|
-
fallback_ios_url: z.string().optional().describe('iOS 端兜底 URL'),
|
|
208
|
-
fallback_android_url: z.string().optional().describe('Android 端兜底 URL'),
|
|
209
|
-
fallback_harmony_url: z.string().optional().describe('鸿蒙端兜底 URL'),
|
|
210
|
-
})
|
|
211
|
-
.superRefine((data, ctx) => {
|
|
212
|
-
if (data.fallback_text && !data.fallback_url) {
|
|
213
|
-
ctx.addIssue({
|
|
214
|
-
code: 'custom',
|
|
215
|
-
message: '指定 fallback_text 时必须同时提供 fallback_url',
|
|
216
|
-
path: ['fallback_url'],
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
})
|
|
220
|
-
.describe('富文本内嵌音频 <audio> 参数');
|
|
221
|
-
export function renderInlineAudioTag(input) {
|
|
222
|
-
const data = MarkdownInlineAudioTagSchema.parse(input);
|
|
223
|
-
return `<audio${renderAttrs({
|
|
224
|
-
file_key: data.file_key,
|
|
225
|
-
audio_id: data.audio_id,
|
|
226
|
-
show_time: boolAttr(data.show_time),
|
|
227
|
-
style: data.style,
|
|
228
|
-
background_color: data.background_color,
|
|
229
|
-
fill_color: data.fill_color,
|
|
230
|
-
fallback_text: data.fallback_text,
|
|
231
|
-
fallback_url: data.fallback_url,
|
|
232
|
-
fallback_pc_url: data.fallback_pc_url,
|
|
233
|
-
fallback_ios_url: data.fallback_ios_url,
|
|
234
|
-
fallback_android_url: data.fallback_android_url,
|
|
235
|
-
fallback_harmony_url: data.fallback_harmony_url,
|
|
236
|
-
})}></audio>`;
|
|
237
|
-
}
|
|
238
|
-
//# sourceMappingURL=tags.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/markdown/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* 富文本 / 普通文本组件的官方字号枚举。
|
|
4
|
-
*/
|
|
5
|
-
export const MarkdownTextSizeEnumSchema = z
|
|
6
|
-
.enum([
|
|
7
|
-
'heading-0',
|
|
8
|
-
'heading-1',
|
|
9
|
-
'heading-2',
|
|
10
|
-
'heading-3',
|
|
11
|
-
'heading-4',
|
|
12
|
-
'heading',
|
|
13
|
-
'normal',
|
|
14
|
-
'notation',
|
|
15
|
-
'xxxx-large',
|
|
16
|
-
'xxx-large',
|
|
17
|
-
'xx-large',
|
|
18
|
-
'x-large',
|
|
19
|
-
'large',
|
|
20
|
-
'medium',
|
|
21
|
-
'small',
|
|
22
|
-
'x-small',
|
|
23
|
-
])
|
|
24
|
-
.describe('官方字号枚举。heading-* / normal / notation,或 xxxx-large … x-small(约 10–30px)');
|
|
25
|
-
/**
|
|
26
|
-
* 自定义像素字号。支持 10px–40px(覆盖官方最小 x-small 到略大于 heading-0)。
|
|
27
|
-
*/
|
|
28
|
-
export const MarkdownTextSizePixelSchema = z
|
|
29
|
-
.string()
|
|
30
|
-
.regex(/^(1[0-9]|2[0-9]|3[0-9]|40)px$/, {
|
|
31
|
-
error: '像素字号须为 10px–40px,例如 "14px"、"28px"',
|
|
32
|
-
})
|
|
33
|
-
.describe('自定义像素字号,支持 10px–40px');
|
|
34
|
-
/**
|
|
35
|
-
* config.style.text_size 中声明的自定义 key(如 cus-0)。
|
|
36
|
-
* 不以纯数字 px 形式书写,避免与像素字号混淆。
|
|
37
|
-
*/
|
|
38
|
-
export const MarkdownTextSizeCustomKeySchema = z
|
|
39
|
-
.string()
|
|
40
|
-
.min(1)
|
|
41
|
-
.refine((value) => !/^\d+px$/.test(value), {
|
|
42
|
-
message: '像素字号请使用 10px–40px;其它 px 值不合法',
|
|
43
|
-
})
|
|
44
|
-
.describe('config.style.text_size 自定义 key,如 cus-0');
|
|
45
|
-
/**
|
|
46
|
-
* 组件 text_size:
|
|
47
|
-
* 1. 官方枚举
|
|
48
|
-
* 2. 像素值 10px–40px
|
|
49
|
-
* 3. config.style.text_size 自定义 key
|
|
50
|
-
*/
|
|
51
|
-
export const MarkdownTextSizeSchema = z
|
|
52
|
-
.union([
|
|
53
|
-
MarkdownTextSizeEnumSchema,
|
|
54
|
-
MarkdownTextSizePixelSchema,
|
|
55
|
-
MarkdownTextSizeCustomKeySchema,
|
|
56
|
-
])
|
|
57
|
-
.describe('文本大小:官方枚举、10px–40px 像素值,或 config.style.text_size 自定义 key');
|
|
58
|
-
//# sourceMappingURL=text-size.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-size.js","sourceRoot":"","sources":["../../src/markdown/text-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,IAAI,CAAC;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;CACV,CAAC;KACD,QAAQ,CACP,wEAAwE,CACzE,CAAC;AAIJ;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,EAAE;KACR,KAAK,CAAC,+BAA+B,EAAE;IACtC,KAAK,EAAE,mCAAmC;CAC3C,CAAC;KACD,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAIpC;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,EAAE,8BAA8B;CACxC,CAAC;KACD,QAAQ,CAAC,wCAAwC,CAAC,CAAC;AAMtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,KAAK,CAAC;IACL,0BAA0B;IAC1B,2BAA2B;IAC3B,+BAA+B;CAChC,CAAC;KACD,QAAQ,CACP,0DAA0D,CAC3D,CAAC"}
|