slackblock 0.5.0-beta.0 → 1.0.0-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/CHANGELOG.md +7 -0
- package/README.md +16 -6
- package/dist/block.cjs +341 -0
- package/dist/block.cjs.map +1 -0
- package/dist/block.d.mts +412 -0
- package/dist/block.d.ts +412 -0
- package/dist/block.mjs +268 -0
- package/dist/block.mjs.map +1 -0
- package/dist/index.cjs +1202 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +1170 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types.d-DgQXbJte.d.mts +296 -0
- package/dist/types.d-DgQXbJte.d.ts +296 -0
- package/package.json +60 -110
- package/blocks.js +0 -12
- package/index.js +0 -7
- package/lib/components/block/button.js +0 -27
- package/lib/components/block/confirmation.js +0 -27
- package/lib/components/block/image.js +0 -27
- package/lib/components/block/text.js +0 -27
- package/lib/components/index.js +0 -42
- package/lib/components/input/date-picker.js +0 -27
- package/lib/components/input/option-group.js +0 -27
- package/lib/components/input/option.js +0 -27
- package/lib/components/input/overflow.js +0 -27
- package/lib/components/input/radio-group.js +0 -27
- package/lib/components/input/select.js +0 -34
- package/lib/components/input/text.js +0 -27
- package/lib/components/layout/actions.js +0 -27
- package/lib/components/layout/container.js +0 -27
- package/lib/components/layout/context.js +0 -27
- package/lib/components/layout/divider.js +0 -27
- package/lib/components/layout/file.js +0 -27
- package/lib/components/layout/image.js +0 -27
- package/lib/components/layout/input.js +0 -27
- package/lib/components/layout/section.js +0 -27
- package/lib/components/message.js +0 -27
- package/lib/constants/special-types.js +0 -4
- package/lib/index.js +0 -7
- package/lib/parser/index.js +0 -33
- package/lib/renderer/index.js +0 -71
- package/lib/transformers/block/button.js +0 -29
- package/lib/transformers/block/confirmation.js +0 -18
- package/lib/transformers/block/image.js +0 -10
- package/lib/transformers/block/text.js +0 -16
- package/lib/transformers/index.js +0 -68
- package/lib/transformers/input/date-picker.js +0 -30
- package/lib/transformers/input/option-group.js +0 -19
- package/lib/transformers/input/option.js +0 -19
- package/lib/transformers/input/overflow.js +0 -19
- package/lib/transformers/input/radio-group.js +0 -22
- package/lib/transformers/input/select.js +0 -84
- package/lib/transformers/input/text.js +0 -31
- package/lib/transformers/layout/actions.js +0 -18
- package/lib/transformers/layout/container.js +0 -11
- package/lib/transformers/layout/context.js +0 -18
- package/lib/transformers/layout/divider.js +0 -10
- package/lib/transformers/layout/file.js +0 -14
- package/lib/transformers/layout/image.js +0 -23
- package/lib/transformers/layout/input.js +0 -26
- package/lib/transformers/layout/section.js +0 -31
- package/lib/utils/get-type.js +0 -17
- package/lib/utils/type-helpers.js +0 -2
- package/src/components/block/button.tsx +0 -20
- package/src/components/block/confirmation.tsx +0 -19
- package/src/components/block/image.tsx +0 -8
- package/src/components/block/text.tsx +0 -10
- package/src/components/index.ts +0 -23
- package/src/components/input/date-picker.tsx +0 -11
- package/src/components/input/option-group.tsx +0 -9
- package/src/components/input/option.tsx +0 -9
- package/src/components/input/overflow.tsx +0 -12
- package/src/components/input/radio-group.tsx +0 -13
- package/src/components/input/select.tsx +0 -36
- package/src/components/input/text.tsx +0 -12
- package/src/components/layout/actions.tsx +0 -9
- package/src/components/layout/container.tsx +0 -9
- package/src/components/layout/context.tsx +0 -12
- package/src/components/layout/divider.tsx +0 -7
- package/src/components/layout/file.tsx +0 -8
- package/src/components/layout/image.tsx +0 -10
- package/src/components/layout/input.tsx +0 -12
- package/src/components/layout/section.tsx +0 -15
- package/src/components/message.tsx +0 -20
- package/src/constants/special-types.ts +0 -2
- package/src/constants/types.d.ts +0 -93
- package/src/index.ts +0 -3
- package/src/parser/index.ts +0 -33
- package/src/renderer/index.ts +0 -75
- package/src/transformers/block/button.tsx +0 -47
- package/src/transformers/block/confirmation.tsx +0 -26
- package/src/transformers/block/image.ts +0 -18
- package/src/transformers/block/text.ts +0 -34
- package/src/transformers/index.ts +0 -85
- package/src/transformers/input/date-picker.tsx +0 -43
- package/src/transformers/input/option-group.tsx +0 -26
- package/src/transformers/input/option.tsx +0 -27
- package/src/transformers/input/overflow.ts +0 -33
- package/src/transformers/input/radio-group.ts +0 -38
- package/src/transformers/input/select.tsx +0 -136
- package/src/transformers/input/text.tsx +0 -47
- package/src/transformers/layout/actions.ts +0 -29
- package/src/transformers/layout/container.ts +0 -16
- package/src/transformers/layout/context.ts +0 -35
- package/src/transformers/layout/divider.ts +0 -20
- package/src/transformers/layout/file.ts +0 -24
- package/src/transformers/layout/image.tsx +0 -34
- package/src/transformers/layout/input.tsx +0 -39
- package/src/transformers/layout/section.ts +0 -53
- package/src/tsconfig.json +0 -11
- package/src/utils/get-type.ts +0 -21
- package/src/utils/type-helpers.ts +0 -1
- package/test/index.test.tsx +0 -11
- package/test/parser/parser.test.tsx +0 -67
- package/test/renderer/renderer.test.tsx +0 -250
- package/test/transformers/block/button.test.tsx +0 -63
- package/test/transformers/block/confirmation.test.tsx +0 -37
- package/test/transformers/block/image.test.tsx +0 -20
- package/test/transformers/block/text.test.tsx +0 -32
- package/test/transformers/input/date-picker.test.tsx +0 -66
- package/test/transformers/input/option-group.test.tsx +0 -26
- package/test/transformers/input/option.test.tsx +0 -36
- package/test/transformers/input/overflow.test.tsx +0 -57
- package/test/transformers/input/radio-group.test.tsx +0 -81
- package/test/transformers/input/select.test.tsx +0 -249
- package/test/transformers/input/text.test.tsx +0 -42
- package/test/transformers/layout/actions.test.tsx +0 -33
- package/test/transformers/layout/container.test.tsx +0 -34
- package/test/transformers/layout/context.test.tsx +0 -43
- package/test/transformers/layout/divider.test.tsx +0 -20
- package/test/transformers/layout/file.test.tsx +0 -26
- package/test/transformers/layout/image.test.tsx +0 -43
- package/test/transformers/layout/input.test.tsx +0 -59
- package/test/transformers/layout/section.test.tsx +0 -89
- package/test/transformers/transformers.test.tsx +0 -46
- package/test/tsconfig.json +0 -9
- package/test/utils/get-type.test.tsx +0 -26
- package/tsconfig.json +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### 1.0.0
|
|
4
|
+
- Modernize tooling (Node 24, pnpm, tsup, Vitest, XO, Husky + lint-staged)
|
|
5
|
+
- Stabilize parser/transformer routing and align output types to serialized JSON
|
|
6
|
+
- Expand Block Kit coverage (header, rich_text, video, checkboxes, time/datetime pickers)
|
|
7
|
+
- Add rich_text helpers and improved select/input features
|
|
8
|
+
- Add validation warnings for Slack limits
|
|
9
|
+
|
|
3
10
|
### 0.4.0
|
|
4
11
|
- Allow for `<Section/>` blocks to have `null` components (useful for conditional renders)
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# SlackBlock
|
|
2
|
-
|
|
2
|
+
JSX-based Slack message renderer
|
|
3
3
|
|
|
4
4
|
[](https://circleci.com/gh/kolyaventuri/block/tree/master)
|
|
5
5
|
|
|
6
6
|
## What
|
|
7
|
-
A message builder for Slack bots, using JSX
|
|
7
|
+
A message builder for Slack bots, using JSX with a React-compatible API. Generally follows the [Block Kit](https://api.slack.com/block-kit) naming and options.
|
|
8
8
|
|
|
9
9
|
## Getting started
|
|
10
|
-
Install the library with `
|
|
10
|
+
Install the library with your package manager, for example `pnpm add slackblock`.
|
|
11
11
|
|
|
12
12
|
- Import the renderer with `import render from 'slackblock';`
|
|
13
13
|
- Import the top level `Message` block, along with any blocks you need from `import { Message, Section, Text, ... } from 'slackblock/block';`
|
|
@@ -32,7 +32,7 @@ console.log(message);
|
|
|
32
32
|
{
|
|
33
33
|
"type": "section",
|
|
34
34
|
"text": {
|
|
35
|
-
"
|
|
35
|
+
"type": "plain_text",
|
|
36
36
|
"text": "Hello"
|
|
37
37
|
},
|
|
38
38
|
"fields": [
|
|
@@ -66,7 +66,8 @@ const message = render(
|
|
|
66
66
|
|
|
67
67
|
## Things to note
|
|
68
68
|
- The outputted message only needs to have your `token` and desired `channel_id` added, and it will be ready to send to the slack API!
|
|
69
|
-
-
|
|
69
|
+
- React is a peer dependency and used only as a JSX runtime (no DOM renderer required).
|
|
70
|
+
- There is limited input validation (for example, date/time formats and select constraints). Warnings are emitted for common Slack limits (IDs, text lengths, block counts). Non-recognized blocks will be ignored, but Slack will be the ultimate decider if your message is valid. Validation is on the roadmap.
|
|
70
71
|
- There is currently almost no documentation. This will be resolved, but in general...
|
|
71
72
|
- If a Slack message wants a property in format `foo_bar`, you will add it as a `fooBar` property in your message(ex: `<Element fooBar='blah'/>`)
|
|
72
73
|
- If a component such as a `<Section/>` wants fields which seem like children, they probably are for the sake of rendering. This is especially important with `select` menus, as your `<Option/>` tags will be passed as children
|
|
@@ -78,8 +79,17 @@ const message = render(
|
|
|
78
79
|
</Select>
|
|
79
80
|
```
|
|
80
81
|
|
|
82
|
+
## Supported blocks and elements
|
|
83
|
+
Blocks: `Message` (top-level), `Section`, `Actions`, `Context`, `Divider`, `File`, `Image` (block), `Header`, `Input`, `RichText`, `Video`.
|
|
84
|
+
|
|
85
|
+
Elements: `Text`, `Image` (element), `Button`, `Confirmation`, `Select`, `Option`, `OptionGroup`, `Overflow`, `RadioGroup`, `Checkboxes`, `DatePicker`, `TimePicker`, `DateTimePicker`, `TextInput`.
|
|
86
|
+
|
|
87
|
+
Rich text helpers: `RichTextSection`, `RichTextList`, `RichTextQuote`, `RichTextPreformatted`, `RichTextText`, `RichTextLink`, `RichTextUser`, `RichTextChannel`, `RichTextEmoji`, `RichTextDate`, `RichTextBroadcast`, `RichTextUserGroup`.
|
|
88
|
+
|
|
89
|
+
Field support highlights: `select` filters/min query length, `option` description, `focusOnLoad` for inputs, `dispatchActionConfig` for text inputs, and `accessibilityLabel` on buttons.
|
|
90
|
+
|
|
81
91
|
|
|
82
92
|
## TODO
|
|
83
93
|
- Add real documentation
|
|
84
|
-
- Expose types
|
|
85
94
|
- Add validation
|
|
95
|
+
- Add richer rich_text validation
|
package/dist/block.cjs
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/block.ts
|
|
30
|
+
var block_exports = {};
|
|
31
|
+
__export(block_exports, {
|
|
32
|
+
Actions: () => Actions,
|
|
33
|
+
Button: () => Button,
|
|
34
|
+
Checkboxes: () => Checkboxes,
|
|
35
|
+
Confirmation: () => Confirmation,
|
|
36
|
+
Container: () => Container,
|
|
37
|
+
Context: () => Context,
|
|
38
|
+
DatePicker: () => DatePicker,
|
|
39
|
+
DateTimePicker: () => DateTimePicker,
|
|
40
|
+
Divider: () => Divider,
|
|
41
|
+
File: () => File,
|
|
42
|
+
Header: () => Header,
|
|
43
|
+
Image: () => Image,
|
|
44
|
+
ImageLayout: () => Image2,
|
|
45
|
+
Input: () => Input,
|
|
46
|
+
Message: () => Message,
|
|
47
|
+
Option: () => Option,
|
|
48
|
+
OptionGroup: () => OptionGroup,
|
|
49
|
+
Overflow: () => Overflow,
|
|
50
|
+
RadioGroup: () => RadioGroup,
|
|
51
|
+
RichText: () => RichText,
|
|
52
|
+
RichTextBroadcast: () => RichTextBroadcast,
|
|
53
|
+
RichTextChannel: () => RichTextChannel,
|
|
54
|
+
RichTextDate: () => RichTextDate,
|
|
55
|
+
RichTextEmoji: () => RichTextEmoji,
|
|
56
|
+
RichTextLink: () => RichTextLink,
|
|
57
|
+
RichTextList: () => RichTextList,
|
|
58
|
+
RichTextPreformatted: () => RichTextPreformatted,
|
|
59
|
+
RichTextQuote: () => RichTextQuote,
|
|
60
|
+
RichTextSection: () => RichTextSection,
|
|
61
|
+
RichTextText: () => RichTextText,
|
|
62
|
+
RichTextUser: () => RichTextUser,
|
|
63
|
+
RichTextUserGroup: () => RichTextUserGroup,
|
|
64
|
+
Section: () => Section,
|
|
65
|
+
Select: () => Select,
|
|
66
|
+
Text: () => Text,
|
|
67
|
+
TextInput: () => TextInput,
|
|
68
|
+
TimePicker: () => TimePicker,
|
|
69
|
+
Video: () => Video
|
|
70
|
+
});
|
|
71
|
+
module.exports = __toCommonJS(block_exports);
|
|
72
|
+
|
|
73
|
+
// src/components/message.tsx
|
|
74
|
+
var import_react = __toESM(require("react"));
|
|
75
|
+
var Message = class extends import_react.default.Component {
|
|
76
|
+
};
|
|
77
|
+
Message.slackType = "Message";
|
|
78
|
+
|
|
79
|
+
// src/components/block/button.tsx
|
|
80
|
+
var import_react2 = __toESM(require("react"));
|
|
81
|
+
var Button = class extends import_react2.default.Component {
|
|
82
|
+
};
|
|
83
|
+
Button.slackType = "Button";
|
|
84
|
+
|
|
85
|
+
// src/components/block/confirmation.tsx
|
|
86
|
+
var import_react3 = __toESM(require("react"));
|
|
87
|
+
var Confirmation = class extends import_react3.default.Component {
|
|
88
|
+
};
|
|
89
|
+
Confirmation.slackType = "Confirmation";
|
|
90
|
+
|
|
91
|
+
// src/components/block/image.tsx
|
|
92
|
+
var import_react4 = __toESM(require("react"));
|
|
93
|
+
var Image = class extends import_react4.default.Component {
|
|
94
|
+
};
|
|
95
|
+
Image.slackType = "Image";
|
|
96
|
+
|
|
97
|
+
// src/components/block/text.tsx
|
|
98
|
+
var import_react5 = __toESM(require("react"));
|
|
99
|
+
var Text = class extends import_react5.default.Component {
|
|
100
|
+
};
|
|
101
|
+
Text.slackType = "Text";
|
|
102
|
+
|
|
103
|
+
// src/components/input/date-picker.tsx
|
|
104
|
+
var import_react6 = __toESM(require("react"));
|
|
105
|
+
var DatePicker = class extends import_react6.default.Component {
|
|
106
|
+
};
|
|
107
|
+
DatePicker.slackType = "DatePicker";
|
|
108
|
+
|
|
109
|
+
// src/components/input/date-time-picker.tsx
|
|
110
|
+
var import_react7 = __toESM(require("react"));
|
|
111
|
+
var DateTimePicker = class extends import_react7.default.Component {
|
|
112
|
+
};
|
|
113
|
+
DateTimePicker.slackType = "DateTimePicker";
|
|
114
|
+
|
|
115
|
+
// src/components/input/checkboxes.tsx
|
|
116
|
+
var import_react8 = __toESM(require("react"));
|
|
117
|
+
var Checkboxes = class extends import_react8.default.Component {
|
|
118
|
+
};
|
|
119
|
+
Checkboxes.slackType = "Checkboxes";
|
|
120
|
+
|
|
121
|
+
// src/components/input/option-group.tsx
|
|
122
|
+
var import_react9 = __toESM(require("react"));
|
|
123
|
+
var OptionGroup = class extends import_react9.default.Component {
|
|
124
|
+
};
|
|
125
|
+
OptionGroup.slackType = "OptionGroup";
|
|
126
|
+
|
|
127
|
+
// src/components/input/option.tsx
|
|
128
|
+
var import_react10 = __toESM(require("react"));
|
|
129
|
+
var Option = class extends import_react10.default.Component {
|
|
130
|
+
};
|
|
131
|
+
Option.slackType = "Option";
|
|
132
|
+
|
|
133
|
+
// src/components/input/overflow.tsx
|
|
134
|
+
var import_react11 = __toESM(require("react"));
|
|
135
|
+
var Overflow = class extends import_react11.default.Component {
|
|
136
|
+
};
|
|
137
|
+
Overflow.slackType = "Overflow";
|
|
138
|
+
|
|
139
|
+
// src/components/input/radio-group.tsx
|
|
140
|
+
var import_react12 = __toESM(require("react"));
|
|
141
|
+
var RadioGroup = class extends import_react12.default.Component {
|
|
142
|
+
};
|
|
143
|
+
RadioGroup.slackType = "RadioGroup";
|
|
144
|
+
|
|
145
|
+
// src/components/input/select.tsx
|
|
146
|
+
var import_react13 = __toESM(require("react"));
|
|
147
|
+
var Select = class extends import_react13.default.Component {
|
|
148
|
+
};
|
|
149
|
+
Select.slackType = "Select";
|
|
150
|
+
|
|
151
|
+
// src/components/input/text.tsx
|
|
152
|
+
var import_react14 = __toESM(require("react"));
|
|
153
|
+
var TextInput = class extends import_react14.default.Component {
|
|
154
|
+
};
|
|
155
|
+
TextInput.slackType = "TextInput";
|
|
156
|
+
|
|
157
|
+
// src/components/input/time-picker.tsx
|
|
158
|
+
var import_react15 = __toESM(require("react"));
|
|
159
|
+
var TimePicker = class extends import_react15.default.Component {
|
|
160
|
+
};
|
|
161
|
+
TimePicker.slackType = "TimePicker";
|
|
162
|
+
|
|
163
|
+
// src/components/layout/actions.tsx
|
|
164
|
+
var import_react16 = __toESM(require("react"));
|
|
165
|
+
var Actions = class extends import_react16.default.Component {
|
|
166
|
+
};
|
|
167
|
+
Actions.slackType = "Actions";
|
|
168
|
+
|
|
169
|
+
// src/components/layout/context.tsx
|
|
170
|
+
var import_react17 = __toESM(require("react"));
|
|
171
|
+
var Context = class extends import_react17.default.Component {
|
|
172
|
+
};
|
|
173
|
+
Context.slackType = "Context";
|
|
174
|
+
|
|
175
|
+
// src/components/layout/divider.tsx
|
|
176
|
+
var import_react18 = __toESM(require("react"));
|
|
177
|
+
var Divider = class extends import_react18.default.Component {
|
|
178
|
+
};
|
|
179
|
+
Divider.slackType = "Divider";
|
|
180
|
+
|
|
181
|
+
// src/components/layout/file.tsx
|
|
182
|
+
var import_react19 = __toESM(require("react"));
|
|
183
|
+
var File = class extends import_react19.default.Component {
|
|
184
|
+
};
|
|
185
|
+
File.slackType = "File";
|
|
186
|
+
|
|
187
|
+
// src/components/layout/header.tsx
|
|
188
|
+
var import_react20 = __toESM(require("react"));
|
|
189
|
+
var Header = class extends import_react20.default.Component {
|
|
190
|
+
};
|
|
191
|
+
Header.slackType = "Header";
|
|
192
|
+
|
|
193
|
+
// src/components/layout/image.tsx
|
|
194
|
+
var import_react21 = __toESM(require("react"));
|
|
195
|
+
var Image2 = class extends import_react21.default.Component {
|
|
196
|
+
};
|
|
197
|
+
Image2.slackType = "ImageLayout";
|
|
198
|
+
|
|
199
|
+
// src/components/layout/input.tsx
|
|
200
|
+
var import_react22 = __toESM(require("react"));
|
|
201
|
+
var Input = class extends import_react22.default.Component {
|
|
202
|
+
};
|
|
203
|
+
Input.slackType = "Input";
|
|
204
|
+
|
|
205
|
+
// src/components/layout/rich-text.tsx
|
|
206
|
+
var import_react23 = __toESM(require("react"));
|
|
207
|
+
var RichText = class extends import_react23.default.Component {
|
|
208
|
+
};
|
|
209
|
+
RichText.slackType = "RichText";
|
|
210
|
+
|
|
211
|
+
// src/components/layout/section.tsx
|
|
212
|
+
var import_react24 = __toESM(require("react"));
|
|
213
|
+
var Section = class extends import_react24.default.Component {
|
|
214
|
+
};
|
|
215
|
+
Section.slackType = "Section";
|
|
216
|
+
|
|
217
|
+
// src/components/layout/container.tsx
|
|
218
|
+
var import_react25 = __toESM(require("react"));
|
|
219
|
+
var Container = class extends import_react25.default.Component {
|
|
220
|
+
};
|
|
221
|
+
Container.slackType = "Container";
|
|
222
|
+
|
|
223
|
+
// src/components/layout/video.tsx
|
|
224
|
+
var import_react26 = __toESM(require("react"));
|
|
225
|
+
var Video = class extends import_react26.default.Component {
|
|
226
|
+
};
|
|
227
|
+
Video.slackType = "Video";
|
|
228
|
+
|
|
229
|
+
// src/components/rich-text/section.tsx
|
|
230
|
+
var import_react27 = __toESM(require("react"));
|
|
231
|
+
var RichTextSection = class extends import_react27.default.Component {
|
|
232
|
+
};
|
|
233
|
+
RichTextSection.slackType = "RichTextSection";
|
|
234
|
+
|
|
235
|
+
// src/components/rich-text/list.tsx
|
|
236
|
+
var import_react28 = __toESM(require("react"));
|
|
237
|
+
var RichTextList = class extends import_react28.default.Component {
|
|
238
|
+
};
|
|
239
|
+
RichTextList.slackType = "RichTextList";
|
|
240
|
+
|
|
241
|
+
// src/components/rich-text/quote.tsx
|
|
242
|
+
var import_react29 = __toESM(require("react"));
|
|
243
|
+
var RichTextQuote = class extends import_react29.default.Component {
|
|
244
|
+
};
|
|
245
|
+
RichTextQuote.slackType = "RichTextQuote";
|
|
246
|
+
|
|
247
|
+
// src/components/rich-text/preformatted.tsx
|
|
248
|
+
var import_react30 = __toESM(require("react"));
|
|
249
|
+
var RichTextPreformatted = class extends import_react30.default.Component {
|
|
250
|
+
};
|
|
251
|
+
RichTextPreformatted.slackType = "RichTextPreformatted";
|
|
252
|
+
|
|
253
|
+
// src/components/rich-text/text.tsx
|
|
254
|
+
var import_react31 = __toESM(require("react"));
|
|
255
|
+
var RichTextText = class extends import_react31.default.Component {
|
|
256
|
+
};
|
|
257
|
+
RichTextText.slackType = "RichTextText";
|
|
258
|
+
|
|
259
|
+
// src/components/rich-text/link.tsx
|
|
260
|
+
var import_react32 = __toESM(require("react"));
|
|
261
|
+
var RichTextLink = class extends import_react32.default.Component {
|
|
262
|
+
};
|
|
263
|
+
RichTextLink.slackType = "RichTextLink";
|
|
264
|
+
|
|
265
|
+
// src/components/rich-text/user.tsx
|
|
266
|
+
var import_react33 = __toESM(require("react"));
|
|
267
|
+
var RichTextUser = class extends import_react33.default.Component {
|
|
268
|
+
};
|
|
269
|
+
RichTextUser.slackType = "RichTextUser";
|
|
270
|
+
|
|
271
|
+
// src/components/rich-text/channel.tsx
|
|
272
|
+
var import_react34 = __toESM(require("react"));
|
|
273
|
+
var RichTextChannel = class extends import_react34.default.Component {
|
|
274
|
+
};
|
|
275
|
+
RichTextChannel.slackType = "RichTextChannel";
|
|
276
|
+
|
|
277
|
+
// src/components/rich-text/emoji.tsx
|
|
278
|
+
var import_react35 = __toESM(require("react"));
|
|
279
|
+
var RichTextEmoji = class extends import_react35.default.Component {
|
|
280
|
+
};
|
|
281
|
+
RichTextEmoji.slackType = "RichTextEmoji";
|
|
282
|
+
|
|
283
|
+
// src/components/rich-text/date.tsx
|
|
284
|
+
var import_react36 = __toESM(require("react"));
|
|
285
|
+
var RichTextDate = class extends import_react36.default.Component {
|
|
286
|
+
};
|
|
287
|
+
RichTextDate.slackType = "RichTextDate";
|
|
288
|
+
|
|
289
|
+
// src/components/rich-text/broadcast.tsx
|
|
290
|
+
var import_react37 = __toESM(require("react"));
|
|
291
|
+
var RichTextBroadcast = class extends import_react37.default.Component {
|
|
292
|
+
};
|
|
293
|
+
RichTextBroadcast.slackType = "RichTextBroadcast";
|
|
294
|
+
|
|
295
|
+
// src/components/rich-text/user-group.tsx
|
|
296
|
+
var import_react38 = __toESM(require("react"));
|
|
297
|
+
var RichTextUserGroup = class extends import_react38.default.Component {
|
|
298
|
+
};
|
|
299
|
+
RichTextUserGroup.slackType = "RichTextUserGroup";
|
|
300
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
301
|
+
0 && (module.exports = {
|
|
302
|
+
Actions,
|
|
303
|
+
Button,
|
|
304
|
+
Checkboxes,
|
|
305
|
+
Confirmation,
|
|
306
|
+
Container,
|
|
307
|
+
Context,
|
|
308
|
+
DatePicker,
|
|
309
|
+
DateTimePicker,
|
|
310
|
+
Divider,
|
|
311
|
+
File,
|
|
312
|
+
Header,
|
|
313
|
+
Image,
|
|
314
|
+
ImageLayout,
|
|
315
|
+
Input,
|
|
316
|
+
Message,
|
|
317
|
+
Option,
|
|
318
|
+
OptionGroup,
|
|
319
|
+
Overflow,
|
|
320
|
+
RadioGroup,
|
|
321
|
+
RichText,
|
|
322
|
+
RichTextBroadcast,
|
|
323
|
+
RichTextChannel,
|
|
324
|
+
RichTextDate,
|
|
325
|
+
RichTextEmoji,
|
|
326
|
+
RichTextLink,
|
|
327
|
+
RichTextList,
|
|
328
|
+
RichTextPreformatted,
|
|
329
|
+
RichTextQuote,
|
|
330
|
+
RichTextSection,
|
|
331
|
+
RichTextText,
|
|
332
|
+
RichTextUser,
|
|
333
|
+
RichTextUserGroup,
|
|
334
|
+
Section,
|
|
335
|
+
Select,
|
|
336
|
+
Text,
|
|
337
|
+
TextInput,
|
|
338
|
+
TimePicker,
|
|
339
|
+
Video
|
|
340
|
+
});
|
|
341
|
+
//# sourceMappingURL=block.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/block.ts","../src/components/message.tsx","../src/components/block/button.tsx","../src/components/block/confirmation.tsx","../src/components/block/image.tsx","../src/components/block/text.tsx","../src/components/input/date-picker.tsx","../src/components/input/date-time-picker.tsx","../src/components/input/checkboxes.tsx","../src/components/input/option-group.tsx","../src/components/input/option.tsx","../src/components/input/overflow.tsx","../src/components/input/radio-group.tsx","../src/components/input/select.tsx","../src/components/input/text.tsx","../src/components/input/time-picker.tsx","../src/components/layout/actions.tsx","../src/components/layout/context.tsx","../src/components/layout/divider.tsx","../src/components/layout/file.tsx","../src/components/layout/header.tsx","../src/components/layout/image.tsx","../src/components/layout/input.tsx","../src/components/layout/rich-text.tsx","../src/components/layout/section.tsx","../src/components/layout/container.tsx","../src/components/layout/video.tsx","../src/components/rich-text/section.tsx","../src/components/rich-text/list.tsx","../src/components/rich-text/quote.tsx","../src/components/rich-text/preformatted.tsx","../src/components/rich-text/text.tsx","../src/components/rich-text/link.tsx","../src/components/rich-text/user.tsx","../src/components/rich-text/channel.tsx","../src/components/rich-text/emoji.tsx","../src/components/rich-text/date.tsx","../src/components/rich-text/broadcast.tsx","../src/components/rich-text/user-group.tsx"],"sourcesContent":["export * from './components';\n","import React from 'react';\n\nimport {type Element} from '../constants/types';\n\ntype Properties = {\n children: string | Element | Element[];\n text?: string;\n asUser?: boolean;\n iconEmoji?: string;\n iconUrl?: string;\n markdown?: boolean;\n parse?: 'full' | 'none';\n replyBroadcast?: boolean;\n replyTo?: string;\n unfurlLinks?: boolean;\n unfurlMedia?: boolean;\n username?: string;\n color?: string;\n};\n\nexport default class Message extends React.Component<Properties> {\n static slackType = 'Message';\n}\n","import React from 'react';\n\nimport type Confirmation from './confirmation';\n\ntype TopProperties = {\n children: string;\n actionId: string;\n url?: string;\n value?: string;\n style?: 'primary' | 'danger';\n accessibilityLabel?: string;\n};\n\nexport type ButtonProps = TopProperties & {\n confirm?: React.ReactElement<Confirmation>;\n};\n\ntype Properties = ButtonProps;\n\nexport default class Button extends React.Component<Properties> {\n static slackType = 'Button';\n}\n","import React from 'react';\n\nimport type Text from './text';\n\ntype TopProperties = {\n title: string;\n confirm: string;\n deny: string;\n};\n\n/* This is a dumb workaround to merging props */\nexport type ConfirmationProps = TopProperties & {\n children: React.ReactElement<Text>;\n};\n\ntype Properties = ConfirmationProps;\n\nexport default class Confirmation extends React.Component<Properties> {\n static slackType = 'Confirmation';\n}\n","import React from 'react';\n\nexport type Props = {\n url: string;\n alt: string;\n};\n\nexport default class Image extends React.Component<Props> {\n static slackType = 'Image';\n}\n","import React from 'react';\n\nexport type Props = {\n children: string;\n plainText?: boolean;\n emoji?: boolean;\n verbatim?: boolean;\n};\n\nexport default class Text extends React.Component<Props> {\n static slackType = 'Text';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\n\nexport type Props = {\n actionId: string;\n placeholder?: string;\n initialDate?: string;\n confirm?: React.ReactElement<Confirmation>;\n focusOnLoad?: boolean;\n};\n\nexport default class DatePicker extends React.Component<Props> {\n static slackType = 'DatePicker';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\n\nexport type Props = {\n actionId: string;\n initialDateTime?: number;\n confirm?: React.ReactElement<Confirmation>;\n focusOnLoad?: boolean;\n};\n\nexport default class DateTimePicker extends React.Component<Props> {\n static slackType = 'DateTimePicker';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nimport type Option from './option';\n\nexport type Props = {\n actionId: string;\n children: SingleOrArray<React.ReactElement<Option>>;\n initialOptions?: Array<React.ReactElement<Option>>;\n confirm?: React.ReactElement<Confirmation>;\n focusOnLoad?: boolean;\n};\n\nexport default class Checkboxes extends React.Component<Props> {\n static slackType = 'Checkboxes';\n}\n","import React from 'react';\n\nimport type Option from './option';\n\nexport type Props = {\n label: string;\n children: React.ReactElement<Option> | Array<React.ReactElement<Option>>;\n};\n\nexport default class OptionGroup extends React.Component<Props> {\n static slackType = 'OptionGroup';\n}\n","import React from 'react';\n\nexport type Props = {\n children: string;\n value: string;\n url?: string;\n description?: string;\n};\n\nexport default class Option extends React.Component<Props> {\n static slackType = 'Option';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nimport type Option from './option';\n\nexport type Props = {\n actionId: string;\n children: SingleOrArray<React.ReactElement<Option>>;\n confirm?: React.ReactElement<Confirmation>;\n};\n\nexport default class Overflow extends React.Component<Props> {\n static slackType = 'Overflow';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nimport type Option from './option';\n\nexport type Props = {\n actionId: string;\n children: SingleOrArray<React.ReactElement<Option>>;\n initialOption?: React.ReactElement<Option>;\n confirm?: React.ReactElement<Confirmation>;\n focusOnLoad?: boolean;\n};\n\nexport default class RadioGroup extends React.Component<Props> {\n static slackType = 'RadioGroup';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nimport type Option from './option';\nimport type OptionGroup from './option-group';\n\nexport const selectTypes = {\n STATIC: 'static',\n EXTERNAL: 'external',\n USER: 'user',\n CONVERSATION: 'conversation',\n CHANNEL: 'channel',\n} as const;\n\ntype SelectType = typeof selectTypes[keyof typeof selectTypes];\n\ntype ConversationFilter = {\n include?: Array<'im' | 'mpim' | 'private' | 'public'>;\n excludeExternalSharedChannels?: boolean;\n excludeBotUsers?: boolean;\n};\n\nexport type Props = {\n placeholder: string;\n actionId: string;\n type?: SelectType;\n multi?: boolean;\n children?: SingleOrArray<React.ReactElement<Option>> | SingleOrArray<React.ReactElement<OptionGroup>>;\n initialOptions?: Array<React.ReactElement<Option>>;\n confirm?: React.ReactElement<Confirmation>;\n maxSelectedItems?: number;\n minQueryLength?: number;\n focusOnLoad?: boolean;\n initialUsers?: string[];\n initialConversations?: string[];\n initialChannels?: string[];\n defaultToCurrentConversation?: boolean;\n responseUrlEnabled?: boolean;\n filter?: ConversationFilter;\n};\n\nexport default class Select extends React.Component<Props> {\n static slackType = 'Select';\n}\n","import React from 'react';\n\nexport type Props = {\n actionId: string;\n placeholder?: string;\n initial?: string;\n multiline?: boolean;\n minLength?: number;\n maxLength?: number;\n focusOnLoad?: boolean;\n dispatchActionConfig?: {\n triggerActionsOn: Array<'on_enter_pressed' | 'on_character_entered'>;\n };\n};\n\nexport default class TextInput extends React.Component<Props> {\n static slackType = 'TextInput';\n}\n","import React from 'react';\n\nimport type Confirmation from '../block/confirmation';\n\nexport type Props = {\n actionId: string;\n placeholder?: string;\n initialTime?: string;\n confirm?: React.ReactElement<Confirmation>;\n focusOnLoad?: boolean;\n};\n\nexport default class TimePicker extends React.Component<Props> {\n static slackType = 'TimePicker';\n}\n","import React from 'react';\n\nimport {type InteractiveBlockElement} from '../../constants/types';\n\nexport type Props = {\n children: InteractiveBlockElement | InteractiveBlockElement[];\n blockId?: string;\n};\n\nexport default class Actions extends React.Component<Props> {\n static slackType = 'Actions';\n}\n","import React from 'react';\n\nimport type Text from '../block/text';\nimport type Image from '../block/image';\n\nexport type ImageOrText = React.ReactElement<Text> | React.ReactElement<Image>;\n\nexport type Props = {\n children: ImageOrText | ImageOrText[];\n blockId?: string;\n};\n\nexport default class Context extends React.Component<Props> {\n static slackType = 'Context';\n}\n","import React from 'react';\n\nexport type Props = {\n blockId?: string;\n};\n\nexport default class Divider extends React.Component<Props> {\n static slackType = 'Divider';\n}\n","import React from 'react';\n\nexport type Props = {\n externalId: string;\n blockId?: string;\n};\n\nexport default class File extends React.Component<Props> {\n static slackType = 'File';\n}\n","import React from 'react';\n\nexport type Props = {\n text: string;\n blockId?: string;\n emoji?: boolean;\n};\n\nexport default class Header extends React.Component<Props> {\n static slackType = 'Header';\n}\n","import React from 'react';\n\nexport type Props = {\n url: string;\n alt: string;\n title?: string;\n blockId?: string;\n};\n\nexport default class Image extends React.Component<Props> {\n static slackType = 'ImageLayout';\n}\n","import React from 'react';\n\nimport {type InputBlockElement} from '../../constants/types';\n\nexport type Props = {\n label: string;\n element: InputBlockElement;\n hint?: string;\n optional?: boolean;\n blockId?: string;\n};\n\nexport default class Input extends React.Component<Props> {\n static slackType = 'Input';\n}\n","import React from 'react';\n\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nexport type RichTextElement = Record<string, any>;\n\nexport type Props = {\n elements?: RichTextElement[];\n children?: SingleOrArray<React.ReactElement | string>;\n blockId?: string;\n};\n\nexport default class RichText extends React.Component<Props> {\n static slackType = 'RichText';\n}\n","import React from 'react';\n\nimport type Text from '../block/text';\nimport {type BlockElement} from '../../constants/types';\n\ntype TextElement = React.ReactElement<Text>;\n\nexport type Props = {\n text: React.ReactElement<Text>;\n blockId?: string;\n children?: TextElement | TextElement[];\n accessory?: BlockElement;\n};\n\nexport default class Section extends React.Component<Props> {\n static slackType = 'Section';\n}\n\n","import React from 'react';\n\nimport {type SingleOrArray} from '../../utils/type-helpers';\nimport {type Child} from '../../constants/types';\n\nexport type Props = {\n children: SingleOrArray<Child>;\n};\n\nexport default class Container extends React.Component<Props> {\n static slackType = 'Container';\n}\n","import React from 'react';\n\nexport type Props = {\n title: string;\n videoUrl: string;\n thumbnailUrl: string;\n altText: string;\n titleUrl?: string;\n description?: string;\n authorName?: string;\n providerName?: string;\n providerIconUrl?: string;\n blockId?: string;\n};\n\nexport default class Video extends React.Component<Props> {\n static slackType = 'Video';\n}\n","import React from 'react';\n\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nexport type Props = {\n children: SingleOrArray<React.ReactElement | string>;\n};\n\nexport default class RichTextSection extends React.Component<Props> {\n static slackType = 'RichTextSection';\n}\n","import React from 'react';\n\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nimport {type RichTextListStyle} from './types';\n\nexport type Props = {\n style: RichTextListStyle;\n children: SingleOrArray<React.ReactElement | string>;\n indent?: number;\n border?: number;\n};\n\nexport default class RichTextList extends React.Component<Props> {\n static slackType = 'RichTextList';\n}\n","import React from 'react';\n\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nexport type Props = {\n children: SingleOrArray<React.ReactElement | string>;\n};\n\nexport default class RichTextQuote extends React.Component<Props> {\n static slackType = 'RichTextQuote';\n}\n","import React from 'react';\n\nimport {type SingleOrArray} from '../../utils/type-helpers';\n\nexport type Props = {\n children: SingleOrArray<React.ReactElement | string>;\n};\n\nexport default class RichTextPreformatted extends React.Component<Props> {\n static slackType = 'RichTextPreformatted';\n}\n","import React from 'react';\n\nimport {type RichTextStyle} from './types';\n\nexport type Props = {\n children: string;\n style?: RichTextStyle;\n};\n\nexport default class RichTextText extends React.Component<Props> {\n static slackType = 'RichTextText';\n}\n","import React from 'react';\n\nimport {type RichTextStyle} from './types';\n\nexport type Props = {\n url: string;\n children?: string;\n style?: RichTextStyle;\n};\n\nexport default class RichTextLink extends React.Component<Props> {\n static slackType = 'RichTextLink';\n}\n","import React from 'react';\n\nexport type Props = {\n userId: string;\n};\n\nexport default class RichTextUser extends React.Component<Props> {\n static slackType = 'RichTextUser';\n}\n","import React from 'react';\n\nexport type Props = {\n channelId: string;\n};\n\nexport default class RichTextChannel extends React.Component<Props> {\n static slackType = 'RichTextChannel';\n}\n","import React from 'react';\n\nexport type Props = {\n name: string;\n};\n\nexport default class RichTextEmoji extends React.Component<Props> {\n static slackType = 'RichTextEmoji';\n}\n","import React from 'react';\n\nexport type Props = {\n timestamp: number;\n format: string;\n fallback: string;\n link?: string;\n};\n\nexport default class RichTextDate extends React.Component<Props> {\n static slackType = 'RichTextDate';\n}\n","import React from 'react';\n\nimport {type RichTextBroadcastRange} from './types';\n\nexport type Props = {\n range: RichTextBroadcastRange;\n};\n\nexport default class RichTextBroadcast extends React.Component<Props> {\n static slackType = 'RichTextBroadcast';\n}\n","import React from 'react';\n\nexport type Props = {\n usergroupId: string;\n};\n\nexport default class RichTextUserGroup extends React.Component<Props> {\n static slackType = 'RichTextUserGroup';\n}\n"],"mappings":"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","names":["Image","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","Image","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React"]}
|