@assistant-ui/react-generative-ui 0.0.18 → 0.0.20

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 (152) hide show
  1. package/dist/JSONGenerativeUI.client.d.ts +15 -17
  2. package/dist/JSONGenerativeUI.client.d.ts.map +1 -1
  3. package/dist/JSONGenerativeUI.client.js +28 -8
  4. package/dist/JSONGenerativeUI.client.js.map +1 -1
  5. package/dist/JSONGenerativeUI.server.d.ts +6 -9
  6. package/dist/JSONGenerativeUI.server.d.ts.map +1 -1
  7. package/dist/JSONGenerativeUI.shared.d.ts +42 -44
  8. package/dist/JSONGenerativeUI.shared.d.ts.map +1 -1
  9. package/dist/a2ui/convert.d.ts +7 -8
  10. package/dist/a2ui/convert.d.ts.map +1 -1
  11. package/dist/a2ui/convert.js +115 -16
  12. package/dist/a2ui/convert.js.map +1 -1
  13. package/dist/a2ui/reducer.d.ts +2 -5
  14. package/dist/a2ui/reducer.d.ts.map +1 -1
  15. package/dist/a2ui/reducer.js +8 -0
  16. package/dist/a2ui/reducer.js.map +1 -1
  17. package/dist/a2ui/snapshot.d.ts +3 -0
  18. package/dist/a2ui/snapshot.d.ts.map +1 -0
  19. package/dist/a2ui/snapshot.js +33 -0
  20. package/dist/a2ui/snapshot.js.map +1 -0
  21. package/dist/a2ui/types.d.ts +67 -58
  22. package/dist/a2ui/types.d.ts.map +1 -1
  23. package/dist/a2ui/types.js.map +1 -1
  24. package/dist/a2ui.d.ts +5 -4
  25. package/dist/a2ui.d.ts.map +1 -0
  26. package/dist/a2ui.js +2 -1
  27. package/dist/actionRegistry.d.ts +17 -20
  28. package/dist/actionRegistry.d.ts.map +1 -1
  29. package/dist/actionRegistry.js.map +1 -1
  30. package/dist/buildPresentParameters.d.ts +3 -6
  31. package/dist/buildPresentParameters.d.ts.map +1 -1
  32. package/dist/buildPresentParameters.js +16 -4
  33. package/dist/buildPresentParameters.js.map +1 -1
  34. package/dist/constants.d.ts +2 -4
  35. package/dist/constants.d.ts.map +1 -1
  36. package/dist/constants.js +2 -1
  37. package/dist/constants.js.map +1 -1
  38. package/dist/convert/boundSpec.d.ts +7 -10
  39. package/dist/convert/boundSpec.d.ts.map +1 -1
  40. package/dist/convert/copyBounded.d.ts +3 -6
  41. package/dist/convert/copyBounded.d.ts.map +1 -1
  42. package/dist/convert/isElement.d.ts +2 -5
  43. package/dist/convert/isElement.d.ts.map +1 -1
  44. package/dist/convert/takeRun.d.ts +4 -7
  45. package/dist/convert/takeRun.d.ts.map +1 -1
  46. package/dist/defineGenerativeComponents.d.ts +2 -5
  47. package/dist/defineGenerativeComponents.d.ts.map +1 -1
  48. package/dist/generativeUIToJSX.d.ts +6 -9
  49. package/dist/generativeUIToJSX.d.ts.map +1 -1
  50. package/dist/index.d.ts +3 -13
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.server.d.ts +3 -13
  53. package/dist/index.server.d.ts.map +1 -0
  54. package/dist/index.shared.d.ts +15 -11
  55. package/dist/index.shared.d.ts.map +1 -0
  56. package/dist/ir.d.ts +45 -48
  57. package/dist/ir.d.ts.map +1 -1
  58. package/dist/renderGenerativeUI.d.ts +3 -6
  59. package/dist/renderGenerativeUI.d.ts.map +1 -1
  60. package/dist/scopeSchema.d.ts +6 -0
  61. package/dist/scopeSchema.d.ts.map +1 -0
  62. package/dist/scopeSchema.js +56 -0
  63. package/dist/scopeSchema.js.map +1 -0
  64. package/dist/slack/constants.d.ts +43 -45
  65. package/dist/slack/constants.d.ts.map +1 -1
  66. package/dist/slack/decodeBlockAction.d.ts +2 -5
  67. package/dist/slack/decodeBlockAction.d.ts.map +1 -1
  68. package/dist/slack/fromSlackBlocks.d.ts +2 -5
  69. package/dist/slack/fromSlackBlocks.d.ts.map +1 -1
  70. package/dist/slack/toSlackBlocks.d.ts +2 -5
  71. package/dist/slack/toSlackBlocks.d.ts.map +1 -1
  72. package/dist/slack/toSlackBlocks.js +1 -1
  73. package/dist/slack/types.d.ts +110 -113
  74. package/dist/slack/types.d.ts.map +1 -1
  75. package/dist/slack.d.ts +5 -5
  76. package/dist/slack.d.ts.map +1 -0
  77. package/dist/teams/constants.d.ts +15 -18
  78. package/dist/teams/constants.d.ts.map +1 -1
  79. package/dist/teams/decodeSubmitData.d.ts +2 -5
  80. package/dist/teams/decodeSubmitData.d.ts.map +1 -1
  81. package/dist/teams/toAdaptiveCard.d.ts +10 -13
  82. package/dist/teams/toAdaptiveCard.d.ts.map +1 -1
  83. package/dist/teams/toTeamsAttachments.d.ts +2 -5
  84. package/dist/teams/toTeamsAttachments.d.ts.map +1 -1
  85. package/dist/teams/types.d.ts +136 -138
  86. package/dist/teams/types.d.ts.map +1 -1
  87. package/dist/teams.d.ts +5 -5
  88. package/dist/teams.d.ts.map +1 -0
  89. package/dist/types.d.ts +45 -47
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/vocabulary/alert.d.ts +22 -25
  92. package/dist/vocabulary/alert.d.ts.map +1 -1
  93. package/dist/vocabulary/collectFormValues.d.ts +12 -13
  94. package/dist/vocabulary/collectFormValues.d.ts.map +1 -1
  95. package/dist/vocabulary/collectFormValues.js +3 -2
  96. package/dist/vocabulary/collectFormValues.js.map +1 -1
  97. package/dist/vocabulary/data.d.ts +46 -49
  98. package/dist/vocabulary/data.d.ts.map +1 -1
  99. package/dist/vocabulary/dispatch.d.ts +4 -7
  100. package/dist/vocabulary/dispatch.d.ts.map +1 -1
  101. package/dist/vocabulary/fact.d.ts +9 -12
  102. package/dist/vocabulary/fact.d.ts.map +1 -1
  103. package/dist/vocabulary/form.d.ts +8 -11
  104. package/dist/vocabulary/form.d.ts.map +1 -1
  105. package/dist/vocabulary/icon.d.ts +38 -41
  106. package/dist/vocabulary/icon.d.ts.map +1 -1
  107. package/dist/vocabulary/index.d.ts +2 -5
  108. package/dist/vocabulary/index.d.ts.map +1 -1
  109. package/dist/vocabulary/interactive.d.ts +88 -87
  110. package/dist/vocabulary/interactive.d.ts.map +1 -1
  111. package/dist/vocabulary/interactive.js +6 -4
  112. package/dist/vocabulary/interactive.js.map +1 -1
  113. package/dist/vocabulary/layout.d.ts +76 -79
  114. package/dist/vocabulary/layout.d.ts.map +1 -1
  115. package/dist/vocabulary/list.d.ts +11 -14
  116. package/dist/vocabulary/list.d.ts.map +1 -1
  117. package/dist/vocabulary/media.d.ts +22 -25
  118. package/dist/vocabulary/media.d.ts.map +1 -1
  119. package/dist/vocabulary/text.d.ts +54 -57
  120. package/dist/vocabulary/text.d.ts.map +1 -1
  121. package/dist/vocabulary/toTextContent.d.ts +1 -4
  122. package/dist/vocabulary/toTextContent.d.ts.map +1 -1
  123. package/package.json +12 -10
  124. package/src/JSONGenerativeUI.client.tsx +57 -15
  125. package/src/JSONGenerativeUI.test.tsx +298 -4
  126. package/src/a2ui/convert.test.ts +496 -0
  127. package/src/a2ui/convert.ts +170 -25
  128. package/src/a2ui/reducer.test.ts +18 -0
  129. package/src/a2ui/reducer.ts +16 -0
  130. package/src/a2ui/snapshot.test.ts +52 -0
  131. package/src/a2ui/snapshot.ts +52 -0
  132. package/src/a2ui/types.ts +16 -0
  133. package/src/a2ui.ts +2 -0
  134. package/src/actionRegistry.ts +5 -5
  135. package/src/buildPresentParameters.test.ts +246 -0
  136. package/src/buildPresentParameters.ts +18 -3
  137. package/src/constants.ts +2 -0
  138. package/src/scopeSchema.test.ts +72 -0
  139. package/src/scopeSchema.ts +71 -0
  140. package/src/slack/fromSlackBlocks.test.ts +4 -1
  141. package/src/slack/toSlackBlocks.test.ts +8 -4
  142. package/src/teams/toAdaptiveCard.test.ts +5 -3
  143. package/src/vocabulary/collectFormValues.test.ts +38 -0
  144. package/src/vocabulary/collectFormValues.ts +11 -2
  145. package/src/vocabulary/form.test.tsx +1 -0
  146. package/src/vocabulary/interactive.dispatch.test.tsx +17 -3
  147. package/src/vocabulary/interactive.test.tsx +33 -1
  148. package/src/vocabulary/interactive.tsx +12 -2
  149. package/src/vocabulary/layout.test.tsx +1 -0
  150. package/src/vocabulary/list.test.tsx +5 -4
  151. package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts +0 -141
  152. package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts.map +0 -1
@@ -0,0 +1,56 @@
1
+ //#region src/scopeSchema.ts
2
+ function scopeSchema(schema, path) {
3
+ let referenced = false;
4
+ const visit = (definition) => {
5
+ if (typeof definition === "boolean") return definition;
6
+ const schema = definition;
7
+ const result = { ...schema };
8
+ if (schema.$ref === "#" || schema.$ref?.startsWith("#/")) {
9
+ referenced = true;
10
+ result.$ref = path + schema.$ref.slice(1);
11
+ }
12
+ for (const key of [
13
+ "properties",
14
+ "patternProperties",
15
+ "definitions",
16
+ "$defs",
17
+ "dependentSchemas"
18
+ ]) {
19
+ const entries = schema[key];
20
+ if (entries) result[key] = Object.fromEntries(Object.entries(entries).map(([name, value]) => [name, visit(value)]));
21
+ }
22
+ for (const key of [
23
+ "allOf",
24
+ "anyOf",
25
+ "oneOf",
26
+ "prefixItems"
27
+ ]) if (schema[key]) result[key] = schema[key].map(visit);
28
+ for (const key of [
29
+ "additionalProperties",
30
+ "additionalItems",
31
+ "unevaluatedProperties",
32
+ "unevaluatedItems",
33
+ "contentSchema",
34
+ "contains",
35
+ "propertyNames",
36
+ "not",
37
+ "if",
38
+ "then",
39
+ "else"
40
+ ]) {
41
+ const value = schema[key];
42
+ if (value !== void 0) result[key] = visit(value);
43
+ }
44
+ if (schema.items !== void 0) result.items = Array.isArray(schema.items) ? schema.items.map(visit) : visit(schema.items);
45
+ if (schema.dependencies) result.dependencies = Object.fromEntries(Object.entries(schema.dependencies).map(([name, value]) => [name, Array.isArray(value) ? value : visit(value)]));
46
+ return result;
47
+ };
48
+ return {
49
+ schema: visit(schema),
50
+ referenced
51
+ };
52
+ }
53
+ //#endregion
54
+ export { scopeSchema };
55
+
56
+ //# sourceMappingURL=scopeSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeSchema.js","names":[],"sources":["../src/scopeSchema.ts"],"sourcesContent":["import type { JSONSchema7, JSONSchema7Definition } from \"json-schema\";\n\n// The converter does not pin a JSON Schema draft, so the 2020-12 applicators\n// missing from the JSONSchema7 typings must be traversed as well.\ntype TraversableSchema = JSONSchema7 & {\n prefixItems?: JSONSchema7Definition[];\n dependentSchemas?: { [key: string]: JSONSchema7Definition };\n unevaluatedItems?: JSONSchema7Definition;\n unevaluatedProperties?: JSONSchema7Definition;\n contentSchema?: JSONSchema7Definition;\n};\n\nexport function scopeSchema(schema: JSONSchema7, path: string) {\n let referenced = false;\n const visit = (definition: JSONSchema7Definition): JSONSchema7Definition => {\n if (typeof definition === \"boolean\") return definition;\n const schema = definition as TraversableSchema;\n const result = { ...schema };\n if (schema.$ref === \"#\" || schema.$ref?.startsWith(\"#/\")) {\n referenced = true;\n result.$ref = path + schema.$ref.slice(1);\n }\n // Only schema-bearing keywords are traversed; defaults and examples are data.\n for (const key of [\n \"properties\",\n \"patternProperties\",\n \"definitions\",\n \"$defs\",\n \"dependentSchemas\",\n ] as const) {\n const entries = schema[key];\n if (entries)\n result[key] = Object.fromEntries(\n Object.entries(entries).map(([name, value]) => [name, visit(value)]),\n );\n }\n for (const key of [\"allOf\", \"anyOf\", \"oneOf\", \"prefixItems\"] as const) {\n if (schema[key]) result[key] = schema[key].map(visit);\n }\n for (const key of [\n \"additionalProperties\",\n \"additionalItems\",\n \"unevaluatedProperties\",\n \"unevaluatedItems\",\n \"contentSchema\",\n \"contains\",\n \"propertyNames\",\n \"not\",\n \"if\",\n \"then\",\n \"else\",\n ] as const) {\n const value = schema[key];\n if (value !== undefined) result[key] = visit(value);\n }\n if (schema.items !== undefined)\n result.items = Array.isArray(schema.items)\n ? schema.items.map(visit)\n : visit(schema.items);\n if (schema.dependencies)\n result.dependencies = Object.fromEntries(\n Object.entries(schema.dependencies).map(([name, value]) => [\n name,\n Array.isArray(value) ? value : visit(value),\n ]),\n );\n return result;\n };\n const scoped = visit(schema) as JSONSchema7;\n return { schema: scoped, referenced };\n}\n"],"mappings":";AAYA,SAAgB,YAAY,QAAqB,MAAc;CAC7D,IAAI,aAAa;CACjB,MAAM,SAAS,eAA6D;EAC1E,IAAI,OAAO,eAAe,WAAW,OAAO;EAC5C,MAAM,SAAS;EACf,MAAM,SAAS,EAAE,GAAG,OAAO;EAC3B,IAAI,OAAO,SAAS,OAAO,OAAO,MAAM,WAAW,IAAI,GAAG;GACxD,aAAa;GACb,OAAO,OAAO,OAAO,OAAO,KAAK,MAAM,CAAC;EAC1C;EAEA,KAAK,MAAM,OAAO;GAChB;GACA;GACA;GACA;GACA;EACF,GAAY;GACV,MAAM,UAAU,OAAO;GACvB,IAAI,SACF,OAAO,OAAO,OAAO,YACnB,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC,CACrE;EACJ;EACA,KAAK,MAAM,OAAO;GAAC;GAAS;GAAS;GAAS;EAAa,GACzD,IAAI,OAAO,MAAM,OAAO,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK;EAEtD,KAAK,MAAM,OAAO;GAChB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,GAAY;GACV,MAAM,QAAQ,OAAO;GACrB,IAAI,UAAU,KAAA,GAAW,OAAO,OAAO,MAAM,KAAK;EACpD;EACA,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO,QAAQ,MAAM,QAAQ,OAAO,KAAK,IACrC,OAAO,MAAM,IAAI,KAAK,IACtB,MAAM,OAAO,KAAK;EACxB,IAAI,OAAO,cACT,OAAO,eAAe,OAAO,YAC3B,OAAO,QAAQ,OAAO,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW,CACzD,MACA,MAAM,QAAQ,KAAK,IAAI,QAAQ,MAAM,KAAK,CAC5C,CAAC,CACH;EACF,OAAO;CACT;CAEA,OAAO;EAAE,QADM,MAAM,MACC;EAAG;CAAW;AACtC"}
@@ -1,93 +1,91 @@
1
- import { SlackAlertBlock, SlackButtonElement, SlackCardBlock, SlackCarouselBlock, SlackContextBlock, SlackDataTableBlock, SlackDataTableCell, SlackImageBlock, SlackSectionBlock, SlackTextObject } from "./types.js";
2
- //#region src/slack/constants.d.ts
1
+ import type { SlackAlertBlock, SlackButtonElement, SlackCardBlock, SlackCarouselBlock, SlackContextBlock, SlackDataTableBlock, SlackDataTableCell, SlackImageBlock, SlackSectionBlock, SlackTextObject } from "./types.js";
3
2
  /** The block limit for a Slack message. */
4
- declare const MESSAGE_BLOCK_CAP = 50;
3
+ export declare const MESSAGE_BLOCK_CAP = 50;
5
4
  /** The block limit for a Slack modal. */
6
- declare const MODAL_BLOCK_CAP = 100;
5
+ export declare const MODAL_BLOCK_CAP = 100;
7
6
  /**
8
7
  * The maximum number of top-level blocks accepted when parsing Slack Block
9
8
  * Kit JSON back into generative UI, guarding against a hostile or malformed
10
9
  * payload.
11
10
  */
12
- declare const INBOUND_BLOCK_CAP = 200;
11
+ export declare const INBOUND_BLOCK_CAP = 200;
13
12
  /** The character limit for header text. */
14
- declare const HEADER_TEXT_CAP = 150;
13
+ export declare const HEADER_TEXT_CAP = 150;
15
14
  /** The character limit for section text. */
16
- declare const SECTION_TEXT_CAP = 3000;
15
+ export declare const SECTION_TEXT_CAP = 3000;
17
16
  /** The maximum number of fields in one section. */
18
- declare const FACT_FIELD_CAP = 10;
17
+ export declare const FACT_FIELD_CAP = 10;
19
18
  /** The character limit for one section field. */
20
- declare const FACT_FIELD_TEXT_CAP = 2000;
19
+ export declare const FACT_FIELD_TEXT_CAP = 2000;
21
20
  /** The character limit for button labels and option labels. */
22
- declare const INTERACTIVE_TEXT_CAP = 75;
21
+ export declare const INTERACTIVE_TEXT_CAP = 75;
23
22
  /** The character limit for an action_id. */
24
- declare const ACTION_ID_CAP = 255;
23
+ export declare const ACTION_ID_CAP = 255;
25
24
  /** The character limit for a button's serialized value payload. */
26
- declare const BUTTON_VALUE_CAP = 2000;
25
+ export declare const BUTTON_VALUE_CAP = 2000;
27
26
  /** The maximum number of elements in one actions block. */
28
- declare const ACTIONS_ELEMENT_CAP = 25;
27
+ export declare const ACTIONS_ELEMENT_CAP = 25;
29
28
  /** The maximum number of options in a static select. */
30
- declare const SELECT_OPTION_CAP = 100;
29
+ export declare const SELECT_OPTION_CAP = 100;
31
30
  /** The maximum number of options in a radio-button group. */
32
- declare const RADIO_OPTION_CAP = 10;
31
+ export declare const RADIO_OPTION_CAP = 10;
33
32
  /** The character limit for a select or input placeholder. */
34
- declare const PLACEHOLDER_TEXT_CAP = 150;
33
+ export declare const PLACEHOLDER_TEXT_CAP = 150;
35
34
  /** The character limit for an input's label. */
36
- declare const INPUT_LABEL_CAP = 2000;
35
+ export declare const INPUT_LABEL_CAP = 2000;
37
36
  /** The maximum number of elements in one context block. */
38
- declare const CONTEXT_ELEMENT_CAP = 10;
37
+ export declare const CONTEXT_ELEMENT_CAP = 10;
39
38
  /** The character limit for one context element's text. */
40
- declare const CONTEXT_TEXT_CAP = 3000;
39
+ export declare const CONTEXT_TEXT_CAP = 3000;
41
40
  /** The character limit for card titles and subtitles. */
42
- declare const CARD_TITLE_CAP = 150;
41
+ export declare const CARD_TITLE_CAP = 150;
43
42
  /** The character limit for a card's body text. */
44
- declare const CARD_BODY_CAP = 200;
43
+ export declare const CARD_BODY_CAP = 200;
45
44
  /** The character limit for a card's subtext. */
46
- declare const CARD_SUBTEXT_CAP = 200;
45
+ export declare const CARD_SUBTEXT_CAP = 200;
47
46
  /** The maximum number of buttons in a card's actions. */
48
- declare const CARD_ACTIONS_CAP = 3;
47
+ export declare const CARD_ACTIONS_CAP = 3;
49
48
  /** The minimum number of elements in a renderable carousel. */
50
- declare const CAROUSEL_CARD_MIN = 1;
49
+ export declare const CAROUSEL_CARD_MIN = 1;
51
50
  /** The maximum number of elements in a carousel. */
52
- declare const CAROUSEL_CARD_CAP = 10;
51
+ export declare const CAROUSEL_CARD_CAP = 10;
53
52
  /** The character limit for an alert's text. */
54
- declare const ALERT_TEXT_CAP = 200;
53
+ export declare const ALERT_TEXT_CAP = 200;
55
54
  /**
56
55
  * The maximum number of data rows in a data-table block; the emitted `rows`
57
56
  * array additionally carries one header row.
58
57
  */
59
- declare const DATA_TABLE_ROW_CAP = 200;
58
+ export declare const DATA_TABLE_ROW_CAP = 200;
60
59
  /** The maximum number of columns in a data-table block. */
61
- declare const DATA_TABLE_COLUMN_CAP = 20;
60
+ export declare const DATA_TABLE_COLUMN_CAP = 20;
62
61
  /**
63
62
  * The cumulative character limit (summed across every cell's text) shared by
64
63
  * every data-table block in one payload.
65
64
  */
66
- declare const DATA_TABLE_CHAR_BUDGET = 20000;
65
+ export declare const DATA_TABLE_CHAR_BUDGET = 20000;
67
66
  /** The caption emitted on every native data-table block. */
68
- declare const TABLE_CAPTION = "Table";
67
+ export declare const TABLE_CAPTION = "Table";
69
68
  /** The cumulative character limit for native markdown blocks. */
70
- declare const MARKDOWN_TEXT_BUDGET = 12000;
69
+ export declare const MARKDOWN_TEXT_BUDGET = 12000;
71
70
  /** Builds the message-surface fallback for an alert. */
72
- declare function buildAlertFallback(title: string, description: string, tone: "info" | "success" | "warning" | "danger"): readonly [SlackContextBlock, SlackSectionBlock];
71
+ export declare function buildAlertFallback(title: string, description: string, tone: "info" | "success" | "warning" | "danger"): readonly [SlackContextBlock, SlackSectionBlock];
73
72
  /** Builds a 2026 Slack modal-only alert block, mapping `tone` to its `level`. */
74
- declare function buildAlertBlock(text: string, tone: "info" | "success" | "warning" | "danger"): SlackAlertBlock;
73
+ export declare function buildAlertBlock(text: string, tone: "info" | "success" | "warning" | "danger"): SlackAlertBlock;
75
74
  type CardBlockFields = {
76
- readonly heroImage?: SlackImageBlock;
77
- readonly title?: SlackTextObject;
78
- readonly subtitle?: SlackTextObject;
79
- readonly body?: SlackTextObject;
80
- readonly subtext?: SlackTextObject;
81
- readonly actions?: readonly SlackButtonElement[];
75
+ readonly heroImage?: SlackImageBlock;
76
+ readonly title?: SlackTextObject;
77
+ readonly subtitle?: SlackTextObject;
78
+ readonly body?: SlackTextObject;
79
+ readonly subtext?: SlackTextObject;
80
+ readonly actions?: readonly SlackButtonElement[];
82
81
  };
83
82
  /** Builds a 2026 Slack card block from its already-clamped fields. */
84
- declare function buildCardBlock(fields: CardBlockFields): SlackCardBlock;
83
+ export declare function buildCardBlock(fields: CardBlockFields): SlackCardBlock;
85
84
  /** Builds a 2026 Slack carousel block. */
86
- declare function buildCarouselBlock(elements: readonly SlackCardBlock[]): SlackCarouselBlock;
85
+ export declare function buildCarouselBlock(elements: readonly SlackCardBlock[]): SlackCarouselBlock;
87
86
  /** Builds a 2026 Slack data-table block; `rows[0]` must be the header row. */
88
- declare function buildDataTableBlock(rows: readonly (readonly SlackDataTableCell[])[]): SlackDataTableBlock;
87
+ export declare function buildDataTableBlock(rows: readonly (readonly SlackDataTableCell[])[]): SlackDataTableBlock;
89
88
  /** Builds the final note used when a surface block budget is exceeded. */
90
- declare function buildBlockBudgetNote(omitted: number): SlackContextBlock;
91
- //#endregion
92
- export { ACTIONS_ELEMENT_CAP, ACTION_ID_CAP, ALERT_TEXT_CAP, BUTTON_VALUE_CAP, CARD_ACTIONS_CAP, CARD_BODY_CAP, CARD_SUBTEXT_CAP, CARD_TITLE_CAP, CAROUSEL_CARD_CAP, CAROUSEL_CARD_MIN, CONTEXT_ELEMENT_CAP, CONTEXT_TEXT_CAP, DATA_TABLE_CHAR_BUDGET, DATA_TABLE_COLUMN_CAP, DATA_TABLE_ROW_CAP, FACT_FIELD_CAP, FACT_FIELD_TEXT_CAP, HEADER_TEXT_CAP, INBOUND_BLOCK_CAP, INPUT_LABEL_CAP, INTERACTIVE_TEXT_CAP, MARKDOWN_TEXT_BUDGET, MESSAGE_BLOCK_CAP, MODAL_BLOCK_CAP, PLACEHOLDER_TEXT_CAP, RADIO_OPTION_CAP, SECTION_TEXT_CAP, SELECT_OPTION_CAP, TABLE_CAPTION, buildAlertBlock, buildAlertFallback, buildBlockBudgetNote, buildCardBlock, buildCarouselBlock, buildDataTableBlock };
89
+ export declare function buildBlockBudgetNote(omitted: number): SlackContextBlock;
90
+ export {};
93
91
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","names":[],"sources":["../../src/slack/constants.ts"],"mappings":";;;cAca;;cAGA;;;;;;cAOA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;cAGA;;;;;cAMA;;cAGA;;;;;cAMA;;cAGA;;cAGA;;iBAGG,mBACd,eACA,qBACA,4DACW,mBAAmB;;iBAmBhB,gBACd,cACA,kDACC;KAKE;WACM,YAAY;WACZ,QAAQ;WACR,WAAW;WACX,OAAO;WACP,UAAU;WACV,mBAAmB;;;iBAId,eAAe,QAAQ,kBAAkB;;iBAczC,mBACd,mBAAmB,mBAClB;;iBAKa,oBACd,yBAAyB,0BACxB;;iBAKa,qBAAqB,kBAAkB"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/slack/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,mBAAgB;AAEjB,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,yCAAyC;AACzC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,2CAA2C;AAC3C,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,mDAAmD;AACnD,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,4CAA4C;AAC5C,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,wDAAwD;AACxD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,gDAAgD;AAChD,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,yDAAyD;AACzD,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,kDAAkD;AAClD,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,+CAA+C;AAC/C,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C,4DAA4D;AAC5D,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C,wDAAwD;AACxD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAC9C,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAgBjD;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAC9C,eAAe,CAGjB;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD,CAAC;AAEF,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAWtE;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,kBAAkB,CAEpB;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,GAC/C,mBAAmB,CAErB;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAUvE"}
@@ -1,11 +1,8 @@
1
- import { Action } from "../ir.js";
2
- //#region src/slack/decodeBlockAction.d.ts
1
+ import type { Action } from "../ir.js";
3
2
  /**
4
3
  * Decodes one structural entry from a Slack `block_actions` payload.
5
4
  * `$input` is reserved for the runtime selection: a `$input` key inside the
6
5
  * button's JSON `value` payload is dropped rather than spread into the result.
7
6
  */
8
- declare function decodeBlockAction(action: unknown): Action | undefined;
9
- //#endregion
10
- export { decodeBlockAction };
7
+ export declare function decodeBlockAction(action: unknown): Action | undefined;
11
8
  //# sourceMappingURL=decodeBlockAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decodeBlockAction.d.ts","names":[],"sources":["../../src/slack/decodeBlockAction.ts"],"mappings":";;;;;;;iBAegB,kBAAkB,kBAAkB"}
1
+ {"version":3,"file":"decodeBlockAction.d.ts","sourceRoot":"","sources":["../../src/slack/decodeBlockAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAc;AAUpC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkDrE"}
@@ -1,5 +1,4 @@
1
- import { FromSlackBlocksResult } from "./types.js";
2
- //#region src/slack/fromSlackBlocks.d.ts
1
+ import type { FromSlackBlocksResult } from "./types.js";
3
2
  /**
4
3
  * Converts Slack Block Kit JSON back into a generative-ui IR tree, inverting
5
4
  * {@link toSlackBlocks}. Accepts a blocks array or a `{ blocks }` wrapper;
@@ -24,7 +23,5 @@ import { FromSlackBlocksResult } from "./types.js";
24
23
  * string, even when its text is the stringified form of a boolean, since the
25
24
  * Slack shape does not distinguish a boolean from ordinary text.
26
25
  */
27
- declare function fromSlackBlocks(blocks: unknown): FromSlackBlocksResult;
28
- //#endregion
29
- export { fromSlackBlocks };
26
+ export declare function fromSlackBlocks(blocks: unknown): FromSlackBlocksResult;
30
27
  //# sourceMappingURL=fromSlackBlocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromSlackBlocks.d.ts","names":[],"sources":["../../src/slack/fromSlackBlocks.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;iBA+pBgB,gBAAgB,kBAAkB"}
1
+ {"version":3,"file":"fromSlackBlocks.d.ts","sourceRoot":"","sources":["../../src/slack/fromSlackBlocks.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,qBAAqB,EAA0B,mBAAgB;AAynB7E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,qBAAqB,CAqCtE"}
@@ -1,7 +1,4 @@
1
- import { SlackBlocksResult, ToSlackBlocksOptions } from "./types.js";
2
- //#region src/slack/toSlackBlocks.d.ts
1
+ import type { SlackBlocksResult, ToSlackBlocksOptions } from "./types.js";
3
2
  /** Converts a generative-UI tree into Slack Block Kit JSON and downgrade warnings. */
4
- declare function toSlackBlocks(node: unknown, options?: ToSlackBlocksOptions): SlackBlocksResult;
5
- //#endregion
6
- export { toSlackBlocks };
3
+ export declare function toSlackBlocks(node: unknown, options?: ToSlackBlocksOptions): SlackBlocksResult;
7
4
  //# sourceMappingURL=toSlackBlocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toSlackBlocks.d.ts","names":[],"sources":["../../src/slack/toSlackBlocks.ts"],"mappings":";;;iBAqzCgB,cACd,eACA,UAAU,uBACT"}
1
+ {"version":3,"file":"toSlackBlocks.d.ts","sourceRoot":"","sources":["../../src/slack/toSlackBlocks.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAWV,iBAAiB,EACjB,oBAAoB,EACrB,mBAAgB;AAuvCjB,sFAAsF;AACtF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,oBAAoB,GAC7B,iBAAiB,CA2CnB"}
@@ -1,9 +1,9 @@
1
1
  import { normalizeSpec } from "../ir.js";
2
2
  import { copyBounded } from "../convert/copyBounded.js";
3
- import { CONTEXT_TEXT_CAP, DATA_TABLE_CHAR_BUDGET, FACT_FIELD_TEXT_CAP, INPUT_LABEL_CAP, MARKDOWN_TEXT_BUDGET, SECTION_TEXT_CAP, buildAlertBlock, buildAlertFallback, buildBlockBudgetNote, buildCardBlock, buildCarouselBlock, buildDataTableBlock } from "./constants.js";
4
3
  import { boundSpec, clampReasonDetail } from "../convert/boundSpec.js";
5
4
  import { isElement } from "../convert/isElement.js";
6
5
  import { takeRun } from "../convert/takeRun.js";
6
+ import { CONTEXT_TEXT_CAP, DATA_TABLE_CHAR_BUDGET, FACT_FIELD_TEXT_CAP, INPUT_LABEL_CAP, MARKDOWN_TEXT_BUDGET, SECTION_TEXT_CAP, buildAlertBlock, buildAlertFallback, buildBlockBudgetNote, buildCardBlock, buildCarouselBlock, buildDataTableBlock } from "./constants.js";
7
7
  //#region src/slack/toSlackBlocks.ts
8
8
  const INTERACTIVE_TYPES = /* @__PURE__ */ new Set([
9
9
  "Button",
@@ -1,161 +1,160 @@
1
- import { UIElement } from "../ir.js";
2
- //#region src/slack/types.d.ts
1
+ import type { UIElement } from "../ir.js";
3
2
  /** A Slack plain-text composition object. */
4
- interface SlackPlainText {
5
- readonly type: "plain_text";
6
- readonly text: string;
3
+ export interface SlackPlainText {
4
+ readonly type: "plain_text";
5
+ readonly text: string;
7
6
  }
8
7
  /** A Slack mrkdwn composition object. */
9
- interface SlackMrkdwnText {
10
- readonly type: "mrkdwn";
11
- readonly text: string;
8
+ export interface SlackMrkdwnText {
9
+ readonly type: "mrkdwn";
10
+ readonly text: string;
12
11
  }
13
12
  /** A text composition object accepted by card and alert text fields. */
14
- type SlackTextObject = SlackPlainText | SlackMrkdwnText;
13
+ export type SlackTextObject = SlackPlainText | SlackMrkdwnText;
15
14
  /** A selectable Slack option. */
16
- interface SlackOption {
17
- readonly text: SlackPlainText;
18
- readonly value: string;
15
+ export interface SlackOption {
16
+ readonly text: SlackPlainText;
17
+ readonly value: string;
19
18
  }
20
19
  /** A Slack button element. */
21
- interface SlackButtonElement {
22
- readonly type: "button";
23
- readonly text: SlackPlainText;
24
- readonly action_id: string;
25
- readonly value?: string;
26
- readonly style?: "primary" | "danger";
20
+ export interface SlackButtonElement {
21
+ readonly type: "button";
22
+ readonly text: SlackPlainText;
23
+ readonly action_id: string;
24
+ readonly value?: string;
25
+ readonly style?: "primary" | "danger";
27
26
  }
28
27
  /** A Slack static-select element. */
29
- interface SlackStaticSelectElement {
30
- readonly type: "static_select";
31
- readonly action_id: string;
32
- readonly options: readonly SlackOption[];
33
- readonly placeholder?: SlackPlainText;
28
+ export interface SlackStaticSelectElement {
29
+ readonly type: "static_select";
30
+ readonly action_id: string;
31
+ readonly options: readonly SlackOption[];
32
+ readonly placeholder?: SlackPlainText;
34
33
  }
35
34
  /** A Slack date-picker element. */
36
- interface SlackDatePickerElement {
37
- readonly type: "datepicker";
38
- readonly action_id: string;
39
- readonly initial_date?: string;
35
+ export interface SlackDatePickerElement {
36
+ readonly type: "datepicker";
37
+ readonly action_id: string;
38
+ readonly initial_date?: string;
40
39
  }
41
40
  /** A Slack checkbox-group element. */
42
- interface SlackCheckboxesElement {
43
- readonly type: "checkboxes";
44
- readonly action_id: string;
45
- readonly options: readonly SlackOption[];
46
- readonly initial_options?: readonly SlackOption[];
41
+ export interface SlackCheckboxesElement {
42
+ readonly type: "checkboxes";
43
+ readonly action_id: string;
44
+ readonly options: readonly SlackOption[];
45
+ readonly initial_options?: readonly SlackOption[];
47
46
  }
48
47
  /** A Slack radio-button element. */
49
- interface SlackRadioButtonsElement {
50
- readonly type: "radio_buttons";
51
- readonly action_id: string;
52
- readonly options: readonly SlackOption[];
53
- readonly initial_option?: SlackOption;
48
+ export interface SlackRadioButtonsElement {
49
+ readonly type: "radio_buttons";
50
+ readonly action_id: string;
51
+ readonly options: readonly SlackOption[];
52
+ readonly initial_option?: SlackOption;
54
53
  }
55
54
  /** A Slack plain-text input element. */
56
- interface SlackPlainTextInputElement {
57
- readonly type: "plain_text_input";
58
- readonly action_id: string;
59
- readonly multiline?: boolean;
60
- readonly placeholder?: SlackPlainText;
55
+ export interface SlackPlainTextInputElement {
56
+ readonly type: "plain_text_input";
57
+ readonly action_id: string;
58
+ readonly multiline?: boolean;
59
+ readonly placeholder?: SlackPlainText;
61
60
  }
62
61
  /** An element accepted by a Slack actions block. */
63
- type SlackActionElement = SlackButtonElement | SlackStaticSelectElement | SlackDatePickerElement | SlackCheckboxesElement | SlackRadioButtonsElement;
62
+ export type SlackActionElement = SlackButtonElement | SlackStaticSelectElement | SlackDatePickerElement | SlackCheckboxesElement | SlackRadioButtonsElement;
64
63
  /** A Slack header block. */
65
- interface SlackHeaderBlock {
66
- readonly type: "header";
67
- readonly text: SlackPlainText;
64
+ export interface SlackHeaderBlock {
65
+ readonly type: "header";
66
+ readonly text: SlackPlainText;
68
67
  }
69
68
  /** A Slack section block. */
70
- interface SlackSectionBlock {
71
- readonly type: "section";
72
- readonly text?: SlackMrkdwnText;
73
- readonly fields?: readonly SlackMrkdwnText[];
74
- readonly accessory?: SlackButtonElement;
69
+ export interface SlackSectionBlock {
70
+ readonly type: "section";
71
+ readonly text?: SlackMrkdwnText;
72
+ readonly fields?: readonly SlackMrkdwnText[];
73
+ readonly accessory?: SlackButtonElement;
75
74
  }
76
75
  /** A Slack context block. */
77
- interface SlackContextBlock {
78
- readonly type: "context";
79
- readonly elements: readonly SlackMrkdwnText[];
76
+ export interface SlackContextBlock {
77
+ readonly type: "context";
78
+ readonly elements: readonly SlackMrkdwnText[];
80
79
  }
81
80
  /** A Slack image block. */
82
- interface SlackImageBlock {
83
- readonly type: "image";
84
- readonly image_url: string;
85
- readonly alt_text: string;
81
+ export interface SlackImageBlock {
82
+ readonly type: "image";
83
+ readonly image_url: string;
84
+ readonly alt_text: string;
86
85
  }
87
86
  /** A Slack divider block. */
88
- interface SlackDividerBlock {
89
- readonly type: "divider";
87
+ export interface SlackDividerBlock {
88
+ readonly type: "divider";
90
89
  }
91
90
  /** A Slack actions block. */
92
- interface SlackActionsBlock {
93
- readonly type: "actions";
94
- readonly elements: readonly SlackActionElement[];
91
+ export interface SlackActionsBlock {
92
+ readonly type: "actions";
93
+ readonly elements: readonly SlackActionElement[];
95
94
  }
96
95
  /** A Slack input block. */
97
- interface SlackInputBlock {
98
- readonly type: "input";
99
- readonly label: SlackPlainText;
100
- readonly element: SlackPlainTextInputElement;
96
+ export interface SlackInputBlock {
97
+ readonly type: "input";
98
+ readonly label: SlackPlainText;
99
+ readonly element: SlackPlainTextInputElement;
101
100
  }
102
101
  /** A text cell in a Slack data-table block. */
103
- interface SlackDataTableRawTextCell {
104
- readonly type: "raw_text";
105
- readonly text: string;
102
+ export interface SlackDataTableRawTextCell {
103
+ readonly type: "raw_text";
104
+ readonly text: string;
106
105
  }
107
106
  /** A numeric cell in a Slack data-table block. */
108
- interface SlackDataTableRawNumberCell {
109
- readonly type: "raw_number";
110
- readonly text: string;
107
+ export interface SlackDataTableRawNumberCell {
108
+ readonly type: "raw_number";
109
+ readonly text: string;
111
110
  }
112
111
  /** A cell value in a Slack data-table block. */
113
- type SlackDataTableCell = SlackDataTableRawTextCell | SlackDataTableRawNumberCell;
112
+ export type SlackDataTableCell = SlackDataTableRawTextCell | SlackDataTableRawNumberCell;
114
113
  /**
115
114
  * A Slack card block. A card does not nest arbitrary blocks: content is
116
115
  * limited to a hero image, title, subtitle, body, subtext, and up to three
117
116
  * action buttons. At least one of `hero_image`, `title`, `actions`, or `body`
118
117
  * is required.
119
118
  */
120
- interface SlackCardBlock {
121
- readonly type: "card";
122
- readonly hero_image?: SlackImageBlock;
123
- readonly title?: SlackTextObject;
124
- readonly subtitle?: SlackTextObject;
125
- readonly body?: SlackTextObject;
126
- readonly subtext?: SlackTextObject;
127
- readonly actions?: readonly SlackButtonElement[];
119
+ export interface SlackCardBlock {
120
+ readonly type: "card";
121
+ readonly hero_image?: SlackImageBlock;
122
+ readonly title?: SlackTextObject;
123
+ readonly subtitle?: SlackTextObject;
124
+ readonly body?: SlackTextObject;
125
+ readonly subtext?: SlackTextObject;
126
+ readonly actions?: readonly SlackButtonElement[];
128
127
  }
129
128
  /** A Slack carousel block: a horizontally scrollable group of card blocks. */
130
- interface SlackCarouselBlock {
131
- readonly type: "carousel";
132
- readonly elements: readonly SlackCardBlock[];
129
+ export interface SlackCarouselBlock {
130
+ readonly type: "carousel";
131
+ readonly elements: readonly SlackCardBlock[];
133
132
  }
134
133
  /** A Slack data-table block. The first entry in `rows` is the header row. */
135
- interface SlackDataTableBlock {
136
- readonly type: "data_table";
137
- readonly caption: string;
138
- readonly rows: readonly (readonly SlackDataTableCell[])[];
139
- readonly page_size?: number;
134
+ export interface SlackDataTableBlock {
135
+ readonly type: "data_table";
136
+ readonly caption: string;
137
+ readonly rows: readonly (readonly SlackDataTableCell[])[];
138
+ readonly page_size?: number;
140
139
  }
141
140
  /** A Slack markdown block. */
142
- interface SlackMarkdownBlock {
143
- readonly type: "markdown";
144
- readonly text: string;
141
+ export interface SlackMarkdownBlock {
142
+ readonly type: "markdown";
143
+ readonly text: string;
145
144
  }
146
145
  /** The severity level accepted by a Slack alert block. */
147
- type SlackAlertLevel = "default" | "info" | "warning" | "error" | "success";
146
+ export type SlackAlertLevel = "default" | "info" | "warning" | "error" | "success";
148
147
  /** A Slack alert block. Alert blocks are only supported in modals. */
149
- interface SlackAlertBlock {
150
- readonly type: "alert";
151
- readonly text: SlackTextObject;
152
- readonly level?: SlackAlertLevel;
148
+ export interface SlackAlertBlock {
149
+ readonly type: "alert";
150
+ readonly text: SlackTextObject;
151
+ readonly level?: SlackAlertLevel;
153
152
  }
154
153
  /** A block emitted by the Slack converter. */
155
- type SlackBlock = SlackHeaderBlock | SlackSectionBlock | SlackContextBlock | SlackImageBlock | SlackDividerBlock | SlackActionsBlock | SlackInputBlock | SlackCardBlock | SlackCarouselBlock | SlackDataTableBlock | SlackMarkdownBlock | SlackAlertBlock;
154
+ export type SlackBlock = SlackHeaderBlock | SlackSectionBlock | SlackContextBlock | SlackImageBlock | SlackDividerBlock | SlackActionsBlock | SlackInputBlock | SlackCardBlock | SlackCarouselBlock | SlackDataTableBlock | SlackMarkdownBlock | SlackAlertBlock;
156
155
  /** Options that select the target Slack surface. */
157
- interface ToSlackBlocksOptions {
158
- readonly surface?: "message" | "modal";
156
+ export interface ToSlackBlocksOptions {
157
+ readonly surface?: "message" | "modal";
159
158
  }
160
159
  /**
161
160
  * A non-fatal note reported during Slack conversion.
@@ -164,21 +163,19 @@ interface ToSlackBlocksOptions {
164
163
  * of its props and may leave a placeholder note behind, and `fallback` emitted
165
164
  * the node in a different form than requested.
166
165
  */
167
- interface SlackConversionWarning {
168
- readonly code: "clamped" | "dropped" | "fallback";
169
- readonly component: string;
170
- readonly detail: string;
166
+ export interface SlackConversionWarning {
167
+ readonly code: "clamped" | "dropped" | "fallback";
168
+ readonly component: string;
169
+ readonly detail: string;
171
170
  }
172
171
  /** The blocks and non-fatal warnings produced by Slack conversion. */
173
- interface SlackBlocksResult {
174
- readonly blocks: SlackBlock[];
175
- readonly warnings: SlackConversionWarning[];
172
+ export interface SlackBlocksResult {
173
+ readonly blocks: SlackBlock[];
174
+ readonly warnings: SlackConversionWarning[];
176
175
  }
177
176
  /** The IR nodes and non-fatal warnings produced by converting Slack Block Kit JSON back into generative UI. */
178
- interface FromSlackBlocksResult {
179
- readonly nodes: UIElement[];
180
- readonly warnings: SlackConversionWarning[];
177
+ export interface FromSlackBlocksResult {
178
+ readonly nodes: UIElement[];
179
+ readonly warnings: SlackConversionWarning[];
181
180
  }
182
- //#endregion
183
- export { FromSlackBlocksResult, SlackActionElement, SlackActionsBlock, SlackAlertBlock, SlackAlertLevel, SlackBlock, SlackBlocksResult, SlackButtonElement, SlackCardBlock, SlackCarouselBlock, SlackCheckboxesElement, SlackContextBlock, SlackConversionWarning, SlackDataTableBlock, SlackDataTableCell, SlackDataTableRawNumberCell, SlackDataTableRawTextCell, SlackDatePickerElement, SlackDividerBlock, SlackHeaderBlock, SlackImageBlock, SlackInputBlock, SlackMarkdownBlock, SlackMrkdwnText, SlackOption, SlackPlainText, SlackPlainTextInputElement, SlackRadioButtonsElement, SlackSectionBlock, SlackStaticSelectElement, SlackTextObject, ToSlackBlocksOptions };
184
181
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/slack/types.ts"],"mappings":";;;UAGiB;WACN;WACA;;;UAIM;WACN;WACA;;;KAIC,kBAAkB,iBAAiB;;UAG9B;WACN,MAAM;WACN;;;UAIM;WACN;WACA,MAAM;WACN;WACA;WACA;;;UAIM;WACN;WACA;WACA,kBAAkB;WAClB,cAAc;;;UAIR;WACN;WACA;WACA;;;UAIM;WACN;WACA;WACA,kBAAkB;WAClB,2BAA2B;;;UAIrB;WACN;WACA;WACA,kBAAkB;WAClB,iBAAiB;;;UAIX;WACN;WACA;WACA;WACA,cAAc;;;KAIb,qBACR,qBACA,2BACA,yBACA,yBACA;;UAGa;WACN;WACA,MAAM;;;UAIA;WACN;WACA,OAAO;WACP,kBAAkB;WAClB,YAAY;;;UAIN;WACN;WACA,mBAAmB;;;UAIb;WACN;WACA;WACA;;;UAIM;WACN;;;UAIM;WACN;WACA,mBAAmB;;;UAIb;WACN;WACA,OAAO;WACP,SAAS;;;UAIH;WACN;WACA;;;UAIM;WACN;WACA;;;KAIC,qBACR,4BACA;;;;;;;UAQa;WACN;WACA,aAAa;WACb,QAAQ;WACR,WAAW;WACX,OAAO;WACP,UAAU;WACV,mBAAmB;;;UAIb;WACN;WACA,mBAAmB;;;UAIb;WACN;WACA;WACA,yBAAyB;WACzB;;;UAIM;WACN;WACA;;;KAIC;;UAQK;WACN;WACA,MAAM;WACN,QAAQ;;;KAIP,aACR,mBACA,oBACA,oBACA,kBACA,oBACA,oBACA,kBACA,iBACA,qBACA,sBACA,qBACA;;UAGa;WACN;;;;;;;;;UAUM;WACN;WACA;WACA;;;UAIM;WACN,QAAQ;WACR,UAAU;;;UAIJ;WACN,OAAO;WACP,UAAU"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slack/types.ts"],"names":[],"mappings":"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"}
package/dist/slack.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { decodeBlockAction } from "./slack/decodeBlockAction.js";
2
- import { FromSlackBlocksResult, SlackActionElement, SlackActionsBlock, SlackAlertBlock, SlackAlertLevel, SlackBlock, SlackBlocksResult, SlackButtonElement, SlackCardBlock, SlackCarouselBlock, SlackCheckboxesElement, SlackContextBlock, SlackConversionWarning, SlackDataTableBlock, SlackDataTableCell, SlackDataTableRawNumberCell, SlackDataTableRawTextCell, SlackDatePickerElement, SlackDividerBlock, SlackHeaderBlock, SlackImageBlock, SlackInputBlock, SlackMarkdownBlock, SlackMrkdwnText, SlackOption, SlackPlainText, SlackPlainTextInputElement, SlackRadioButtonsElement, SlackSectionBlock, SlackStaticSelectElement, SlackTextObject, ToSlackBlocksOptions } from "./slack/types.js";
3
- import { fromSlackBlocks } from "./slack/fromSlackBlocks.js";
4
- import { toSlackBlocks } from "./slack/toSlackBlocks.js";
5
- export { type FromSlackBlocksResult, type SlackActionElement, type SlackActionsBlock, type SlackAlertBlock, type SlackAlertLevel, type SlackBlock, type SlackBlocksResult, type SlackButtonElement, type SlackCardBlock, type SlackCarouselBlock, type SlackCheckboxesElement, type SlackContextBlock, type SlackConversionWarning, type SlackDataTableBlock, type SlackDataTableCell, type SlackDataTableRawNumberCell, type SlackDataTableRawTextCell, type SlackDatePickerElement, type SlackDividerBlock, type SlackHeaderBlock, type SlackImageBlock, type SlackInputBlock, type SlackMarkdownBlock, type SlackMrkdwnText, type SlackOption, type SlackPlainText, type SlackPlainTextInputElement, type SlackRadioButtonsElement, type SlackSectionBlock, type SlackStaticSelectElement, type SlackTextObject, type ToSlackBlocksOptions, decodeBlockAction, fromSlackBlocks, toSlackBlocks };
1
+ export { decodeBlockAction } from "./slack/decodeBlockAction.js";
2
+ export { fromSlackBlocks } from "./slack/fromSlackBlocks.js";
3
+ export { toSlackBlocks } from "./slack/toSlackBlocks.js";
4
+ export type { FromSlackBlocksResult, SlackActionElement, SlackActionsBlock, SlackAlertBlock, SlackAlertLevel, SlackBlock, SlackBlocksResult, SlackButtonElement, SlackCardBlock, SlackCarouselBlock, SlackCheckboxesElement, SlackContextBlock, SlackConversionWarning, SlackDataTableBlock, SlackDataTableCell, SlackDataTableRawNumberCell, SlackDataTableRawTextCell, SlackDatePickerElement, SlackDividerBlock, SlackHeaderBlock, SlackImageBlock, SlackInputBlock, SlackMarkdownBlock, SlackMrkdwnText, SlackOption, SlackPlainText, SlackPlainTextInputElement, SlackRadioButtonsElement, SlackSectionBlock, SlackStaticSelectElement, SlackTextObject, ToSlackBlocksOptions, } from "./slack/types.js";
5
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qCAAkC;AAC9D,OAAO,EAAE,eAAe,EAAE,mCAAgC;AAC1D,OAAO,EAAE,aAAa,EAAE,iCAA8B;AACtD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,cAAc,EACd,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,GACrB,yBAAsB"}