react-blockkit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +203 -0
- package/dist/Block.d.ts +13 -0
- package/dist/Block.d.ts.map +1 -0
- package/dist/BlockKit.d.ts +13 -0
- package/dist/BlockKit.d.ts.map +1 -0
- package/dist/assert-never.d.ts +2 -0
- package/dist/assert-never.d.ts.map +1 -0
- package/dist/blocks/AdvancedBlocks.d.ts +21 -0
- package/dist/blocks/AdvancedBlocks.d.ts.map +1 -0
- package/dist/blocks/BasicBlocks.d.ts +21 -0
- package/dist/blocks/BasicBlocks.d.ts.map +1 -0
- package/dist/blocks/Charts.d.ts +4 -0
- package/dist/blocks/Charts.d.ts.map +1 -0
- package/dist/blocks/InteractiveBlocks.d.ts +6 -0
- package/dist/blocks/InteractiveBlocks.d.ts.map +1 -0
- package/dist/constants.d.ts +54 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/context.d.ts +17 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/elements/Elements.d.ts +51 -0
- package/dist/elements/Elements.d.ts.map +1 -0
- package/dist/errors.d.ts +12 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4707 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime.d.ts +6 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/safe-url.d.ts +2 -0
- package/dist/safe-url.d.ts.map +1 -0
- package/dist/styles.css +1502 -0
- package/dist/styles.d.ts +21 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/text/Markdown.d.ts +34 -0
- package/dist/text/Markdown.d.ts.map +1 -0
- package/dist/text/Mrkdwn.d.ts +37 -0
- package/dist/text/Mrkdwn.d.ts.map +1 -0
- package/dist/text/RichText.d.ts +9 -0
- package/dist/text/RichText.d.ts.map +1 -0
- package/dist/text/Text.d.ts +10 -0
- package/dist/text/Text.d.ts.map +1 -0
- package/dist/text/date.d.ts +6 -0
- package/dist/text/date.d.ts.map +1 -0
- package/dist/text/emoji.d.ts +3 -0
- package/dist/text/emoji.d.ts.map +1 -0
- package/dist/tokens.stylex.d.ts +8 -0
- package/dist/tokens.stylex.d.ts.map +1 -0
- package/dist/types.d.ts +221 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/validation.d.ts +11 -0
- package/dist/validation.d.ts.map +1 -0
- package/docs/coverage-matrix.md +80 -0
- package/docs/parity/chart-bar-3-w580-dark.png +0 -0
- package/docs/parity/chart-bar-3-w580-light.png +0 -0
- package/docs/parity/chart-line-3-w580-light.png +0 -0
- package/docs/parity/chart-pie-12-w400-light.png +0 -0
- package/docs/parity/chart-pie-5-w580-light.png +0 -0
- package/docs/parity/data-table-w580-dark.png +0 -0
- package/docs/parity/data-table-w580-light.png +0 -0
- package/docs/parity/headers-levels-w580-light.png +0 -0
- package/docs/parity/rich-text-full-w580-light.png +0 -0
- package/docs/parity/spacing-rhythm-w580-light.png +0 -0
- package/docs/parity/table-align-wrap-w580-light.png +0 -0
- package/docs/parity/table-basic-w580-light.png +0 -0
- package/docs/slack-style-baseline.md +260 -0
- package/package.json +83 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Siraj Chokshi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# react-blockkit
|
|
2
|
+
|
|
3
|
+
React components that render Slack Block Kit JSON exactly as Slack does.
|
|
4
|
+
|
|
5
|
+
`react-blockkit` accepts any Block Kit payload; it is not coupled to a Markdown
|
|
6
|
+
source or compiler. The package uses Slack's official `@slack/types`
|
|
7
|
+
definitions, adds typed definitions for newer blocks not yet covered there,
|
|
8
|
+
offers explicit runtime validators, and ships precompiled StyleX CSS.
|
|
9
|
+
|
|
10
|
+
Compiling Markdown first? `react-blockkit` pairs perfectly with
|
|
11
|
+
[`slackmark`](https://github.com/SirajChokshi/slackmark/tree/main/packages/core).
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pnpm add react-blockkit react react-dom
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Import the precompiled stylesheet once in your application:
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import "react-blockkit/styles.css";
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Consumers do not need a StyleX plugin.
|
|
26
|
+
|
|
27
|
+
## Render typed Block Kit
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
import { BlockKit, type BlockKitData } from "react-blockkit";
|
|
31
|
+
|
|
32
|
+
const data = {
|
|
33
|
+
blocks: [
|
|
34
|
+
{
|
|
35
|
+
type: "section",
|
|
36
|
+
text: {
|
|
37
|
+
type: "mrkdwn",
|
|
38
|
+
text: "A message with *bold text* and <https://slack.com|a link>.",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: "actions",
|
|
43
|
+
elements: [
|
|
44
|
+
{
|
|
45
|
+
type: "button",
|
|
46
|
+
action_id: "approve",
|
|
47
|
+
text: { type: "plain_text", text: "Approve" },
|
|
48
|
+
style: "primary",
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
} satisfies BlockKitData;
|
|
54
|
+
|
|
55
|
+
export function Preview() {
|
|
56
|
+
return (
|
|
57
|
+
<BlockKit
|
|
58
|
+
data={data}
|
|
59
|
+
onAction={(action) => {
|
|
60
|
+
// Route the action to your preview tooling or app.
|
|
61
|
+
}}
|
|
62
|
+
/>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`data` may also be a JSON string. It is parsed before blocks render:
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<BlockKit data={jsonFromEditor} />
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Malformed JSON throws `BlockKitInvariantError` with a stable `code` and JSON
|
|
74
|
+
`path`. Valid JSON with future or unusual block shapes renders a visible,
|
|
75
|
+
human-readable fallback instead of crashing or silently dropping content.
|
|
76
|
+
|
|
77
|
+
## Compose individual blocks
|
|
78
|
+
|
|
79
|
+
Every layout block and core element is exported independently:
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
import {
|
|
83
|
+
BlockKitProvider,
|
|
84
|
+
ButtonElement,
|
|
85
|
+
SectionBlock,
|
|
86
|
+
} from "react-blockkit";
|
|
87
|
+
|
|
88
|
+
export function ComposedPreview() {
|
|
89
|
+
return (
|
|
90
|
+
<BlockKitProvider surface="message">
|
|
91
|
+
<SectionBlock
|
|
92
|
+
block={{
|
|
93
|
+
type: "section",
|
|
94
|
+
text: { type: "plain_text", text: "Composable block" },
|
|
95
|
+
}}
|
|
96
|
+
/>
|
|
97
|
+
<ButtonElement
|
|
98
|
+
element={{
|
|
99
|
+
type: "button",
|
|
100
|
+
action_id: "continue",
|
|
101
|
+
text: { type: "plain_text", text: "Continue" },
|
|
102
|
+
}}
|
|
103
|
+
/>
|
|
104
|
+
</BlockKitProvider>
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Standalone components use the same tolerant rendering behavior as
|
|
110
|
+
`<BlockKit />`.
|
|
111
|
+
|
|
112
|
+
## Themes and surfaces
|
|
113
|
+
|
|
114
|
+
```tsx
|
|
115
|
+
<BlockKit data={data} theme="dark" surface="message" />
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- `theme`: `light` or `dark`
|
|
119
|
+
- `surface`: `message`, `modal`, or `home`
|
|
120
|
+
|
|
121
|
+
Rendering does not reject payloads based on the selected surface. Pass the same
|
|
122
|
+
surface to `assertBlockKitData` or `parseBlockKitData` when strict compatibility
|
|
123
|
+
checks are required. For example, `alert` is modal-only, while `container`,
|
|
124
|
+
`data_table`, and `data_visualization` are currently documented for messages.
|
|
125
|
+
|
|
126
|
+
## Resolve workspace references
|
|
127
|
+
|
|
128
|
+
Slack IDs can be mapped to human-readable labels without changing the payload:
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
<BlockKit
|
|
132
|
+
data={data}
|
|
133
|
+
resolvers={{
|
|
134
|
+
user: (id) => users[id] ?? id,
|
|
135
|
+
channel: (id) => channels[id] ?? id,
|
|
136
|
+
emoji: (name) => emoji[name] ?? `:${name}:`,
|
|
137
|
+
}}
|
|
138
|
+
/>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Resolvers may return any React node.
|
|
142
|
+
|
|
143
|
+
## Runtime guarantees
|
|
144
|
+
|
|
145
|
+
Rendering is total for valid block-shaped JSON: unknown blocks and elements,
|
|
146
|
+
empty collections, and out-of-range presentation values degrade to bounded,
|
|
147
|
+
visible output. Use the explicit validation API when strict Slack acceptance
|
|
148
|
+
checks are required. Strict validation includes:
|
|
149
|
+
|
|
150
|
+
- message/view block limits and duplicate `block_id` detection
|
|
151
|
+
- required fields, discriminators, lengths, and per-block element limits
|
|
152
|
+
- legal accessory/input/action element placement
|
|
153
|
+
- rich-text nesting and preformatted/list constraints
|
|
154
|
+
- table shape, cell types, row/column limits, and aggregate text budgets
|
|
155
|
+
- data-table header, row width, page size, and row-header invariants
|
|
156
|
+
- chart category/series/point consistency
|
|
157
|
+
- card, carousel, container, task-card, and plan constraints
|
|
158
|
+
- surface compatibility
|
|
159
|
+
|
|
160
|
+
Use the validation API without React:
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
import {
|
|
164
|
+
assertBlockKitData,
|
|
165
|
+
parseBlockKitData,
|
|
166
|
+
} from "react-blockkit";
|
|
167
|
+
|
|
168
|
+
assertBlockKitData(unknownPayload, "message");
|
|
169
|
+
const typed = parseBlockKitData(json, "message");
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The audited before/after inventory is in
|
|
173
|
+
[`docs/coverage-matrix.md`](./docs/coverage-matrix.md).
|
|
174
|
+
|
|
175
|
+
## Type source
|
|
176
|
+
|
|
177
|
+
Classic and current SDK-supported shapes come directly from `@slack/types`.
|
|
178
|
+
The package locally augments:
|
|
179
|
+
|
|
180
|
+
- `header.level`
|
|
181
|
+
- `rich_text_list.offset` and `rich_text_preformatted.language`
|
|
182
|
+
- `raw_number` table cells
|
|
183
|
+
- `card.subtext` and `card.slack_icon`
|
|
184
|
+
- `container`
|
|
185
|
+
- `data_table`
|
|
186
|
+
- `data_visualization`
|
|
187
|
+
|
|
188
|
+
These local definitions should be removed in favor of upstream Slack types as
|
|
189
|
+
the SDK catches up.
|
|
190
|
+
|
|
191
|
+
## Development
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
pnpm --filter react-blockkit typecheck
|
|
195
|
+
pnpm --filter react-blockkit test
|
|
196
|
+
pnpm --filter react-blockkit build
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
The build emits ESM, CJS, declarations, source maps, and a single
|
|
200
|
+
`dist/styles.css` containing the compiled StyleX atoms and theme variables.
|
|
201
|
+
|
|
202
|
+
Measured Builder values and the remaining fidelity matrix are tracked in
|
|
203
|
+
[`docs/slack-style-baseline.md`](./docs/slack-style-baseline.md).
|
package/dist/Block.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { BlockComponentProps, ContainerBlockData, RenderableBlock } from "./types.js";
|
|
3
|
+
export type BlockProps = BlockComponentProps<RenderableBlock>;
|
|
4
|
+
interface RuntimeBlockProps {
|
|
5
|
+
readonly block: unknown;
|
|
6
|
+
readonly className?: string | undefined;
|
|
7
|
+
readonly path?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function RuntimeBlock({ block, className, path, }: RuntimeBlockProps): ReactElement;
|
|
10
|
+
export declare function Block(props: BlockProps): ReactElement;
|
|
11
|
+
export declare function ContainerBlock({ block, className, path, }: BlockComponentProps<ContainerBlockData>): ReactElement;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=Block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../src/Block.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AA8B1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3F,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAE9D,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AASD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,iBAAiB,GAAG,YAAY,CA+DlC;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAErD;AAoGD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CA8BxD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { BlockKitAction, BlockKitInput, BlockKitResolvers, BlockKitSurface, BlockKitTheme } from "./types.js";
|
|
3
|
+
export interface BlockKitProps {
|
|
4
|
+
readonly "aria-label"?: string | undefined;
|
|
5
|
+
readonly className?: string | undefined;
|
|
6
|
+
readonly data: BlockKitInput;
|
|
7
|
+
readonly onAction?: ((action: BlockKitAction) => void) | undefined;
|
|
8
|
+
readonly resolvers?: BlockKitResolvers | undefined;
|
|
9
|
+
readonly surface?: BlockKitSurface | undefined;
|
|
10
|
+
readonly theme?: BlockKitTheme | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare function BlockKit({ "aria-label": ariaLabel, className, data, onAction, resolvers, surface, theme, }: BlockKitProps): ReactElement;
|
|
13
|
+
//# sourceMappingURL=BlockKit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockKit.d.ts","sourceRoot":"","sources":["../src/BlockKit.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAOnD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC;AA4BpB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAgB,QAAQ,CAAC,EACvB,YAAY,EAAE,SAAqC,EACnD,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAmB,EACnB,KAAe,GAChB,EAAE,aAAa,GAAG,YAAY,CA+B9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-never.d.ts","sourceRoot":"","sources":["../src/assert-never.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAE/C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { AlertBlockData, BlockComponentProps, CardBlockData, CarouselBlockData, DataTableBlockData, PlanBlockData, TableBlockData, TableCellData, TaskCardBlockData } from "../types.js";
|
|
3
|
+
export interface TableCellProps {
|
|
4
|
+
readonly align?: "center" | "left" | "right" | undefined;
|
|
5
|
+
readonly cell: TableCellData;
|
|
6
|
+
readonly className?: string | undefined;
|
|
7
|
+
readonly firstColumn?: boolean | undefined;
|
|
8
|
+
readonly header?: boolean | undefined;
|
|
9
|
+
readonly path?: string | undefined;
|
|
10
|
+
readonly scope?: "col" | "row" | undefined;
|
|
11
|
+
readonly wrapped?: boolean | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare function TableCell({ align, cell, className, firstColumn, header, path, scope, wrapped, }: TableCellProps): ReactElement;
|
|
14
|
+
export declare function TableBlock({ block, className, path, }: BlockComponentProps<TableBlockData>): ReactElement;
|
|
15
|
+
export declare function DataTableBlock({ block, className, path, }: BlockComponentProps<DataTableBlockData>): ReactElement;
|
|
16
|
+
export declare function CardBlock({ block, className, path, }: BlockComponentProps<CardBlockData>): ReactElement;
|
|
17
|
+
export declare function CarouselBlock({ block, className, path, }: BlockComponentProps<CarouselBlockData>): ReactElement;
|
|
18
|
+
export declare function AlertBlock({ block, className, path, }: BlockComponentProps<AlertBlockData>): ReactElement;
|
|
19
|
+
export declare function TaskCardBlock({ block, className, path, }: BlockComponentProps<TaskCardBlockData>): ReactElement;
|
|
20
|
+
export declare function PlanBlock({ block, className, path, }: BlockComponentProps<PlanBlockData>): ReactElement;
|
|
21
|
+
//# sourceMappingURL=AdvancedBlocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdvancedBlocks.d.ts","sourceRoot":"","sources":["../../src/blocks/AdvancedBlocks.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAC;AAOpE,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAc,EACd,IAAI,EACJ,SAAS,EACT,WAAmB,EACnB,MAAc,EACd,IAAa,EACb,KAAa,EACb,OAAe,GAChB,EAAE,cAAc,GAAG,YAAY,CAwC/B;AAMD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,YAAY,CA0CpD;AAsDD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAwKxD;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,YAAY,CAmEnD;AAMD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,YAAY,CA4BvD;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,YAAY,CAoBpD;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAyDvD;AAMD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,YAAY,CA+BnD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from "react";
|
|
2
|
+
import type { BlockComponentProps, ContextBlockData, DividerBlockData, FileBlockData, HeaderBlockData, ImageBlockData, MarkdownBlockData, RichTextBlockData, SectionBlockData, VideoBlockData } from "../types.js";
|
|
3
|
+
interface FrameProps {
|
|
4
|
+
readonly blockId?: string | undefined;
|
|
5
|
+
readonly blockType: string;
|
|
6
|
+
readonly children: ReactNode;
|
|
7
|
+
readonly className?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
/** Shared per-block wrapper (data attributes + base style); internal to blocks/. */
|
|
10
|
+
export declare function Frame({ blockId, blockType, children, className }: FrameProps): ReactElement;
|
|
11
|
+
export declare function SectionBlock({ block, className, path, }: BlockComponentProps<SectionBlockData>): ReactElement;
|
|
12
|
+
export declare function HeaderBlock({ block, className, }: BlockComponentProps<HeaderBlockData>): ReactElement;
|
|
13
|
+
export declare function DividerBlock({ block, className, }: BlockComponentProps<DividerBlockData>): ReactElement;
|
|
14
|
+
export declare function ImageBlock({ block, className, path, }: BlockComponentProps<ImageBlockData>): ReactElement;
|
|
15
|
+
export declare function ContextBlock({ block, className, path, }: BlockComponentProps<ContextBlockData>): ReactElement;
|
|
16
|
+
export declare function RichTextBlock({ block, className, path, }: BlockComponentProps<RichTextBlockData>): ReactElement;
|
|
17
|
+
export declare function MarkdownBlock({ block, className, }: BlockComponentProps<MarkdownBlockData>): ReactElement;
|
|
18
|
+
export declare function FileBlock({ block, className }: BlockComponentProps<FileBlockData>): ReactElement;
|
|
19
|
+
export declare function VideoBlock({ block, className, }: BlockComponentProps<VideoBlockData>): ReactElement;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=BasicBlocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasicBlocks.d.ts","sourceRoot":"","sources":["../../src/blocks/BasicBlocks.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQrD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EAEf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACf,MAAM,aAAa,CAAC;AAMrB,UAAU,UAAU;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,oFAAoF;AACpF,wBAAgB,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,YAAY,CAY3F;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAmCtD;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,YAAY,CAoCrD;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAMtD;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,YAAY,CAapD;AAmBD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAiDtD;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAMvD;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAQvD;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,YAAY,CAYhG;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,YAAY,CAgDpD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { BlockComponentProps, DataVisualizationBlockData } from "../types.js";
|
|
3
|
+
export declare function DataVisualizationBlock({ block, className, }: BlockComponentProps<DataVisualizationBlockData>): ReactElement;
|
|
4
|
+
//# sourceMappingURL=Charts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Charts.d.ts","sourceRoot":"","sources":["../../src/blocks/Charts.tsx"],"names":[],"mappings":"AACA,OAAO,EAA4C,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAC;AAmBpG,OAAO,KAAK,EACV,mBAAmB,EAEnB,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AAygBrB,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,YAAY,CAgFhE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { ActionsBlockData, BlockComponentProps, ContextActionsBlockData, InputBlockData } from "../types.js";
|
|
3
|
+
export declare function ActionsBlock({ block, className, path, }: BlockComponentProps<ActionsBlockData>): ReactElement;
|
|
4
|
+
export declare function InputBlock({ block, className, path, }: BlockComponentProps<InputBlockData>): ReactElement;
|
|
5
|
+
export declare function ContextActionsBlock({ block, className, }: BlockComponentProps<ContextActionsBlockData>): ReactElement;
|
|
6
|
+
//# sourceMappingURL=InteractiveBlocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractiveBlocks.d.ts","sourceRoot":"","sources":["../../src/blocks/InteractiveBlocks.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACf,MAAM,aAAa,CAAC;AAiCrB,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAwBtD;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,IAAc,GACf,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,YAAY,CAkCpD;AAWD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,GAAG,YAAY,CAkG7D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export declare const BLOCK_ID_MAX_CHARS = 255;
|
|
2
|
+
export declare const MESSAGE_MAX_BLOCKS = 50;
|
|
3
|
+
export declare const VIEW_MAX_BLOCKS = 100;
|
|
4
|
+
export declare const TEXT_OBJECT_MAX_CHARS = 3000;
|
|
5
|
+
export declare const SECTION_TEXT_MAX_CHARS = 3000;
|
|
6
|
+
export declare const SECTION_FIELD_MAX_CHARS = 2000;
|
|
7
|
+
export declare const SECTION_FIELDS_MAX = 10;
|
|
8
|
+
export declare const HEADER_TEXT_MAX_CHARS = 150;
|
|
9
|
+
export declare const HEADER_LEVEL_MAX = 4;
|
|
10
|
+
export declare const IMAGE_URL_MAX_CHARS = 3000;
|
|
11
|
+
export declare const IMAGE_ALT_MAX_CHARS = 2000;
|
|
12
|
+
export declare const IMAGE_TITLE_MAX_CHARS = 2000;
|
|
13
|
+
export declare const CONTEXT_ELEMENTS_MAX = 10;
|
|
14
|
+
export declare const ACTION_ELEMENTS_MAX = 25;
|
|
15
|
+
export declare const CONTEXT_ACTION_ELEMENTS_MAX = 5;
|
|
16
|
+
export declare const MARKDOWN_CUMULATIVE_MAX_CHARS = 12000;
|
|
17
|
+
export declare const BUTTON_TEXT_MAX_CHARS = 75;
|
|
18
|
+
export declare const BUTTON_URL_MAX_CHARS = 3000;
|
|
19
|
+
export declare const BUTTON_VALUE_MAX_CHARS = 2000;
|
|
20
|
+
export declare const ACTION_ID_MAX_CHARS = 255;
|
|
21
|
+
export declare const TABLE_MAX_ROWS = 100;
|
|
22
|
+
export declare const TABLE_MAX_COLUMNS = 20;
|
|
23
|
+
export declare const TABLE_MAX_CHARS = 10000;
|
|
24
|
+
export declare const DATA_TABLE_MAX_ROWS = 201;
|
|
25
|
+
export declare const DATA_TABLE_MAX_CHARS = 20000;
|
|
26
|
+
export declare const DATA_TABLE_PAGE_SIZE_MAX = 100;
|
|
27
|
+
export declare const CHART_TITLE_MAX_CHARS = 50;
|
|
28
|
+
export declare const CHART_SERIES_MAX = 12;
|
|
29
|
+
export declare const CHART_SEGMENTS_MAX = 12;
|
|
30
|
+
export declare const CHART_POINTS_MAX = 20;
|
|
31
|
+
export declare const CHART_LABEL_MAX_CHARS = 20;
|
|
32
|
+
export declare const CHART_AXIS_LABEL_MAX_CHARS = 50;
|
|
33
|
+
export declare const CHART_CARD_MIN_WIDTH = 400;
|
|
34
|
+
export declare const CHART_CARD_MAX_WIDTH = 624;
|
|
35
|
+
/** Card horizontal padding (12px × 2) plus borders (1px × 2). */
|
|
36
|
+
export declare const CHART_SVG_INSET = 26;
|
|
37
|
+
export declare const CHART_SVG_HEIGHT = 360;
|
|
38
|
+
/** Left gutter reserved for y ticks and the rotated y-axis label. */
|
|
39
|
+
export declare const CHART_PLOT_GUTTER = 74;
|
|
40
|
+
export declare const CHART_PLOT_TOP = 9;
|
|
41
|
+
export declare const CHART_PLOT_BOTTOM = 334;
|
|
42
|
+
export declare const PIE_CENTER_Y = 180;
|
|
43
|
+
export declare const PIE_RADIUS = 144;
|
|
44
|
+
export declare const CARD_TITLE_MAX_CHARS = 150;
|
|
45
|
+
export declare const CARD_BODY_MAX_CHARS = 200;
|
|
46
|
+
export declare const CARD_ACTIONS_MAX = 3;
|
|
47
|
+
export declare const CAROUSEL_CARDS_MAX = 10;
|
|
48
|
+
export declare const ALERT_TEXT_MAX_CHARS = 200;
|
|
49
|
+
export declare const CONTAINER_CHILDREN_MAX = 10;
|
|
50
|
+
export declare const CONTAINER_TITLE_MAX_CHARS = 150;
|
|
51
|
+
export declare const RICH_TEXT_LIST_INDENT_MAX = 8;
|
|
52
|
+
export declare const BLOCK_TYPES: readonly ["actions", "alert", "card", "carousel", "container", "context", "context_actions", "data_table", "data_visualization", "divider", "file", "header", "image", "input", "markdown", "plan", "rich_text", "section", "table", "task_card", "video"];
|
|
53
|
+
export type BlockType = (typeof BLOCK_TYPES)[number];
|
|
54
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAM7C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,iEAAiE;AACjE,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,WAAW,YACtB,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,EACN,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,OAAO,CACC,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from "react";
|
|
2
|
+
import type { BlockKitAction, BlockKitResolvers, BlockKitSurface } from "./types.js";
|
|
3
|
+
interface RenderContextValue {
|
|
4
|
+
readonly onAction: ((action: BlockKitAction) => void) | undefined;
|
|
5
|
+
readonly resolvers: BlockKitResolvers;
|
|
6
|
+
readonly surface: BlockKitSurface;
|
|
7
|
+
}
|
|
8
|
+
export interface BlockKitProviderProps {
|
|
9
|
+
readonly children: ReactNode;
|
|
10
|
+
readonly onAction?: ((action: BlockKitAction) => void) | undefined;
|
|
11
|
+
readonly resolvers?: BlockKitResolvers | undefined;
|
|
12
|
+
readonly surface?: BlockKitSurface | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare function BlockKitProvider({ children, onAction, resolvers, surface, }: BlockKitProviderProps): ReactElement;
|
|
15
|
+
export declare function useBlockKitContext(): RenderContextValue;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAErF,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAYD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,QAAQ,EACR,SAA2B,EAC3B,OAAmB,GACpB,EAAE,qBAAqB,GAAG,YAAY,CAOtC;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,CAEvD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { ButtonElementData, ImageElementData, InteractiveElementData } from "../types.js";
|
|
3
|
+
export interface ImageElementProps {
|
|
4
|
+
readonly className?: string | undefined;
|
|
5
|
+
readonly element: ImageElementData;
|
|
6
|
+
readonly path?: string | undefined;
|
|
7
|
+
readonly variant?: "accessory" | "cardHero" | "cardIcon" | "context" | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function ImageElement({ className, element, variant }: ImageElementProps): ReactElement;
|
|
10
|
+
interface ActionElementProps {
|
|
11
|
+
readonly blockId?: string | undefined;
|
|
12
|
+
readonly className?: string | undefined;
|
|
13
|
+
readonly path?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
export interface ButtonElementProps extends ActionElementProps {
|
|
16
|
+
readonly element: ButtonElementData;
|
|
17
|
+
}
|
|
18
|
+
export declare function ButtonElement({ blockId, className, element, path, }: ButtonElementProps): ReactElement;
|
|
19
|
+
type OverflowElementData = Extract<InteractiveElementData, {
|
|
20
|
+
readonly type: "overflow";
|
|
21
|
+
}>;
|
|
22
|
+
export interface OverflowElementProps extends ActionElementProps {
|
|
23
|
+
readonly element: OverflowElementData;
|
|
24
|
+
}
|
|
25
|
+
export declare function OverflowElement({ blockId, className, element, path, }: OverflowElementProps): ReactElement;
|
|
26
|
+
interface ChoiceGroupProps extends ActionElementProps {
|
|
27
|
+
readonly element: Extract<InteractiveElementData, {
|
|
28
|
+
readonly type: "checkboxes" | "radio_buttons";
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export declare function ChoiceGroup({ blockId, className, element, path, }: ChoiceGroupProps): ReactElement;
|
|
32
|
+
type SelectElementData = Extract<InteractiveElementData, {
|
|
33
|
+
readonly type: "channels_select" | "conversations_select" | "external_select" | "multi_channels_select" | "multi_conversations_select" | "multi_external_select" | "multi_static_select" | "multi_users_select" | "static_select" | "users_select";
|
|
34
|
+
}>;
|
|
35
|
+
export interface SelectElementProps extends ActionElementProps {
|
|
36
|
+
readonly element: SelectElementData;
|
|
37
|
+
}
|
|
38
|
+
export declare function SelectElement({ blockId, className, element, path, }: SelectElementProps): ReactElement;
|
|
39
|
+
type InputElementData = Extract<InteractiveElementData, {
|
|
40
|
+
readonly type: "datepicker" | "datetimepicker" | "email_text_input" | "file_input" | "number_input" | "plain_text_input" | "rich_text_input" | "timepicker" | "url_text_input";
|
|
41
|
+
}>;
|
|
42
|
+
export interface InputElementProps extends ActionElementProps {
|
|
43
|
+
readonly element: InputElementData;
|
|
44
|
+
}
|
|
45
|
+
export declare function InputElement({ blockId, className, element, path, }: InputElementProps): ReactElement;
|
|
46
|
+
export interface InteractiveElementProps extends ActionElementProps {
|
|
47
|
+
readonly element: unknown;
|
|
48
|
+
}
|
|
49
|
+
export declare function InteractiveElement({ blockId, className, element, path, }: InteractiveElementProps): ReactElement;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=Elements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Elements.d.ts","sourceRoot":"","sources":["../../src/elements/Elements.tsx"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type BlockKitInvariantCode = "invalid_json" | "invalid_type" | "missing_field" | "invalid_value" | "limit_exceeded" | "surface_mismatch" | "duplicate_id" | "unsupported_block" | "unsupported_element";
|
|
2
|
+
export interface BlockKitInvariantDetails {
|
|
3
|
+
readonly code: BlockKitInvariantCode;
|
|
4
|
+
readonly path: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class BlockKitInvariantError extends Error {
|
|
7
|
+
readonly code: BlockKitInvariantCode;
|
|
8
|
+
readonly path: string;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
constructor(message: string, details: BlockKitInvariantDetails);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,cAAc,GACd,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAkB,IAAI,EAAE,MAAM,CAAC;IAE/B,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAK7D;CACF"}
|