@tightknitai/slack-block-kit-validator 0.1.8 → 0.1.9

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.
@@ -5,7 +5,7 @@ export type SlackBlockKitPayload = [Block, ...Block[]] | ModalView | HomeView;
5
5
  /**
6
6
  * Discriminated union of every Block Kit block type.
7
7
  */
8
- export type Block = ActionsBlock | AlertBlock | CardBlock | CarouselBlock | ContextActionsBlock | ContextBlock | DataVisualizationBlock | DividerBlock | FileBlock | HeaderBlock | ImageBlock | InputBlock | MarkdownBlock | PlanBlock | RichTextBlock | SectionBlock | TableBlock | TaskCardBlock | VideoBlock;
8
+ export type Block = ActionsBlock | AlertBlock | CardBlock | CarouselBlock | ContainerBlock | ContextActionsBlock | ContextBlock | DataVisualizationBlock | DividerBlock | FileBlock | HeaderBlock | ImageBlock | InputBlock | MarkdownBlock | PlanBlock | RichTextBlock | SectionBlock | TableBlock | TaskCardBlock | VideoBlock;
9
9
  /**
10
10
  * Elements allowed inside an actions block.
11
11
  */
@@ -327,6 +327,11 @@ export type ImageElement = {
327
327
  alt_text: string;
328
328
  image_url?: string;
329
329
  slack_file?: SlackFileObject;
330
+ } & ImageElement1 & {
331
+ type: "image";
332
+ alt_text: string;
333
+ image_url?: string;
334
+ slack_file?: SlackFileObject;
330
335
  } & ImageElement1;
331
336
  /**
332
337
  * Reference to a Slack file. Exactly one of url or id must be provided. Supported file types: png, jpg, jpeg, gif.
@@ -349,58 +354,13 @@ export type ImageElement1 = {
349
354
  [k: string]: unknown | undefined;
350
355
  };
351
356
  /**
352
- * Elements allowed inside a context_actions block.
357
+ * 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.
353
358
  */
354
- export type ContextActionsBlockElement = FeedbackButtonsElement | IconButtonElement;
359
+ export type ContainerChildBlock = ActionsBlock | ContextBlock | DividerBlock | FileBlock | HeaderBlock | ImageBlock | InputBlock | RichTextBlock | SectionBlock | TableBlock | VideoBlock;
355
360
  /**
356
361
  * Elements allowed inside a context block.
357
362
  */
358
363
  export type ContextBlockElement = ImageElement | TextObject;
359
- /**
360
- * The chart rendered by a data_visualization block. line/bar/area charts use series + axis_config; pie charts use segments.
361
- */
362
- export type DataVisualizationChart = {
363
- type: "line" | "bar" | "area";
364
- /**
365
- * @minItems 1
366
- * @maxItems 6
367
- */
368
- series: [DataVisualizationSeries] | [DataVisualizationSeries, DataVisualizationSeries] | [DataVisualizationSeries, DataVisualizationSeries, DataVisualizationSeries] | [DataVisualizationSeries, DataVisualizationSeries, DataVisualizationSeries, DataVisualizationSeries] | [
369
- DataVisualizationSeries,
370
- DataVisualizationSeries,
371
- DataVisualizationSeries,
372
- DataVisualizationSeries,
373
- DataVisualizationSeries
374
- ] | [
375
- DataVisualizationSeries,
376
- DataVisualizationSeries,
377
- DataVisualizationSeries,
378
- DataVisualizationSeries,
379
- DataVisualizationSeries,
380
- DataVisualizationSeries
381
- ];
382
- axis_config: DataVisualizationAxisConfig;
383
- } | {
384
- type: "pie";
385
- /**
386
- * @minItems 1
387
- * @maxItems 6
388
- */
389
- segments: [DataVisualizationSegment] | [DataVisualizationSegment, DataVisualizationSegment] | [DataVisualizationSegment, DataVisualizationSegment, DataVisualizationSegment] | [DataVisualizationSegment, DataVisualizationSegment, DataVisualizationSegment, DataVisualizationSegment] | [
390
- DataVisualizationSegment,
391
- DataVisualizationSegment,
392
- DataVisualizationSegment,
393
- DataVisualizationSegment,
394
- DataVisualizationSegment
395
- ] | [
396
- DataVisualizationSegment,
397
- DataVisualizationSegment,
398
- DataVisualizationSegment,
399
- DataVisualizationSegment,
400
- DataVisualizationSegment,
401
- DataVisualizationSegment
402
- ];
403
- };
404
364
  /**
405
365
  * Either image_url or slack_file is required (not both).
406
366
  */
@@ -411,6 +371,13 @@ export type ImageBlock = {
411
371
  slack_file?: SlackFileObject;
412
372
  title?: PlainTextObject;
413
373
  block_id?: BlockId;
374
+ } & ImageBlock1 & {
375
+ type: "image";
376
+ alt_text: string;
377
+ image_url?: string;
378
+ slack_file?: SlackFileObject;
379
+ title?: PlainTextObject;
380
+ block_id?: BlockId;
414
381
  } & ImageBlock1;
415
382
  export type ImageBlock1 = {
416
383
  [k: string]: unknown | undefined;
@@ -454,6 +421,28 @@ export type SectionBlock = SectionBlock1 & {
454
421
  ];
455
422
  accessory?: SectionAccessoryElement;
456
423
  expand?: boolean;
424
+ } & SectionBlock1 & {
425
+ type: "section";
426
+ text?: TextObject;
427
+ block_id?: BlockId;
428
+ /**
429
+ * @minItems 1
430
+ * @maxItems 10
431
+ */
432
+ fields?: [TextObject] | [TextObject, TextObject] | [TextObject, TextObject, TextObject] | [TextObject, TextObject, TextObject, TextObject] | [TextObject, TextObject, TextObject, TextObject, TextObject] | [TextObject, TextObject, TextObject, TextObject, TextObject, TextObject] | [TextObject, TextObject, TextObject, TextObject, TextObject, TextObject, TextObject] | [TextObject, TextObject, TextObject, TextObject, TextObject, TextObject, TextObject, TextObject] | [TextObject, TextObject, TextObject, TextObject, TextObject, TextObject, TextObject, TextObject, TextObject] | [
433
+ TextObject,
434
+ TextObject,
435
+ TextObject,
436
+ TextObject,
437
+ TextObject,
438
+ TextObject,
439
+ TextObject,
440
+ TextObject,
441
+ TextObject,
442
+ TextObject
443
+ ];
444
+ accessory?: SectionAccessoryElement;
445
+ expand?: boolean;
457
446
  };
458
447
  export type SectionBlock1 = {
459
448
  [k: string]: unknown | undefined;
@@ -484,6 +473,55 @@ export type TableColumnSetting = null | {
484
473
  align?: "left" | "center" | "right";
485
474
  is_wrapped?: boolean;
486
475
  };
476
+ /**
477
+ * Elements allowed inside a context_actions block.
478
+ */
479
+ export type ContextActionsBlockElement = FeedbackButtonsElement | IconButtonElement;
480
+ /**
481
+ * The chart rendered by a data_visualization block. line/bar/area charts use series + axis_config; pie charts use segments.
482
+ */
483
+ export type DataVisualizationChart = {
484
+ type: "line" | "bar" | "area";
485
+ /**
486
+ * @minItems 1
487
+ * @maxItems 6
488
+ */
489
+ series: [DataVisualizationSeries] | [DataVisualizationSeries, DataVisualizationSeries] | [DataVisualizationSeries, DataVisualizationSeries, DataVisualizationSeries] | [DataVisualizationSeries, DataVisualizationSeries, DataVisualizationSeries, DataVisualizationSeries] | [
490
+ DataVisualizationSeries,
491
+ DataVisualizationSeries,
492
+ DataVisualizationSeries,
493
+ DataVisualizationSeries,
494
+ DataVisualizationSeries
495
+ ] | [
496
+ DataVisualizationSeries,
497
+ DataVisualizationSeries,
498
+ DataVisualizationSeries,
499
+ DataVisualizationSeries,
500
+ DataVisualizationSeries,
501
+ DataVisualizationSeries
502
+ ];
503
+ axis_config: DataVisualizationAxisConfig;
504
+ } | {
505
+ type: "pie";
506
+ /**
507
+ * @minItems 1
508
+ * @maxItems 6
509
+ */
510
+ segments: [DataVisualizationSegment] | [DataVisualizationSegment, DataVisualizationSegment] | [DataVisualizationSegment, DataVisualizationSegment, DataVisualizationSegment] | [DataVisualizationSegment, DataVisualizationSegment, DataVisualizationSegment, DataVisualizationSegment] | [
511
+ DataVisualizationSegment,
512
+ DataVisualizationSegment,
513
+ DataVisualizationSegment,
514
+ DataVisualizationSegment,
515
+ DataVisualizationSegment
516
+ ] | [
517
+ DataVisualizationSegment,
518
+ DataVisualizationSegment,
519
+ DataVisualizationSegment,
520
+ DataVisualizationSegment,
521
+ DataVisualizationSegment,
522
+ DataVisualizationSegment
523
+ ];
524
+ };
487
525
  export interface ActionsBlock {
488
526
  type: "actions";
489
527
  /**
@@ -878,47 +916,68 @@ export interface CarouselBlock {
878
916
  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];
879
917
  block_id?: BlockId;
880
918
  }
881
- export interface ContextActionsBlock {
882
- type: "context_actions";
919
+ /**
920
+ * A general-purpose wrapper that groups child blocks into a single, optionally collapsible unit with a configurable width. Messages only (https://docs.slack.dev/reference/block-kit/blocks/container-block). default_collapsed only takes effect when is_collapsible is true; the schema rejects default_collapsed: true without is_collapsible: true.
921
+ */
922
+ export interface ContainerBlock {
923
+ type: "container";
924
+ block_id?: BlockId;
925
+ title: PlainTextObject;
926
+ subtitle?: PlainTextObject;
927
+ icon?: ImageElement;
928
+ width?: "narrow" | "standard" | "wide" | "full";
929
+ is_collapsible?: boolean;
930
+ default_collapsed?: boolean;
883
931
  /**
884
932
  * @minItems 1
885
- * @maxItems 5
933
+ * @maxItems 10
886
934
  */
887
- elements: [ContextActionsBlockElement] | [ContextActionsBlockElement, ContextActionsBlockElement] | [ContextActionsBlockElement, ContextActionsBlockElement, ContextActionsBlockElement] | [ContextActionsBlockElement, ContextActionsBlockElement, ContextActionsBlockElement, ContextActionsBlockElement] | [
888
- ContextActionsBlockElement,
889
- ContextActionsBlockElement,
890
- ContextActionsBlockElement,
891
- ContextActionsBlockElement,
892
- ContextActionsBlockElement
935
+ child_blocks: [ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock, ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock, ContainerChildBlock, ContainerChildBlock] | [ContainerChildBlock, ContainerChildBlock, ContainerChildBlock, ContainerChildBlock, ContainerChildBlock] | [
936
+ ContainerChildBlock,
937
+ ContainerChildBlock,
938
+ ContainerChildBlock,
939
+ ContainerChildBlock,
940
+ ContainerChildBlock,
941
+ ContainerChildBlock
942
+ ] | [
943
+ ContainerChildBlock,
944
+ ContainerChildBlock,
945
+ ContainerChildBlock,
946
+ ContainerChildBlock,
947
+ ContainerChildBlock,
948
+ ContainerChildBlock,
949
+ ContainerChildBlock
950
+ ] | [
951
+ ContainerChildBlock,
952
+ ContainerChildBlock,
953
+ ContainerChildBlock,
954
+ ContainerChildBlock,
955
+ ContainerChildBlock,
956
+ ContainerChildBlock,
957
+ ContainerChildBlock,
958
+ ContainerChildBlock
959
+ ] | [
960
+ ContainerChildBlock,
961
+ ContainerChildBlock,
962
+ ContainerChildBlock,
963
+ ContainerChildBlock,
964
+ ContainerChildBlock,
965
+ ContainerChildBlock,
966
+ ContainerChildBlock,
967
+ ContainerChildBlock,
968
+ ContainerChildBlock
969
+ ] | [
970
+ ContainerChildBlock,
971
+ ContainerChildBlock,
972
+ ContainerChildBlock,
973
+ ContainerChildBlock,
974
+ ContainerChildBlock,
975
+ ContainerChildBlock,
976
+ ContainerChildBlock,
977
+ ContainerChildBlock,
978
+ ContainerChildBlock,
979
+ ContainerChildBlock
893
980
  ];
894
- block_id?: BlockId;
895
- }
896
- /**
897
- * Must be used inside a context_actions block.
898
- */
899
- export interface FeedbackButtonsElement {
900
- type: "feedback_buttons";
901
- positive_button: FeedbackButtonSubobject;
902
- negative_button: FeedbackButtonSubobject;
903
- action_id?: ActionId;
904
- }
905
- export interface FeedbackButtonSubobject {
906
- text: PlainTextObject;
907
- value: string;
908
- accessibility_label?: string;
909
- }
910
- /**
911
- * Icon button — only valid inside a context_actions block.
912
- */
913
- export interface IconButtonElement {
914
- type: "icon_button";
915
- icon: "trash";
916
- text: PlainTextObject;
917
- action_id?: ActionId;
918
- value?: string;
919
- confirm?: ConfirmObject;
920
- accessibility_label?: string;
921
- visible_to_user_ids?: string[];
922
981
  }
923
982
  export interface ContextBlock {
924
983
  type: "context";
@@ -974,313 +1033,55 @@ export interface ContextBlock {
974
1033
  ];
975
1034
  block_id?: BlockId;
976
1035
  }
1036
+ export interface DividerBlock {
1037
+ type: "divider";
1038
+ block_id?: BlockId;
1039
+ }
977
1040
  /**
978
- * Renders data as a line, bar, area, or pie chart. Messages only (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.
1041
+ * Cannot be added to app surfaces directly; surfaces only when retrieving messages that contain remote files.
979
1042
  */
980
- export interface DataVisualizationBlock {
981
- type: "data_visualization";
1043
+ export interface FileBlock {
1044
+ type: "file";
1045
+ external_id: string;
1046
+ source: "remote";
982
1047
  block_id?: BlockId;
983
- title: string;
984
- chart: DataVisualizationChart;
1048
+ }
1049
+ export interface HeaderBlock {
1050
+ type: "header";
1051
+ text: PlainTextObject;
1052
+ block_id?: BlockId;
1053
+ level?: number;
985
1054
  }
986
1055
  /**
987
- * A named series of data points plotted on a line/bar/area chart. The name drives the chart legend and must be unique across all series in the same chart (enforced via checkDataVisualizationConsistency).
1056
+ * If element is a file_input, dispatch_action must not be true.
988
1057
  */
989
- export interface DataVisualizationSeries {
990
- name: string;
1058
+ export interface InputBlock {
1059
+ type: "input";
1060
+ label: PlainTextObject;
1061
+ element: InputBlockElement;
1062
+ dispatch_action?: boolean;
1063
+ block_id?: BlockId;
1064
+ hint?: PlainTextObject;
1065
+ optional?: boolean;
1066
+ }
1067
+ /**
1068
+ * Must be used inside an input block.
1069
+ */
1070
+ export interface PlainTextInputElement {
1071
+ type: "plain_text_input";
1072
+ action_id?: ActionId;
1073
+ initial_value?: string;
1074
+ multiline?: boolean;
1075
+ min_length?: number;
1076
+ max_length?: number;
1077
+ dispatch_action_config?: DispatchActionConfigObject;
1078
+ focus_on_load?: boolean;
1079
+ placeholder?: PlaceholderObject;
1080
+ }
1081
+ export interface DispatchActionConfigObject {
991
1082
  /**
992
1083
  * @minItems 1
993
- * @maxItems 20
994
- */
995
- data: [DataVisualizationDataPoint] | [DataVisualizationDataPoint, DataVisualizationDataPoint] | [DataVisualizationDataPoint, DataVisualizationDataPoint, DataVisualizationDataPoint] | [DataVisualizationDataPoint, DataVisualizationDataPoint, DataVisualizationDataPoint, DataVisualizationDataPoint] | [
996
- DataVisualizationDataPoint,
997
- DataVisualizationDataPoint,
998
- DataVisualizationDataPoint,
999
- DataVisualizationDataPoint,
1000
- DataVisualizationDataPoint
1001
- ] | [
1002
- DataVisualizationDataPoint,
1003
- DataVisualizationDataPoint,
1004
- DataVisualizationDataPoint,
1005
- DataVisualizationDataPoint,
1006
- DataVisualizationDataPoint,
1007
- DataVisualizationDataPoint
1008
- ] | [
1009
- DataVisualizationDataPoint,
1010
- DataVisualizationDataPoint,
1011
- DataVisualizationDataPoint,
1012
- DataVisualizationDataPoint,
1013
- DataVisualizationDataPoint,
1014
- DataVisualizationDataPoint,
1015
- DataVisualizationDataPoint
1016
- ] | [
1017
- DataVisualizationDataPoint,
1018
- DataVisualizationDataPoint,
1019
- DataVisualizationDataPoint,
1020
- DataVisualizationDataPoint,
1021
- DataVisualizationDataPoint,
1022
- DataVisualizationDataPoint,
1023
- DataVisualizationDataPoint,
1024
- DataVisualizationDataPoint
1025
- ] | [
1026
- DataVisualizationDataPoint,
1027
- DataVisualizationDataPoint,
1028
- DataVisualizationDataPoint,
1029
- DataVisualizationDataPoint,
1030
- DataVisualizationDataPoint,
1031
- DataVisualizationDataPoint,
1032
- DataVisualizationDataPoint,
1033
- DataVisualizationDataPoint,
1034
- DataVisualizationDataPoint
1035
- ] | [
1036
- DataVisualizationDataPoint,
1037
- DataVisualizationDataPoint,
1038
- DataVisualizationDataPoint,
1039
- DataVisualizationDataPoint,
1040
- DataVisualizationDataPoint,
1041
- DataVisualizationDataPoint,
1042
- DataVisualizationDataPoint,
1043
- DataVisualizationDataPoint,
1044
- DataVisualizationDataPoint,
1045
- DataVisualizationDataPoint
1046
- ] | [
1047
- DataVisualizationDataPoint,
1048
- DataVisualizationDataPoint,
1049
- DataVisualizationDataPoint,
1050
- DataVisualizationDataPoint,
1051
- DataVisualizationDataPoint,
1052
- DataVisualizationDataPoint,
1053
- DataVisualizationDataPoint,
1054
- DataVisualizationDataPoint,
1055
- DataVisualizationDataPoint,
1056
- DataVisualizationDataPoint,
1057
- DataVisualizationDataPoint
1058
- ] | [
1059
- DataVisualizationDataPoint,
1060
- DataVisualizationDataPoint,
1061
- DataVisualizationDataPoint,
1062
- DataVisualizationDataPoint,
1063
- DataVisualizationDataPoint,
1064
- DataVisualizationDataPoint,
1065
- DataVisualizationDataPoint,
1066
- DataVisualizationDataPoint,
1067
- DataVisualizationDataPoint,
1068
- DataVisualizationDataPoint,
1069
- DataVisualizationDataPoint,
1070
- DataVisualizationDataPoint
1071
- ] | [
1072
- DataVisualizationDataPoint,
1073
- DataVisualizationDataPoint,
1074
- DataVisualizationDataPoint,
1075
- DataVisualizationDataPoint,
1076
- DataVisualizationDataPoint,
1077
- DataVisualizationDataPoint,
1078
- DataVisualizationDataPoint,
1079
- DataVisualizationDataPoint,
1080
- DataVisualizationDataPoint,
1081
- DataVisualizationDataPoint,
1082
- DataVisualizationDataPoint,
1083
- DataVisualizationDataPoint,
1084
- DataVisualizationDataPoint
1085
- ] | [
1086
- DataVisualizationDataPoint,
1087
- DataVisualizationDataPoint,
1088
- DataVisualizationDataPoint,
1089
- DataVisualizationDataPoint,
1090
- DataVisualizationDataPoint,
1091
- DataVisualizationDataPoint,
1092
- DataVisualizationDataPoint,
1093
- DataVisualizationDataPoint,
1094
- DataVisualizationDataPoint,
1095
- DataVisualizationDataPoint,
1096
- DataVisualizationDataPoint,
1097
- DataVisualizationDataPoint,
1098
- DataVisualizationDataPoint,
1099
- DataVisualizationDataPoint
1100
- ] | [
1101
- DataVisualizationDataPoint,
1102
- DataVisualizationDataPoint,
1103
- DataVisualizationDataPoint,
1104
- DataVisualizationDataPoint,
1105
- DataVisualizationDataPoint,
1106
- DataVisualizationDataPoint,
1107
- DataVisualizationDataPoint,
1108
- DataVisualizationDataPoint,
1109
- DataVisualizationDataPoint,
1110
- DataVisualizationDataPoint,
1111
- DataVisualizationDataPoint,
1112
- DataVisualizationDataPoint,
1113
- DataVisualizationDataPoint,
1114
- DataVisualizationDataPoint,
1115
- DataVisualizationDataPoint
1116
- ] | [
1117
- DataVisualizationDataPoint,
1118
- DataVisualizationDataPoint,
1119
- DataVisualizationDataPoint,
1120
- DataVisualizationDataPoint,
1121
- DataVisualizationDataPoint,
1122
- DataVisualizationDataPoint,
1123
- DataVisualizationDataPoint,
1124
- DataVisualizationDataPoint,
1125
- DataVisualizationDataPoint,
1126
- DataVisualizationDataPoint,
1127
- DataVisualizationDataPoint,
1128
- DataVisualizationDataPoint,
1129
- DataVisualizationDataPoint,
1130
- DataVisualizationDataPoint,
1131
- DataVisualizationDataPoint,
1132
- DataVisualizationDataPoint
1133
- ] | [
1134
- DataVisualizationDataPoint,
1135
- DataVisualizationDataPoint,
1136
- DataVisualizationDataPoint,
1137
- DataVisualizationDataPoint,
1138
- DataVisualizationDataPoint,
1139
- DataVisualizationDataPoint,
1140
- DataVisualizationDataPoint,
1141
- DataVisualizationDataPoint,
1142
- DataVisualizationDataPoint,
1143
- DataVisualizationDataPoint,
1144
- DataVisualizationDataPoint,
1145
- DataVisualizationDataPoint,
1146
- DataVisualizationDataPoint,
1147
- DataVisualizationDataPoint,
1148
- DataVisualizationDataPoint,
1149
- DataVisualizationDataPoint,
1150
- DataVisualizationDataPoint
1151
- ] | [
1152
- DataVisualizationDataPoint,
1153
- DataVisualizationDataPoint,
1154
- DataVisualizationDataPoint,
1155
- DataVisualizationDataPoint,
1156
- DataVisualizationDataPoint,
1157
- DataVisualizationDataPoint,
1158
- DataVisualizationDataPoint,
1159
- DataVisualizationDataPoint,
1160
- DataVisualizationDataPoint,
1161
- DataVisualizationDataPoint,
1162
- DataVisualizationDataPoint,
1163
- DataVisualizationDataPoint,
1164
- DataVisualizationDataPoint,
1165
- DataVisualizationDataPoint,
1166
- DataVisualizationDataPoint,
1167
- DataVisualizationDataPoint,
1168
- DataVisualizationDataPoint,
1169
- DataVisualizationDataPoint
1170
- ] | [
1171
- DataVisualizationDataPoint,
1172
- DataVisualizationDataPoint,
1173
- DataVisualizationDataPoint,
1174
- DataVisualizationDataPoint,
1175
- DataVisualizationDataPoint,
1176
- DataVisualizationDataPoint,
1177
- DataVisualizationDataPoint,
1178
- DataVisualizationDataPoint,
1179
- DataVisualizationDataPoint,
1180
- DataVisualizationDataPoint,
1181
- DataVisualizationDataPoint,
1182
- DataVisualizationDataPoint,
1183
- DataVisualizationDataPoint,
1184
- DataVisualizationDataPoint,
1185
- DataVisualizationDataPoint,
1186
- DataVisualizationDataPoint,
1187
- DataVisualizationDataPoint,
1188
- DataVisualizationDataPoint,
1189
- DataVisualizationDataPoint
1190
- ] | [
1191
- DataVisualizationDataPoint,
1192
- DataVisualizationDataPoint,
1193
- DataVisualizationDataPoint,
1194
- DataVisualizationDataPoint,
1195
- DataVisualizationDataPoint,
1196
- DataVisualizationDataPoint,
1197
- DataVisualizationDataPoint,
1198
- DataVisualizationDataPoint,
1199
- DataVisualizationDataPoint,
1200
- DataVisualizationDataPoint,
1201
- DataVisualizationDataPoint,
1202
- DataVisualizationDataPoint,
1203
- DataVisualizationDataPoint,
1204
- DataVisualizationDataPoint,
1205
- DataVisualizationDataPoint,
1206
- DataVisualizationDataPoint,
1207
- DataVisualizationDataPoint,
1208
- DataVisualizationDataPoint,
1209
- DataVisualizationDataPoint,
1210
- DataVisualizationDataPoint
1211
- ];
1212
- }
1213
- /**
1214
- * A single point in a chart series: an x-axis label and its numeric value. The label must match one of axis_config.categories (enforced via checkDataVisualizationConsistency). Negative values are permitted — line/bar/area charts render against a zero baseline.
1215
- */
1216
- export interface DataVisualizationDataPoint {
1217
- label: string;
1218
- value: number;
1219
- }
1220
- /**
1221
- * Axis configuration for cartesian (line/bar/area) charts. categories define the valid x-axis labels and their left-to-right display order.
1222
- */
1223
- export interface DataVisualizationAxisConfig {
1224
- categories: string[];
1225
- x_label?: string;
1226
- y_label?: string;
1227
- }
1228
- /**
1229
- * A single slice of a pie chart. value must be greater than 0; Slack derives the displayed percentage from each segment's value as a share of the total.
1230
- */
1231
- export interface DataVisualizationSegment {
1232
- label: string;
1233
- value: number;
1234
- }
1235
- export interface DividerBlock {
1236
- type: "divider";
1237
- block_id?: BlockId;
1238
- }
1239
- /**
1240
- * Cannot be added to app surfaces directly; surfaces only when retrieving messages that contain remote files.
1241
- */
1242
- export interface FileBlock {
1243
- type: "file";
1244
- external_id: string;
1245
- source: "remote";
1246
- block_id?: BlockId;
1247
- }
1248
- export interface HeaderBlock {
1249
- type: "header";
1250
- text: PlainTextObject;
1251
- block_id?: BlockId;
1252
- level?: number;
1253
- }
1254
- /**
1255
- * If element is a file_input, dispatch_action must not be true.
1256
- */
1257
- export interface InputBlock {
1258
- type: "input";
1259
- label: PlainTextObject;
1260
- element: InputBlockElement;
1261
- dispatch_action?: boolean;
1262
- block_id?: BlockId;
1263
- hint?: PlainTextObject;
1264
- optional?: boolean;
1265
- }
1266
- /**
1267
- * Must be used inside an input block.
1268
- */
1269
- export interface PlainTextInputElement {
1270
- type: "plain_text_input";
1271
- action_id?: ActionId;
1272
- initial_value?: string;
1273
- multiline?: boolean;
1274
- min_length?: number;
1275
- max_length?: number;
1276
- dispatch_action_config?: DispatchActionConfigObject;
1277
- focus_on_load?: boolean;
1278
- placeholder?: PlaceholderObject;
1279
- }
1280
- export interface DispatchActionConfigObject {
1281
- /**
1282
- * @minItems 1
1283
- * @maxItems 2
1084
+ * @maxItems 2
1284
1085
  */
1285
1086
  trigger_actions_on: ["on_enter_pressed" | "on_character_entered"] | ["on_enter_pressed" | "on_character_entered", "on_enter_pressed" | "on_character_entered"];
1286
1087
  }
@@ -1462,41 +1263,6 @@ export interface FileInputElement {
1462
1263
  filetypes?: [string, ...string[]];
1463
1264
  max_files?: number;
1464
1265
  }
1465
- /**
1466
- * block_id is ignored on markdown blocks. Cumulative 12,000-char limit across all markdown blocks in one payload is a payload-level rule, not enforced here.
1467
- */
1468
- export interface MarkdownBlock {
1469
- type: "markdown";
1470
- text: string;
1471
- block_id?: BlockId;
1472
- }
1473
- export interface PlanBlock {
1474
- type: "plan";
1475
- title: string | PlainTextObject;
1476
- block_id?: BlockId;
1477
- tasks?: TaskCardInlineObject[];
1478
- }
1479
- /**
1480
- * A task card as it appears inline within a plan_block tasks array — the docs' example omits the type discriminator.
1481
- */
1482
- export interface TaskCardInlineObject {
1483
- type?: "task_card";
1484
- task_id: string;
1485
- title: string;
1486
- details?: RichTextBlock;
1487
- output?: RichTextBlock;
1488
- sources?: UrlSourceElement[];
1489
- status?: "pending" | "in_progress" | "complete" | "error";
1490
- block_id?: BlockId;
1491
- }
1492
- /**
1493
- * URL source element — only valid inside a task_card block's sources array.
1494
- */
1495
- export interface UrlSourceElement {
1496
- type: "url";
1497
- url: string;
1498
- text: string;
1499
- }
1500
1266
  /**
1501
1267
  * One table per message (server-enforced via invalid_attachments / only_one_table_allowed). Up to 100 rows, up to 20 cells per row.
1502
1268
  */
@@ -1960,107 +1726,437 @@ export interface TableBlock {
1960
1726
  TableColumnSetting,
1961
1727
  TableColumnSetting
1962
1728
  ] | [
1963
- TableColumnSetting,
1964
- TableColumnSetting,
1965
- TableColumnSetting,
1966
- TableColumnSetting,
1967
- TableColumnSetting,
1968
- TableColumnSetting,
1969
- TableColumnSetting,
1970
- TableColumnSetting,
1971
- TableColumnSetting,
1972
- TableColumnSetting,
1973
- TableColumnSetting,
1974
- TableColumnSetting,
1975
- TableColumnSetting,
1976
- TableColumnSetting,
1977
- TableColumnSetting,
1978
- TableColumnSetting
1729
+ TableColumnSetting,
1730
+ TableColumnSetting,
1731
+ TableColumnSetting,
1732
+ TableColumnSetting,
1733
+ TableColumnSetting,
1734
+ TableColumnSetting,
1735
+ TableColumnSetting,
1736
+ TableColumnSetting,
1737
+ TableColumnSetting,
1738
+ TableColumnSetting,
1739
+ TableColumnSetting,
1740
+ TableColumnSetting,
1741
+ TableColumnSetting,
1742
+ TableColumnSetting,
1743
+ TableColumnSetting,
1744
+ TableColumnSetting
1745
+ ] | [
1746
+ TableColumnSetting,
1747
+ TableColumnSetting,
1748
+ TableColumnSetting,
1749
+ TableColumnSetting,
1750
+ TableColumnSetting,
1751
+ TableColumnSetting,
1752
+ TableColumnSetting,
1753
+ TableColumnSetting,
1754
+ TableColumnSetting,
1755
+ TableColumnSetting,
1756
+ TableColumnSetting,
1757
+ TableColumnSetting,
1758
+ TableColumnSetting,
1759
+ TableColumnSetting,
1760
+ TableColumnSetting,
1761
+ TableColumnSetting,
1762
+ TableColumnSetting
1763
+ ] | [
1764
+ TableColumnSetting,
1765
+ TableColumnSetting,
1766
+ TableColumnSetting,
1767
+ TableColumnSetting,
1768
+ TableColumnSetting,
1769
+ TableColumnSetting,
1770
+ TableColumnSetting,
1771
+ TableColumnSetting,
1772
+ TableColumnSetting,
1773
+ TableColumnSetting,
1774
+ TableColumnSetting,
1775
+ TableColumnSetting,
1776
+ TableColumnSetting,
1777
+ TableColumnSetting,
1778
+ TableColumnSetting,
1779
+ TableColumnSetting,
1780
+ TableColumnSetting,
1781
+ TableColumnSetting
1782
+ ] | [
1783
+ TableColumnSetting,
1784
+ TableColumnSetting,
1785
+ TableColumnSetting,
1786
+ TableColumnSetting,
1787
+ TableColumnSetting,
1788
+ TableColumnSetting,
1789
+ TableColumnSetting,
1790
+ TableColumnSetting,
1791
+ TableColumnSetting,
1792
+ TableColumnSetting,
1793
+ TableColumnSetting,
1794
+ TableColumnSetting,
1795
+ TableColumnSetting,
1796
+ TableColumnSetting,
1797
+ TableColumnSetting,
1798
+ TableColumnSetting,
1799
+ TableColumnSetting,
1800
+ TableColumnSetting,
1801
+ TableColumnSetting
1802
+ ] | [
1803
+ TableColumnSetting,
1804
+ TableColumnSetting,
1805
+ TableColumnSetting,
1806
+ TableColumnSetting,
1807
+ TableColumnSetting,
1808
+ TableColumnSetting,
1809
+ TableColumnSetting,
1810
+ TableColumnSetting,
1811
+ TableColumnSetting,
1812
+ TableColumnSetting,
1813
+ TableColumnSetting,
1814
+ TableColumnSetting,
1815
+ TableColumnSetting,
1816
+ TableColumnSetting,
1817
+ TableColumnSetting,
1818
+ TableColumnSetting,
1819
+ TableColumnSetting,
1820
+ TableColumnSetting,
1821
+ TableColumnSetting,
1822
+ TableColumnSetting
1823
+ ];
1824
+ }
1825
+ /**
1826
+ * Requires links.embed:write OAuth scope. video_url must be in app's unfurl domains, HTTPS, embeddable, return 2xx, not point to Slack-related domains.
1827
+ */
1828
+ export interface VideoBlock {
1829
+ type: "video";
1830
+ alt_text: string;
1831
+ title: PlainTextObject;
1832
+ thumbnail_url: string;
1833
+ video_url: string;
1834
+ author_name?: string;
1835
+ description?: PlainTextObject;
1836
+ provider_icon_url?: string;
1837
+ provider_name?: string;
1838
+ title_url?: string;
1839
+ block_id?: BlockId;
1840
+ }
1841
+ export interface ContextActionsBlock {
1842
+ type: "context_actions";
1843
+ /**
1844
+ * @minItems 1
1845
+ * @maxItems 5
1846
+ */
1847
+ elements: [ContextActionsBlockElement] | [ContextActionsBlockElement, ContextActionsBlockElement] | [ContextActionsBlockElement, ContextActionsBlockElement, ContextActionsBlockElement] | [ContextActionsBlockElement, ContextActionsBlockElement, ContextActionsBlockElement, ContextActionsBlockElement] | [
1848
+ ContextActionsBlockElement,
1849
+ ContextActionsBlockElement,
1850
+ ContextActionsBlockElement,
1851
+ ContextActionsBlockElement,
1852
+ ContextActionsBlockElement
1853
+ ];
1854
+ block_id?: BlockId;
1855
+ }
1856
+ /**
1857
+ * Must be used inside a context_actions block.
1858
+ */
1859
+ export interface FeedbackButtonsElement {
1860
+ type: "feedback_buttons";
1861
+ positive_button: FeedbackButtonSubobject;
1862
+ negative_button: FeedbackButtonSubobject;
1863
+ action_id?: ActionId;
1864
+ }
1865
+ export interface FeedbackButtonSubobject {
1866
+ text: PlainTextObject;
1867
+ value: string;
1868
+ accessibility_label?: string;
1869
+ }
1870
+ /**
1871
+ * Icon button — only valid inside a context_actions block.
1872
+ */
1873
+ export interface IconButtonElement {
1874
+ type: "icon_button";
1875
+ icon: "trash";
1876
+ text: PlainTextObject;
1877
+ action_id?: ActionId;
1878
+ value?: string;
1879
+ confirm?: ConfirmObject;
1880
+ accessibility_label?: string;
1881
+ visible_to_user_ids?: string[];
1882
+ }
1883
+ /**
1884
+ * Renders data as a line, bar, area, or pie chart. Messages only (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.
1885
+ */
1886
+ export interface DataVisualizationBlock {
1887
+ type: "data_visualization";
1888
+ block_id?: BlockId;
1889
+ title: string;
1890
+ chart: DataVisualizationChart;
1891
+ }
1892
+ /**
1893
+ * A named series of data points plotted on a line/bar/area chart. The name drives the chart legend and must be unique across all series in the same chart (enforced via checkDataVisualizationConsistency).
1894
+ */
1895
+ export interface DataVisualizationSeries {
1896
+ name: string;
1897
+ /**
1898
+ * @minItems 1
1899
+ * @maxItems 20
1900
+ */
1901
+ data: [DataVisualizationDataPoint] | [DataVisualizationDataPoint, DataVisualizationDataPoint] | [DataVisualizationDataPoint, DataVisualizationDataPoint, DataVisualizationDataPoint] | [DataVisualizationDataPoint, DataVisualizationDataPoint, DataVisualizationDataPoint, DataVisualizationDataPoint] | [
1902
+ DataVisualizationDataPoint,
1903
+ DataVisualizationDataPoint,
1904
+ DataVisualizationDataPoint,
1905
+ DataVisualizationDataPoint,
1906
+ DataVisualizationDataPoint
1907
+ ] | [
1908
+ DataVisualizationDataPoint,
1909
+ DataVisualizationDataPoint,
1910
+ DataVisualizationDataPoint,
1911
+ DataVisualizationDataPoint,
1912
+ DataVisualizationDataPoint,
1913
+ DataVisualizationDataPoint
1914
+ ] | [
1915
+ DataVisualizationDataPoint,
1916
+ DataVisualizationDataPoint,
1917
+ DataVisualizationDataPoint,
1918
+ DataVisualizationDataPoint,
1919
+ DataVisualizationDataPoint,
1920
+ DataVisualizationDataPoint,
1921
+ DataVisualizationDataPoint
1922
+ ] | [
1923
+ DataVisualizationDataPoint,
1924
+ DataVisualizationDataPoint,
1925
+ DataVisualizationDataPoint,
1926
+ DataVisualizationDataPoint,
1927
+ DataVisualizationDataPoint,
1928
+ DataVisualizationDataPoint,
1929
+ DataVisualizationDataPoint,
1930
+ DataVisualizationDataPoint
1931
+ ] | [
1932
+ DataVisualizationDataPoint,
1933
+ DataVisualizationDataPoint,
1934
+ DataVisualizationDataPoint,
1935
+ DataVisualizationDataPoint,
1936
+ DataVisualizationDataPoint,
1937
+ DataVisualizationDataPoint,
1938
+ DataVisualizationDataPoint,
1939
+ DataVisualizationDataPoint,
1940
+ DataVisualizationDataPoint
1941
+ ] | [
1942
+ DataVisualizationDataPoint,
1943
+ DataVisualizationDataPoint,
1944
+ DataVisualizationDataPoint,
1945
+ DataVisualizationDataPoint,
1946
+ DataVisualizationDataPoint,
1947
+ DataVisualizationDataPoint,
1948
+ DataVisualizationDataPoint,
1949
+ DataVisualizationDataPoint,
1950
+ DataVisualizationDataPoint,
1951
+ DataVisualizationDataPoint
1952
+ ] | [
1953
+ DataVisualizationDataPoint,
1954
+ DataVisualizationDataPoint,
1955
+ DataVisualizationDataPoint,
1956
+ DataVisualizationDataPoint,
1957
+ DataVisualizationDataPoint,
1958
+ DataVisualizationDataPoint,
1959
+ DataVisualizationDataPoint,
1960
+ DataVisualizationDataPoint,
1961
+ DataVisualizationDataPoint,
1962
+ DataVisualizationDataPoint,
1963
+ DataVisualizationDataPoint
1964
+ ] | [
1965
+ DataVisualizationDataPoint,
1966
+ DataVisualizationDataPoint,
1967
+ DataVisualizationDataPoint,
1968
+ DataVisualizationDataPoint,
1969
+ DataVisualizationDataPoint,
1970
+ DataVisualizationDataPoint,
1971
+ DataVisualizationDataPoint,
1972
+ DataVisualizationDataPoint,
1973
+ DataVisualizationDataPoint,
1974
+ DataVisualizationDataPoint,
1975
+ DataVisualizationDataPoint,
1976
+ DataVisualizationDataPoint
1977
+ ] | [
1978
+ DataVisualizationDataPoint,
1979
+ DataVisualizationDataPoint,
1980
+ DataVisualizationDataPoint,
1981
+ DataVisualizationDataPoint,
1982
+ DataVisualizationDataPoint,
1983
+ DataVisualizationDataPoint,
1984
+ DataVisualizationDataPoint,
1985
+ DataVisualizationDataPoint,
1986
+ DataVisualizationDataPoint,
1987
+ DataVisualizationDataPoint,
1988
+ DataVisualizationDataPoint,
1989
+ DataVisualizationDataPoint,
1990
+ DataVisualizationDataPoint
1991
+ ] | [
1992
+ DataVisualizationDataPoint,
1993
+ DataVisualizationDataPoint,
1994
+ DataVisualizationDataPoint,
1995
+ DataVisualizationDataPoint,
1996
+ DataVisualizationDataPoint,
1997
+ DataVisualizationDataPoint,
1998
+ DataVisualizationDataPoint,
1999
+ DataVisualizationDataPoint,
2000
+ DataVisualizationDataPoint,
2001
+ DataVisualizationDataPoint,
2002
+ DataVisualizationDataPoint,
2003
+ DataVisualizationDataPoint,
2004
+ DataVisualizationDataPoint,
2005
+ DataVisualizationDataPoint
2006
+ ] | [
2007
+ DataVisualizationDataPoint,
2008
+ DataVisualizationDataPoint,
2009
+ DataVisualizationDataPoint,
2010
+ DataVisualizationDataPoint,
2011
+ DataVisualizationDataPoint,
2012
+ DataVisualizationDataPoint,
2013
+ DataVisualizationDataPoint,
2014
+ DataVisualizationDataPoint,
2015
+ DataVisualizationDataPoint,
2016
+ DataVisualizationDataPoint,
2017
+ DataVisualizationDataPoint,
2018
+ DataVisualizationDataPoint,
2019
+ DataVisualizationDataPoint,
2020
+ DataVisualizationDataPoint,
2021
+ DataVisualizationDataPoint
2022
+ ] | [
2023
+ DataVisualizationDataPoint,
2024
+ DataVisualizationDataPoint,
2025
+ DataVisualizationDataPoint,
2026
+ DataVisualizationDataPoint,
2027
+ DataVisualizationDataPoint,
2028
+ DataVisualizationDataPoint,
2029
+ DataVisualizationDataPoint,
2030
+ DataVisualizationDataPoint,
2031
+ DataVisualizationDataPoint,
2032
+ DataVisualizationDataPoint,
2033
+ DataVisualizationDataPoint,
2034
+ DataVisualizationDataPoint,
2035
+ DataVisualizationDataPoint,
2036
+ DataVisualizationDataPoint,
2037
+ DataVisualizationDataPoint,
2038
+ DataVisualizationDataPoint
1979
2039
  ] | [
1980
- TableColumnSetting,
1981
- TableColumnSetting,
1982
- TableColumnSetting,
1983
- TableColumnSetting,
1984
- TableColumnSetting,
1985
- TableColumnSetting,
1986
- TableColumnSetting,
1987
- TableColumnSetting,
1988
- TableColumnSetting,
1989
- TableColumnSetting,
1990
- TableColumnSetting,
1991
- TableColumnSetting,
1992
- TableColumnSetting,
1993
- TableColumnSetting,
1994
- TableColumnSetting,
1995
- TableColumnSetting,
1996
- TableColumnSetting
2040
+ DataVisualizationDataPoint,
2041
+ DataVisualizationDataPoint,
2042
+ DataVisualizationDataPoint,
2043
+ DataVisualizationDataPoint,
2044
+ DataVisualizationDataPoint,
2045
+ DataVisualizationDataPoint,
2046
+ DataVisualizationDataPoint,
2047
+ DataVisualizationDataPoint,
2048
+ DataVisualizationDataPoint,
2049
+ DataVisualizationDataPoint,
2050
+ DataVisualizationDataPoint,
2051
+ DataVisualizationDataPoint,
2052
+ DataVisualizationDataPoint,
2053
+ DataVisualizationDataPoint,
2054
+ DataVisualizationDataPoint,
2055
+ DataVisualizationDataPoint,
2056
+ DataVisualizationDataPoint
1997
2057
  ] | [
1998
- TableColumnSetting,
1999
- TableColumnSetting,
2000
- TableColumnSetting,
2001
- TableColumnSetting,
2002
- TableColumnSetting,
2003
- TableColumnSetting,
2004
- TableColumnSetting,
2005
- TableColumnSetting,
2006
- TableColumnSetting,
2007
- TableColumnSetting,
2008
- TableColumnSetting,
2009
- TableColumnSetting,
2010
- TableColumnSetting,
2011
- TableColumnSetting,
2012
- TableColumnSetting,
2013
- TableColumnSetting,
2014
- TableColumnSetting,
2015
- TableColumnSetting
2058
+ DataVisualizationDataPoint,
2059
+ DataVisualizationDataPoint,
2060
+ DataVisualizationDataPoint,
2061
+ DataVisualizationDataPoint,
2062
+ DataVisualizationDataPoint,
2063
+ DataVisualizationDataPoint,
2064
+ DataVisualizationDataPoint,
2065
+ DataVisualizationDataPoint,
2066
+ DataVisualizationDataPoint,
2067
+ DataVisualizationDataPoint,
2068
+ DataVisualizationDataPoint,
2069
+ DataVisualizationDataPoint,
2070
+ DataVisualizationDataPoint,
2071
+ DataVisualizationDataPoint,
2072
+ DataVisualizationDataPoint,
2073
+ DataVisualizationDataPoint,
2074
+ DataVisualizationDataPoint,
2075
+ DataVisualizationDataPoint
2016
2076
  ] | [
2017
- TableColumnSetting,
2018
- TableColumnSetting,
2019
- TableColumnSetting,
2020
- TableColumnSetting,
2021
- TableColumnSetting,
2022
- TableColumnSetting,
2023
- TableColumnSetting,
2024
- TableColumnSetting,
2025
- TableColumnSetting,
2026
- TableColumnSetting,
2027
- TableColumnSetting,
2028
- TableColumnSetting,
2029
- TableColumnSetting,
2030
- TableColumnSetting,
2031
- TableColumnSetting,
2032
- TableColumnSetting,
2033
- TableColumnSetting,
2034
- TableColumnSetting,
2035
- TableColumnSetting
2077
+ DataVisualizationDataPoint,
2078
+ DataVisualizationDataPoint,
2079
+ DataVisualizationDataPoint,
2080
+ DataVisualizationDataPoint,
2081
+ DataVisualizationDataPoint,
2082
+ DataVisualizationDataPoint,
2083
+ DataVisualizationDataPoint,
2084
+ DataVisualizationDataPoint,
2085
+ DataVisualizationDataPoint,
2086
+ DataVisualizationDataPoint,
2087
+ DataVisualizationDataPoint,
2088
+ DataVisualizationDataPoint,
2089
+ DataVisualizationDataPoint,
2090
+ DataVisualizationDataPoint,
2091
+ DataVisualizationDataPoint,
2092
+ DataVisualizationDataPoint,
2093
+ DataVisualizationDataPoint,
2094
+ DataVisualizationDataPoint,
2095
+ DataVisualizationDataPoint
2036
2096
  ] | [
2037
- TableColumnSetting,
2038
- TableColumnSetting,
2039
- TableColumnSetting,
2040
- TableColumnSetting,
2041
- TableColumnSetting,
2042
- TableColumnSetting,
2043
- TableColumnSetting,
2044
- TableColumnSetting,
2045
- TableColumnSetting,
2046
- TableColumnSetting,
2047
- TableColumnSetting,
2048
- TableColumnSetting,
2049
- TableColumnSetting,
2050
- TableColumnSetting,
2051
- TableColumnSetting,
2052
- TableColumnSetting,
2053
- TableColumnSetting,
2054
- TableColumnSetting,
2055
- TableColumnSetting,
2056
- TableColumnSetting
2097
+ DataVisualizationDataPoint,
2098
+ DataVisualizationDataPoint,
2099
+ DataVisualizationDataPoint,
2100
+ DataVisualizationDataPoint,
2101
+ DataVisualizationDataPoint,
2102
+ DataVisualizationDataPoint,
2103
+ DataVisualizationDataPoint,
2104
+ DataVisualizationDataPoint,
2105
+ DataVisualizationDataPoint,
2106
+ DataVisualizationDataPoint,
2107
+ DataVisualizationDataPoint,
2108
+ DataVisualizationDataPoint,
2109
+ DataVisualizationDataPoint,
2110
+ DataVisualizationDataPoint,
2111
+ DataVisualizationDataPoint,
2112
+ DataVisualizationDataPoint,
2113
+ DataVisualizationDataPoint,
2114
+ DataVisualizationDataPoint,
2115
+ DataVisualizationDataPoint,
2116
+ DataVisualizationDataPoint
2057
2117
  ];
2058
2118
  }
2059
2119
  /**
2060
- * Standalone task_card block (also embeddable inline within plan_block).
2120
+ * A single point in a chart series: an x-axis label and its numeric value. The label must match one of axis_config.categories (enforced via checkDataVisualizationConsistency). Negative values are permitted — line/bar/area charts render against a zero baseline.
2061
2121
  */
2062
- export interface TaskCardBlock {
2063
- type: "task_card";
2122
+ export interface DataVisualizationDataPoint {
2123
+ label: string;
2124
+ value: number;
2125
+ }
2126
+ /**
2127
+ * Axis configuration for cartesian (line/bar/area) charts. categories define the valid x-axis labels and their left-to-right display order.
2128
+ */
2129
+ export interface DataVisualizationAxisConfig {
2130
+ categories: string[];
2131
+ x_label?: string;
2132
+ y_label?: string;
2133
+ }
2134
+ /**
2135
+ * A single slice of a pie chart. value must be greater than 0; Slack derives the displayed percentage from each segment's value as a share of the total.
2136
+ */
2137
+ export interface DataVisualizationSegment {
2138
+ label: string;
2139
+ value: number;
2140
+ }
2141
+ /**
2142
+ * block_id is ignored on markdown blocks. Cumulative 12,000-char limit across all markdown blocks in one payload is a payload-level rule, not enforced here.
2143
+ */
2144
+ export interface MarkdownBlock {
2145
+ type: "markdown";
2146
+ text: string;
2147
+ block_id?: BlockId;
2148
+ }
2149
+ export interface PlanBlock {
2150
+ type: "plan";
2151
+ title: string | PlainTextObject;
2152
+ block_id?: BlockId;
2153
+ tasks?: TaskCardInlineObject[];
2154
+ }
2155
+ /**
2156
+ * A task card as it appears inline within a plan_block tasks array — the docs' example omits the type discriminator.
2157
+ */
2158
+ export interface TaskCardInlineObject {
2159
+ type?: "task_card";
2064
2160
  task_id: string;
2065
2161
  title: string;
2066
2162
  details?: RichTextBlock;
@@ -2070,19 +2166,24 @@ export interface TaskCardBlock {
2070
2166
  block_id?: BlockId;
2071
2167
  }
2072
2168
  /**
2073
- * Requires links.embed:write OAuth scope. video_url must be in app's unfurl domains, HTTPS, embeddable, return 2xx, not point to Slack-related domains.
2169
+ * URL source element — only valid inside a task_card block's sources array.
2074
2170
  */
2075
- export interface VideoBlock {
2076
- type: "video";
2077
- alt_text: string;
2078
- title: PlainTextObject;
2079
- thumbnail_url: string;
2080
- video_url: string;
2081
- author_name?: string;
2082
- description?: PlainTextObject;
2083
- provider_icon_url?: string;
2084
- provider_name?: string;
2085
- title_url?: string;
2171
+ export interface UrlSourceElement {
2172
+ type: "url";
2173
+ url: string;
2174
+ text: string;
2175
+ }
2176
+ /**
2177
+ * Standalone task_card block (also embeddable inline within plan_block).
2178
+ */
2179
+ export interface TaskCardBlock {
2180
+ type: "task_card";
2181
+ task_id: string;
2182
+ title: string;
2183
+ details?: RichTextBlock;
2184
+ output?: RichTextBlock;
2185
+ sources?: UrlSourceElement[];
2186
+ status?: "pending" | "in_progress" | "complete" | "error";
2086
2187
  block_id?: BlockId;
2087
2188
  }
2088
2189
  /**