@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.
Files changed (58) hide show
  1. package/dist/index.cjs +3074 -0
  2. package/dist/index.js +2965 -16
  3. package/package.json +7 -4
  4. package/dist/card.js +0 -41
  5. package/dist/card.js.map +0 -1
  6. package/dist/common/behavior.js +0 -39
  7. package/dist/common/behavior.js.map +0 -1
  8. package/dist/common/behaviors-context.js +0 -88
  9. package/dist/common/behaviors-context.js.map +0 -1
  10. package/dist/common/confirm.js +0 -12
  11. package/dist/common/confirm.js.map +0 -1
  12. package/dist/common/enums.js +0 -131
  13. package/dist/common/enums.js.map +0 -1
  14. package/dist/common/fallback.js +0 -22
  15. package/dist/common/fallback.js.map +0 -1
  16. package/dist/common/icon-tokens.js +0 -1163
  17. package/dist/common/icon-tokens.js.map +0 -1
  18. package/dist/common/icon.js +0 -49
  19. package/dist/common/icon.js.map +0 -1
  20. package/dist/common/index.js +0 -9
  21. package/dist/common/index.js.map +0 -1
  22. package/dist/common/text.js +0 -80
  23. package/dist/common/text.js.map +0 -1
  24. package/dist/common/url.js +0 -30
  25. package/dist/common/url.js.map +0 -1
  26. package/dist/config.js +0 -123
  27. package/dist/config.js.map +0 -1
  28. package/dist/containers/index.js +0 -205
  29. package/dist/containers/index.js.map +0 -1
  30. package/dist/content/index.js +0 -426
  31. package/dist/content/index.js.map +0 -1
  32. package/dist/element-ref.js +0 -17
  33. package/dist/element-ref.js.map +0 -1
  34. package/dist/element.js +0 -46
  35. package/dist/element.js.map +0 -1
  36. package/dist/header.js +0 -27
  37. package/dist/header.js.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/dist/interactive/index.js +0 -533
  40. package/dist/interactive/index.js.map +0 -1
  41. package/dist/markdown/builders.js +0 -140
  42. package/dist/markdown/builders.js.map +0 -1
  43. package/dist/markdown/code-language.js +0 -79
  44. package/dist/markdown/code-language.js.map +0 -1
  45. package/dist/markdown/component.js +0 -38
  46. package/dist/markdown/component.js.map +0 -1
  47. package/dist/markdown/emoji-tokens.js +0 -193
  48. package/dist/markdown/emoji-tokens.js.map +0 -1
  49. package/dist/markdown/enums.js +0 -49
  50. package/dist/markdown/enums.js.map +0 -1
  51. package/dist/markdown/escape.js +0 -42
  52. package/dist/markdown/escape.js.map +0 -1
  53. package/dist/markdown/index.js +0 -16
  54. package/dist/markdown/index.js.map +0 -1
  55. package/dist/markdown/tags.js +0 -238
  56. package/dist/markdown/tags.js.map +0 -1
  57. package/dist/markdown/text-size.js +0 -58
  58. package/dist/markdown/text-size.js.map +0 -1
@@ -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"}