jsx-slack

Build JSON object for Slack Block Kit surfaces from JSX

MIT License

Downloads
20.5K
Stars
458
Committers
7
jsx-slack - v4.3.0

Published by yhatt over 3 years ago

Added

Fixed

  • Broken JSDoc links in some IDEs (#235)

Changed

  • Upgrade dependent packages to the latest version (#236)
jsx-slack - v4.2.1

Published by yhatt over 3 years ago

Added

  • JSX runtime scripts with ES modules (#232)

Fixed

  • Fixed script resolution error when using JSX runtime script through ES modules (#231)
jsx-slack - v4.2.0

Published by yhatt over 3 years ago

Added

  • ES modules support (#227)
  • CI test against Node 16 (#228)

Changed

  • Upgrade Node and dependent packages to the latest version (#228)
  • Rename master branch to main (#229)
jsx-slack - v4.1.0

Published by yhatt over 3 years ago

Added

  • Added type exports that are similar to @types/react (#226)
    • FunctionCompnent / FC (Alias to same types in JSXSlack namespace)
    • VoidFunctionComponent / VFC (Alias to same types in JSXSlack namespace)
    • Node (Similar to ReactNode but for jsx-slack. Alias to JSXSlack.ChildElements)

Changed

  • Upgrade dependent packages to the latest version (#225)
jsx-slack - v4.0.0

Published by yhatt over 3 years ago

Breaking

  • Dropped Node 10 support (#219)

Changed

  • Allow containing <Input> and input components in <Blocks> (#218, #220)
  • Upgrade dependent packages to the latest version (#219)

Removed

  • Remove deprecated jsxslack.raw (#221)
jsx-slack - v3.0.0

Published by yhatt over 3 years ago

Breaking

The package name has renamed from @speee-js/jsx-slack to jsx-slack.

Added

  • JSX automatic runtime support for TypeScript 4.1 (#214, #194)

Changed

jsx-slack - v2.6.0

Published by yhatt about 4 years ago

Added

Fixed

  • Escaped underscores within Korean emoji shorthand have broken (#203, #206)

Changed

  • Upgrade dependent packages to the latest version (#208)
jsx-slack - v2.5.1

Published by yhatt about 4 years ago

Added

Fixed

  • Update demo schema for dispatchAction prop (#201)
jsx-slack - v2.5.0

Published by yhatt about 4 years ago

Changed

  • <Input> and input components are available in home tab container <Home> (#195, #200)
  • Allow using <RadioButtonGroup> and <CheckboxGroup> in message container <Blocks> (#196, #197)
  • Upgrade dependent packages to the latest version (#191, #198)

Added

jsx-slack - v2.4.0

Published by yhatt about 4 years ago

Added

Fixed

  • Fix typos in how-to-setup-jsx-transpiler.md (#183 by @mashabow)
jsx-slack - v2.3.0

Published by yhatt over 4 years ago

Added

Changed

  • datetime prop for <time> is now aliasing into added camelCased prop (#179, #182)
  • Upgrade dependent packages to the latest version (#178)
jsx-slack - v2.2.1

Published by yhatt over 4 years ago

Fixed

  • Fix wrong extension for the path of type definition: .js -> .d.ts (#171)
  • Update how to generate Block Kit Builder URL in demo page (#168, #172)

Changed

  • Upgrade Node and dependent packages to the latest version (#175)
jsx-slack - v2.2.0

Published by yhatt over 4 years ago

Added

Changed

  • Upgrade dependent packages to the latest version (#166)
jsx-slack - v2.1.0

Published by yhatt over 4 years ago

Added

Changed

  • Upgrade Node and dependent packages to the latest version (#158)
  • Refactor special link detection (#159)
  • Update demo REPL (#157)
    • Move template examples on README into REPL demo
    • Use Web fonts to get better rendering
    • Disable preview button if Slack may return 414 error due to too long URL
jsx-slack - v2.0.0

Published by yhatt over 4 years ago

jsx-slack v2 has improved JSX structure and built-in components to output the real JSON from JSX!

▶︎ See highlight of v2 updates

Breaking

  • Checked states defined in <CheckboxGroup values> and <Checkbox checked> do no longer merge
  • Breaking for TypeScript
    • Require TypeScript >= 3.7 when using jsx-slack through TypeScript
    • Container components have strict type checking for its children
    • Exported type JSXSlack.Child and JSXSlack.Children have been renamed into JSXSlack.ChildElement and JSXSlack.ChildElements and no longer provided generics

Changed

  • Fully rewrote JSX structure to render from JSX to JSON directly (#128)
  • All built-in components can render the partial JSON of Block Kit
  • <Home> container now accepts <Input type="hidden" /> and custom transformer to store private metadata
  • value prop for <Option> has made optional to follow HTML specification
  • confirm prop for interactive block elements accepts the raw confirm composition object
  • <a> tag renders short syntax for hyperlink if possible
  • Throws error with more helpful message and stacktrace when there is invalid JSX structure (#143)
  • Bundle modules through rollup (#144)

Added

  • React-compatible public APIs: JSXSlack.createElement, JSXSlack.isValidElement, and JSXSlack.Children helpers
  • HTML-compatible <Option selected> and <RadioButton checked>
  • value prop as an alias into initialXXX prop in some interactive components
  • Added JSDoc to many public APIs and components
  • Support new JSX transpile via automatic runtime in Babel >= 7.9 (experimental) (#142)
  • REPL demo now generates the permalink to specific JSX (#149)
  • Dark mode for REPL demo (#150)
  • New logo and logo type (#152)

Fixed

  • Suggest string literals on IDE when typing the kind of conversation in <ConversationsSelect include> (#145)
  • Fix typo in README.md (#146 by @nicosachse)

Removed

  • Deprecated features in v1: JSXSlack.legacyParser() and jsxslack.fragment

Deprecated

  • jsxslack.raw template literal tag (It has become just an alias to jsxslack in v2)
jsx-slack - v1.7.0

Published by yhatt over 4 years ago

Added

  • style prop for <Confirm> composition object component (#114, #139)
  • <Button> inherits its style to assigned confirm composition object if <Confirm> has not defined style (#139)

Changed

  • All props of <Confirm> component have made optional (#138, #139)
  • Upgrade dependent packages to the latest version (#137, #140)
jsx-slack - v1.6.0

Published by yhatt over 4 years ago

Added

  • responseUrlEnabled property for modal's input component to <ConversationsSelect> and <ChannelsSelect> (#134, #135)
  • Experimental filter properties to <ConversationsSelect>: include, excludeExternalSharedChannels, and excludeBotUsers (#133, #136)
jsx-slack - v1.5.1

Published by yhatt over 4 years ago

Added

  • value attribute for <li> element (#130)

Fixed

  • Fix mention detection to match to longer Slack ID (#129)

Changed

  • Upgrade deep dependencies (#131)
jsx-slack - v1.5.0

Published by yhatt over 4 years ago

Changed

  • Improve escaping special characters to keep original character as possible (#124, #125)
  • Make JSX element for passing to Slack API serializable to JSON directly (#126)
  • jsxslack template literal tag now returns raw JSX element, or JSON if serializable (#127)

Added

  • jsxslack.raw template literal tag to generate JSX element always (#127)

Deprecated

  • Confusable jsxslack.fragment template literal tag has deprecated (Use jsxslack or jsxslack.raw instead) (#127)
jsx-slack - v1.4.0

Published by yhatt over 4 years ago

Added

  • Support type attribute for <ol> element (#117)

Changed

  • Allow text formatting through mrkdwn and HTML-like elements in <RadioButton> (#119, #122)
  • Change spaces for indenting lists into unicode spaces that were based on measured width in Slack's font (#117)
  • Upgrade development Node and dependent packages to the latest version (#123)

Fixed

  • Prevent over-escaping for link and time formatting (#118, #120)

Deprecated

  • Mark the legacy parser as deprecated (#121)
Package Rankings
Top 3.7% on Npmjs.org
Top 6.67% on Proxy.golang.org
Badges
Extracted from project README
CircleCI Codecov npm LICENSE