@tightknitai/slack-block-kit-validator 0.1.15 → 0.1.17
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/helpers/check-surface-compatibility.d.ts.map +1 -1
- package/dist/helpers/check-surface-compatibility.js +5 -7
- package/dist/helpers/check-surface-compatibility.js.map +1 -1
- package/dist/slack-block-kit.schema.json +7 -4
- package/dist/standalone-validator.js +3909 -3935
- package/dist/types.generated.d.ts +192 -185
- package/dist/types.generated.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -353,6 +353,84 @@ export type ImageElement1 = {
|
|
|
353
353
|
} | {
|
|
354
354
|
[k: string]: unknown | undefined;
|
|
355
355
|
};
|
|
356
|
+
/**
|
|
357
|
+
* A general-purpose wrapper that groups child blocks into a single, optionally collapsible unit with a configurable width. Messages and Home tabs (https://docs.slack.dev/reference/block-kit/blocks/container-block). At least one of title or rich_text_title is required; Slack renders rich_text_title when both are present. default_collapsed only takes effect when is_collapsible is true; the schema rejects default_collapsed: true without is_collapsible: true. has_header_divider only applies when the block is not collapsible; Slack ignores it otherwise, so the schema accepts it either way.
|
|
358
|
+
*/
|
|
359
|
+
export type ContainerBlock = ContainerBlock1 & {
|
|
360
|
+
type: "container";
|
|
361
|
+
block_id?: BlockId;
|
|
362
|
+
title?: PlainTextObject;
|
|
363
|
+
rich_text_title?: RichTextBlock;
|
|
364
|
+
subtitle?: TextObject;
|
|
365
|
+
icon?: ImageElement;
|
|
366
|
+
width?: "narrow" | "standard" | "wide" | "full";
|
|
367
|
+
is_collapsible?: boolean;
|
|
368
|
+
default_collapsed?: boolean;
|
|
369
|
+
has_header_divider?: boolean;
|
|
370
|
+
/**
|
|
371
|
+
* @minItems 1
|
|
372
|
+
* @maxItems 10
|
|
373
|
+
*/
|
|
374
|
+
child_blocks: [ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock, ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock, ContainerChildBlock, ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock, ContainerChildBlock, ContainerChildBlock, ContainerChildBlock] | [
|
|
375
|
+
ContainerChildBlock,
|
|
376
|
+
ContainerChildBlock,
|
|
377
|
+
ContainerChildBlock,
|
|
378
|
+
ContainerChildBlock,
|
|
379
|
+
ContainerChildBlock,
|
|
380
|
+
ContainerChildBlock
|
|
381
|
+
] | [
|
|
382
|
+
ContainerChildBlock,
|
|
383
|
+
ContainerChildBlock,
|
|
384
|
+
ContainerChildBlock,
|
|
385
|
+
ContainerChildBlock,
|
|
386
|
+
ContainerChildBlock,
|
|
387
|
+
ContainerChildBlock,
|
|
388
|
+
ContainerChildBlock
|
|
389
|
+
] | [
|
|
390
|
+
ContainerChildBlock,
|
|
391
|
+
ContainerChildBlock,
|
|
392
|
+
ContainerChildBlock,
|
|
393
|
+
ContainerChildBlock,
|
|
394
|
+
ContainerChildBlock,
|
|
395
|
+
ContainerChildBlock,
|
|
396
|
+
ContainerChildBlock,
|
|
397
|
+
ContainerChildBlock
|
|
398
|
+
] | [
|
|
399
|
+
ContainerChildBlock,
|
|
400
|
+
ContainerChildBlock,
|
|
401
|
+
ContainerChildBlock,
|
|
402
|
+
ContainerChildBlock,
|
|
403
|
+
ContainerChildBlock,
|
|
404
|
+
ContainerChildBlock,
|
|
405
|
+
ContainerChildBlock,
|
|
406
|
+
ContainerChildBlock,
|
|
407
|
+
ContainerChildBlock
|
|
408
|
+
] | [
|
|
409
|
+
ContainerChildBlock,
|
|
410
|
+
ContainerChildBlock,
|
|
411
|
+
ContainerChildBlock,
|
|
412
|
+
ContainerChildBlock,
|
|
413
|
+
ContainerChildBlock,
|
|
414
|
+
ContainerChildBlock,
|
|
415
|
+
ContainerChildBlock,
|
|
416
|
+
ContainerChildBlock,
|
|
417
|
+
ContainerChildBlock,
|
|
418
|
+
ContainerChildBlock
|
|
419
|
+
];
|
|
420
|
+
};
|
|
421
|
+
export type ContainerBlock1 = {
|
|
422
|
+
[k: string]: unknown | undefined;
|
|
423
|
+
} | {
|
|
424
|
+
[k: string]: unknown | undefined;
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
* Any of the 4 rich-text container kinds usable inside a rich_text block's elements array.
|
|
428
|
+
*/
|
|
429
|
+
export type RichTextContainerElement = RichTextSectionElement | RichTextListElement | RichTextPreformattedElement | RichTextQuoteElement;
|
|
430
|
+
/**
|
|
431
|
+
* Any of the 10 rich-text leaf element kinds.
|
|
432
|
+
*/
|
|
433
|
+
export type RichTextLeaf = RichTextTextLeaf | RichTextLinkLeaf | RichTextUserLeaf | RichTextUsergroupLeaf | RichTextTeamLeaf | RichTextChannelLeaf | RichTextEmojiLeaf | RichTextBroadcastLeaf | RichTextColorLeaf | RichTextDateLeaf;
|
|
356
434
|
/**
|
|
357
435
|
* A block allowed inside a container block's child_blocks array. Slack documents this set as: actions, context, divider, file, header, image, input, rich_text, section, table, video (https://docs.slack.dev/reference/block-kit/blocks/container-block). Notably excludes container itself (no nesting) and message-only chrome like card/carousel/markdown.
|
|
358
436
|
*/
|
|
@@ -388,14 +466,6 @@ export type ImageBlock1 = {
|
|
|
388
466
|
* Elements that may appear as the element of an input block.
|
|
389
467
|
*/
|
|
390
468
|
export type InputBlockElement = PlainTextInputElement | EmailInputElement | UrlInputElement | NumberInputElement | CheckboxesElement | RadioButtonsElement | DatepickerElement | DatetimepickerElement | TimepickerElement | StaticSelectElement | ExternalSelectElement | UsersSelectElement | ConversationsSelectElement | ChannelsSelectElement | MultiStaticSelectElement | MultiExternalSelectElement | MultiUsersSelectElement | MultiConversationsSelectElement | MultiChannelsSelectElement | RichTextInputElement | FileInputElement;
|
|
391
|
-
/**
|
|
392
|
-
* Any of the 4 rich-text container kinds usable inside a rich_text block's elements array.
|
|
393
|
-
*/
|
|
394
|
-
export type RichTextContainerElement = RichTextSectionElement | RichTextListElement | RichTextPreformattedElement | RichTextQuoteElement;
|
|
395
|
-
/**
|
|
396
|
-
* Any of the 10 rich-text leaf element kinds.
|
|
397
|
-
*/
|
|
398
|
-
export type RichTextLeaf = RichTextTextLeaf | RichTextLinkLeaf | RichTextUserLeaf | RichTextUsergroupLeaf | RichTextTeamLeaf | RichTextChannelLeaf | RichTextEmojiLeaf | RichTextBroadcastLeaf | RichTextColorLeaf | RichTextDateLeaf;
|
|
399
469
|
/**
|
|
400
470
|
* Must have text or fields (or both).
|
|
401
471
|
*/
|
|
@@ -930,68 +1000,124 @@ export interface CarouselBlock {
|
|
|
930
1000
|
elements: [CardBlock] | [CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock] | [CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock, CardBlock];
|
|
931
1001
|
block_id?: BlockId;
|
|
932
1002
|
}
|
|
1003
|
+
export interface RichTextBlock {
|
|
1004
|
+
type: "rich_text";
|
|
1005
|
+
/**
|
|
1006
|
+
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1007
|
+
*/
|
|
1008
|
+
elements: RichTextContainerElement[];
|
|
1009
|
+
block_id?: BlockId;
|
|
1010
|
+
}
|
|
1011
|
+
export interface RichTextSectionElement {
|
|
1012
|
+
type: "rich_text_section";
|
|
1013
|
+
/**
|
|
1014
|
+
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1015
|
+
*/
|
|
1016
|
+
elements: RichTextLeaf[];
|
|
1017
|
+
}
|
|
1018
|
+
export interface RichTextTextLeaf {
|
|
1019
|
+
type: "text";
|
|
1020
|
+
text: string;
|
|
1021
|
+
style?: RichTextStyleObject;
|
|
1022
|
+
}
|
|
933
1023
|
/**
|
|
934
|
-
*
|
|
1024
|
+
* Style flags for rich-text leaf elements. Slack docs disagree on which flags are allowed per leaf type; this is the union of all flags documented.
|
|
935
1025
|
*/
|
|
936
|
-
export interface
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
1026
|
+
export interface RichTextStyleObject {
|
|
1027
|
+
bold?: boolean;
|
|
1028
|
+
italic?: boolean;
|
|
1029
|
+
strike?: boolean;
|
|
1030
|
+
underline?: boolean;
|
|
1031
|
+
code?: boolean;
|
|
1032
|
+
highlight?: boolean;
|
|
1033
|
+
client_highlight?: boolean;
|
|
1034
|
+
unlink?: boolean;
|
|
1035
|
+
}
|
|
1036
|
+
export interface RichTextLinkLeaf {
|
|
1037
|
+
type: "link";
|
|
1038
|
+
url: string;
|
|
1039
|
+
text?: string;
|
|
1040
|
+
unsafe?: boolean;
|
|
1041
|
+
style?: RichTextStyleObject;
|
|
1042
|
+
}
|
|
1043
|
+
export interface RichTextUserLeaf {
|
|
1044
|
+
type: "user";
|
|
1045
|
+
user_id: string;
|
|
1046
|
+
style?: RichTextStyleObject;
|
|
1047
|
+
}
|
|
1048
|
+
export interface RichTextUsergroupLeaf {
|
|
1049
|
+
type: "usergroup";
|
|
1050
|
+
usergroup_id: string;
|
|
1051
|
+
style?: RichTextStyleObject;
|
|
1052
|
+
}
|
|
1053
|
+
/**
|
|
1054
|
+
* Whole-team mention (e.g. <!T12345>) — referenced by team_id.
|
|
1055
|
+
*/
|
|
1056
|
+
export interface RichTextTeamLeaf {
|
|
1057
|
+
type: "team";
|
|
1058
|
+
team_id: string;
|
|
1059
|
+
style?: RichTextStyleObject;
|
|
1060
|
+
}
|
|
1061
|
+
export interface RichTextChannelLeaf {
|
|
1062
|
+
type: "channel";
|
|
1063
|
+
channel_id: string;
|
|
1064
|
+
style?: RichTextStyleObject;
|
|
1065
|
+
}
|
|
1066
|
+
/**
|
|
1067
|
+
* Slack's official docs (rich-text-block reference) only list type/name/unicode, but the API silently accepts a `style` object on emoji leaves. We allow it to match observed behavior.
|
|
1068
|
+
*/
|
|
1069
|
+
export interface RichTextEmojiLeaf {
|
|
1070
|
+
type: "emoji";
|
|
1071
|
+
name: string;
|
|
1072
|
+
skin_tone?: number;
|
|
1073
|
+
unicode?: string;
|
|
1074
|
+
style?: RichTextStyleObject;
|
|
1075
|
+
}
|
|
1076
|
+
export interface RichTextBroadcastLeaf {
|
|
1077
|
+
type: "broadcast";
|
|
1078
|
+
range: "here" | "channel" | "everyone";
|
|
1079
|
+
style?: RichTextStyleObject;
|
|
1080
|
+
}
|
|
1081
|
+
export interface RichTextColorLeaf {
|
|
1082
|
+
type: "color";
|
|
1083
|
+
value: string;
|
|
1084
|
+
style?: RichTextStyleObject;
|
|
1085
|
+
}
|
|
1086
|
+
export interface RichTextDateLeaf {
|
|
1087
|
+
type: "date";
|
|
1088
|
+
timestamp: number;
|
|
1089
|
+
format: string;
|
|
1090
|
+
url?: string;
|
|
1091
|
+
fallback?: string;
|
|
1092
|
+
style?: RichTextStyleObject;
|
|
1093
|
+
}
|
|
1094
|
+
export interface RichTextListElement {
|
|
1095
|
+
type: "rich_text_list";
|
|
1096
|
+
style: "bullet" | "ordered";
|
|
945
1097
|
/**
|
|
946
1098
|
* @minItems 1
|
|
947
|
-
* @maxItems 10
|
|
948
1099
|
*/
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
ContainerChildBlock,
|
|
971
|
-
ContainerChildBlock,
|
|
972
|
-
ContainerChildBlock
|
|
973
|
-
] | [
|
|
974
|
-
ContainerChildBlock,
|
|
975
|
-
ContainerChildBlock,
|
|
976
|
-
ContainerChildBlock,
|
|
977
|
-
ContainerChildBlock,
|
|
978
|
-
ContainerChildBlock,
|
|
979
|
-
ContainerChildBlock,
|
|
980
|
-
ContainerChildBlock,
|
|
981
|
-
ContainerChildBlock,
|
|
982
|
-
ContainerChildBlock
|
|
983
|
-
] | [
|
|
984
|
-
ContainerChildBlock,
|
|
985
|
-
ContainerChildBlock,
|
|
986
|
-
ContainerChildBlock,
|
|
987
|
-
ContainerChildBlock,
|
|
988
|
-
ContainerChildBlock,
|
|
989
|
-
ContainerChildBlock,
|
|
990
|
-
ContainerChildBlock,
|
|
991
|
-
ContainerChildBlock,
|
|
992
|
-
ContainerChildBlock,
|
|
993
|
-
ContainerChildBlock
|
|
994
|
-
];
|
|
1100
|
+
elements: [RichTextSectionElement, ...RichTextSectionElement[]];
|
|
1101
|
+
indent?: number;
|
|
1102
|
+
offset?: number;
|
|
1103
|
+
border?: 0 | 1;
|
|
1104
|
+
}
|
|
1105
|
+
export interface RichTextPreformattedElement {
|
|
1106
|
+
type: "rich_text_preformatted";
|
|
1107
|
+
/**
|
|
1108
|
+
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1109
|
+
*/
|
|
1110
|
+
elements: RichTextLeaf[];
|
|
1111
|
+
border?: 0 | 1;
|
|
1112
|
+
language?: string;
|
|
1113
|
+
}
|
|
1114
|
+
export interface RichTextQuoteElement {
|
|
1115
|
+
type: "rich_text_quote";
|
|
1116
|
+
/**
|
|
1117
|
+
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1118
|
+
*/
|
|
1119
|
+
elements: RichTextLeaf[];
|
|
1120
|
+
border?: 0 | 1;
|
|
995
1121
|
}
|
|
996
1122
|
export interface ContextBlock {
|
|
997
1123
|
type: "context";
|
|
@@ -1146,125 +1272,6 @@ export interface RichTextInputElement {
|
|
|
1146
1272
|
focus_on_load?: boolean;
|
|
1147
1273
|
placeholder?: PlaceholderObject;
|
|
1148
1274
|
}
|
|
1149
|
-
export interface RichTextBlock {
|
|
1150
|
-
type: "rich_text";
|
|
1151
|
-
/**
|
|
1152
|
-
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1153
|
-
*/
|
|
1154
|
-
elements: RichTextContainerElement[];
|
|
1155
|
-
block_id?: BlockId;
|
|
1156
|
-
}
|
|
1157
|
-
export interface RichTextSectionElement {
|
|
1158
|
-
type: "rich_text_section";
|
|
1159
|
-
/**
|
|
1160
|
-
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1161
|
-
*/
|
|
1162
|
-
elements: RichTextLeaf[];
|
|
1163
|
-
}
|
|
1164
|
-
export interface RichTextTextLeaf {
|
|
1165
|
-
type: "text";
|
|
1166
|
-
text: string;
|
|
1167
|
-
style?: RichTextStyleObject;
|
|
1168
|
-
}
|
|
1169
|
-
/**
|
|
1170
|
-
* Style flags for rich-text leaf elements. Slack docs disagree on which flags are allowed per leaf type; this is the union of all flags documented.
|
|
1171
|
-
*/
|
|
1172
|
-
export interface RichTextStyleObject {
|
|
1173
|
-
bold?: boolean;
|
|
1174
|
-
italic?: boolean;
|
|
1175
|
-
strike?: boolean;
|
|
1176
|
-
underline?: boolean;
|
|
1177
|
-
code?: boolean;
|
|
1178
|
-
highlight?: boolean;
|
|
1179
|
-
client_highlight?: boolean;
|
|
1180
|
-
unlink?: boolean;
|
|
1181
|
-
}
|
|
1182
|
-
export interface RichTextLinkLeaf {
|
|
1183
|
-
type: "link";
|
|
1184
|
-
url: string;
|
|
1185
|
-
text?: string;
|
|
1186
|
-
unsafe?: boolean;
|
|
1187
|
-
style?: RichTextStyleObject;
|
|
1188
|
-
}
|
|
1189
|
-
export interface RichTextUserLeaf {
|
|
1190
|
-
type: "user";
|
|
1191
|
-
user_id: string;
|
|
1192
|
-
style?: RichTextStyleObject;
|
|
1193
|
-
}
|
|
1194
|
-
export interface RichTextUsergroupLeaf {
|
|
1195
|
-
type: "usergroup";
|
|
1196
|
-
usergroup_id: string;
|
|
1197
|
-
style?: RichTextStyleObject;
|
|
1198
|
-
}
|
|
1199
|
-
/**
|
|
1200
|
-
* Whole-team mention (e.g. <!T12345>) — referenced by team_id.
|
|
1201
|
-
*/
|
|
1202
|
-
export interface RichTextTeamLeaf {
|
|
1203
|
-
type: "team";
|
|
1204
|
-
team_id: string;
|
|
1205
|
-
style?: RichTextStyleObject;
|
|
1206
|
-
}
|
|
1207
|
-
export interface RichTextChannelLeaf {
|
|
1208
|
-
type: "channel";
|
|
1209
|
-
channel_id: string;
|
|
1210
|
-
style?: RichTextStyleObject;
|
|
1211
|
-
}
|
|
1212
|
-
/**
|
|
1213
|
-
* Slack's official docs (rich-text-block reference) only list type/name/unicode, but the API silently accepts a `style` object on emoji leaves. We allow it to match observed behavior.
|
|
1214
|
-
*/
|
|
1215
|
-
export interface RichTextEmojiLeaf {
|
|
1216
|
-
type: "emoji";
|
|
1217
|
-
name: string;
|
|
1218
|
-
skin_tone?: number;
|
|
1219
|
-
unicode?: string;
|
|
1220
|
-
style?: RichTextStyleObject;
|
|
1221
|
-
}
|
|
1222
|
-
export interface RichTextBroadcastLeaf {
|
|
1223
|
-
type: "broadcast";
|
|
1224
|
-
range: "here" | "channel" | "everyone";
|
|
1225
|
-
style?: RichTextStyleObject;
|
|
1226
|
-
}
|
|
1227
|
-
export interface RichTextColorLeaf {
|
|
1228
|
-
type: "color";
|
|
1229
|
-
value: string;
|
|
1230
|
-
style?: RichTextStyleObject;
|
|
1231
|
-
}
|
|
1232
|
-
export interface RichTextDateLeaf {
|
|
1233
|
-
type: "date";
|
|
1234
|
-
timestamp: number;
|
|
1235
|
-
format: string;
|
|
1236
|
-
url?: string;
|
|
1237
|
-
fallback?: string;
|
|
1238
|
-
style?: RichTextStyleObject;
|
|
1239
|
-
}
|
|
1240
|
-
export interface RichTextListElement {
|
|
1241
|
-
type: "rich_text_list";
|
|
1242
|
-
style: "bullet" | "ordered";
|
|
1243
|
-
/**
|
|
1244
|
-
* @minItems 1
|
|
1245
|
-
*/
|
|
1246
|
-
elements: [RichTextSectionElement, ...RichTextSectionElement[]];
|
|
1247
|
-
indent?: number;
|
|
1248
|
-
offset?: number;
|
|
1249
|
-
border?: 0 | 1;
|
|
1250
|
-
}
|
|
1251
|
-
export interface RichTextPreformattedElement {
|
|
1252
|
-
type: "rich_text_preformatted";
|
|
1253
|
-
/**
|
|
1254
|
-
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1255
|
-
*/
|
|
1256
|
-
elements: RichTextLeaf[];
|
|
1257
|
-
border?: 0 | 1;
|
|
1258
|
-
language?: string;
|
|
1259
|
-
}
|
|
1260
|
-
export interface RichTextQuoteElement {
|
|
1261
|
-
type: "rich_text_quote";
|
|
1262
|
-
/**
|
|
1263
|
-
* Empty array is accepted by Slack (verified in Block Kit Builder 2026-04-16).
|
|
1264
|
-
*/
|
|
1265
|
-
elements: RichTextLeaf[];
|
|
1266
|
-
border?: 0 | 1;
|
|
1267
|
-
}
|
|
1268
1275
|
/**
|
|
1269
1276
|
* Must be used inside an input block in modals only. Requires files:read OAuth scope. 10MB per-file limit (not enforceable in JSON Schema).
|
|
1270
1277
|
*/
|
|
@@ -2501,7 +2508,7 @@ export interface DataTableBlock {
|
|
|
2501
2508
|
];
|
|
2502
2509
|
}
|
|
2503
2510
|
/**
|
|
2504
|
-
* Renders data as a line, bar, area, or pie chart. Messages
|
|
2511
|
+
* Renders data as a line, bar, area, or pie chart. Messages and Home tabs (https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block). Slack renders at most two data_visualization blocks per message (enforced via the checkDataVisualizationMax helper, since JSON Schema can't count sibling blocks). Two further runtime rules are enforced via checkDataVisualizationConsistency, since they depend on sibling-field values JSON Schema can't compare: series names must be unique within a chart, and each series must contain exactly one data point per axis_config.categories label.
|
|
2505
2512
|
*/
|
|
2506
2513
|
export interface DataVisualizationBlock {
|
|
2507
2514
|
type: "data_visualization";
|