Skip to content

feat: Exodus fork + community contributions#142

Open
james-gre wants to merge 17 commits intoraycharius:mainfrom
ExodusForks:james-gre/feat/upstream-prs-and-issues
Open

feat: Exodus fork + community contributions#142
james-gre wants to merge 17 commits intoraycharius:mainfrom
ExodusForks:james-gre/feat/upstream-prs-and-issues

Conversation

@james-gre
Copy link
Copy Markdown

@james-gre james-gre commented Jan 27, 2026

Summary

This PR brings contributions from the Exodus fork, building upon work from the community including PR #140 by @udivankin.

162 files changed, 4,180 insertions(+), 268 deletions(-)

New Blocks (4)

Block Description
RichText Full rich text block support with nested sections, lists, quotes, and preformatted text
Markdown Standalone markdown block for flexible text formatting
Table Table block with rich text cell support and column definitions
ContextActions Context block variant with action elements

New Elements (5)

Element Description
WorkflowButton Button that triggers Slack workflows
FeedbackButtons Feedback collection buttons (thumbs up/down)
IconButton Button with icon-only display
RichTextInput Input element for rich text editing
TimePicker Added timezone parameter for IANA timezone strings

New Bits (14 RichText components)

All the building blocks for constructing rich text content:

  • RichTextSection - Container for inline rich text elements
  • RichTextList - Ordered/unordered lists with customizable style and indent
  • RichTextQuote - Block quotes
  • RichTextPreformatted - Code blocks
  • RichTextText - Styled text with bold, italic, strike, code formatting
  • RichTextLink - Hyperlinks with optional text and styling
  • RichTextEmoji - Emoji elements by name
  • RichTextUser - User mentions
  • RichTextUsergroup - Usergroup mentions
  • RichTextChannel - Channel mentions
  • RichTextTeam - Team mentions with optional highlight
  • RichTextBroadcast - @here, @channel, @everyone mentions
  • RichTextDate - Formatted dates with optional link and fallback
  • RichTextColor - Colored text elements

Other Additions

Markdown Helper

  • Md.date(timestamp, format, link?, fallback?) - Format Unix timestamps with Slack's date formatting

Message Surface

  • unfurlLinks(bool) - Control URL preview expansion
  • unfurlMedia(bool) - Control media preview expansion

Paginator Refinement (PR #135)

  • Hide "Previous" button on first page
  • Hide "Next" button on last page
  • Cleaner UX for paginated content

Documentation

Complete documentation added for all new components in docs/:

  • Block documentation with examples
  • Element documentation with parameters
  • Bit documentation for all RichText components
  • Updated sidebar navigation

Tests

Full test coverage for all additions:

  • Unit tests for every new block, element, and bit
  • Mock files for consistent test data
  • Integration tests for paginator behavior
  • 1,396 total tests passing

Credits

Breaking Changes

None - all additions are backwards compatible.

davidjp1 and others added 17 commits August 30, 2025 18:03
Introduces support for Slack's rich text blocks and elements, including new Bits (RichTextSection, RichTextList, RichTextQuote, RichTextPreformatted, RichTextText, RichTextEmoji, RichTextLink, RichTextUser, RichTextChannel, RichTextUsergroup, RichTextBroadcast, RichTextDate, RichTextColor, RichTextTeam), Blocks (RichText, Markdown, Table, ContextActions), and Elements (WorkflowButton, IconButton, FeedbackButtons, RichTextInput). Updates documentation, constants, and tests to cover all new features and objects.
Replaces all references to api.slack.com in documentation and source code with docs.slack.dev, ensuring all links point to the new Slack API documentation domain.
Replaces outdated Slack Block Kit documentation URLs with current, more specific links throughout bits, blocks, and elements modules.
…text element properties, and add related validations.
Cherry-picked from PR raycharius#130 with bug fixes:
- Fixed duplicate UnfurlLinks enum key (should be UnfurlMedia)
- Fixed unfurlMedia method using wrong Prop (UnfurlLinks → UnfurlMedia)
- Fixed unfurl-media.ts test using wrong Prop references

Closes raycharius#119
- RichTextList now defaults style to 'bullet' (required field per Slack API)
- Restore @internal JSDoc on build() method to hide from public types

Bumps version to 2.9.3
…rius#135)

- Hide Previous button on first page
- Hide Next button on last page
- Updated tests to reflect new behavior

Implements upstream PR raycharius#135 by @ckersey2
- Add Timezone method mixin
- Add timezone prop constant
- Add timezone to TimePickerBuilder interface
- Add timezone to TimePickerParams

Implements upstream Issue raycharius#137 by @melchii
@james-gre james-gre closed this Jan 27, 2026
@james-gre james-gre reopened this Jan 27, 2026
@james-gre james-gre changed the title feat: upstream PR #135 and Issue #137 feat: refined paginator buttons + timepicker timezone support Jan 27, 2026
@james-gre james-gre changed the title feat: refined paginator buttons + timepicker timezone support feat: comprehensive Slack Block Kit additions (RichText, Markdown, Table, new elements) Jan 27, 2026
@james-gre james-gre changed the title feat: comprehensive Slack Block Kit additions (RichText, Markdown, Table, new elements) feat: add RichText, Markdown, Table blocks and related elements Jan 27, 2026
@james-gre james-gre changed the title feat: add RichText, Markdown, Table blocks and related elements feat: Exodus fork contributions Jan 27, 2026
@james-gre james-gre changed the title feat: Exodus fork contributions feat: Exodus fork + community contributions Jan 27, 2026
@james-gre
Copy link
Copy Markdown
Author

Claude Code really made a mess of this one, good stuff. I take full blame.

Anyway, hopefully this helps people get up to speed with the latest from slack in one simple PR ... maybe @raycharius finds it convenient.

I'm not sure if another fork has superceded this one but this project is really slick and critical and want to keep it up to date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants