Skip to content

Latest commit

 

History

History
823 lines (463 loc) · 34.7 KB

CHANGELOG.md

File metadata and controls

823 lines (463 loc) · 34.7 KB

Change Log

[Unreleased]

Fixed

  • JSXSlackTemplateTag type now accepts pure readonly string array (#312)

Changed

  • Upgrade Node.js and dependent packages (#313)

v6.1.1 - 2023-12-14

Fixed

v6.1.0 - 2023-12-14

Added

Changed

  • Upgrade Node.js and dependent packages (#303)

Fixed

  • Avoid using node_modules directory for pre-bundled external modules in ESM output (#308 by @nihalgonsalves)

Removed

  • Test against Node.js 14 (#303)

v6.0.0 - 2023-02-22

Breaking

  • URLs in <a> tags have no longer been encoded by encodeURI() implicitly, excluding some characters that have conflicted with Slack's mrkdwn format (#288, #289 by @nholden)

For keeping to get the compatible output with v5, wrap the value of href attribute with encodeURI() explicitly.

 <Mrkdwn>
-  <a href={'https://example.com/?regex=<([^/]+?)>'}>Link</a>
+  <a href={encodeURI('https://example.com/?regex=<([^/]+?)>')}>Link</a>
 </Mrkdwn>

Changed

Removed

  • Removed deprecated types: VoidFunctionComponent, VFC, JSXSlack.FunctionalComponent, JSXSlack.VoidFunctionalComponent, and JSXSlack.Props (#293)

v5.3.1 - 2023-02-19

Fixed

  • Define types field of conditional exports (#290 by @odanado)

Changed

  • Upgrade Node.js and dependent packages (#291)

v5.3.0 - 2022-12-11

Added

  • Add description prop support to <Option> component (#284, #285)

v5.2.1 - 2022-11-23

Fixed

  • Improve compatibility with npm support for Deno (#283)

v5.2.0 - 2022-10-29

Added

Changed

  • Upgrade dependent packages to the latest version (#281)

v5.1.0 - 2022-07-16

Added

Fixed

  • Make stable documentation anchor links (#274)

v5.0.0 - 2022-06-19

Breaking

  • Dropped EoL Node.js 12 support (#271)

  • Removed implicit children prop from FunctionComponent to make compatible types with React 18 (Use PropsWithChildren<P> to include children prop) (#270)

    -JSXSlack.FunctionComponent<P>
    +JSXSlack.FunctionComponent<JSXSlack.PropsWithChildren<P>>
    -JSXSlack.FunctionComponent
    +JSXSlack.FunctionComponent<JSXSlack.PropsWithChildren<{}>>

Deprecated

  • VoidFunctionComponent, VFC, FunctionalComponent, VoidFunctionalComponent, and Props type (#270)

    Depreacted Replace to
    VoidFunctionComponent / VFC FunctionComponent / FC
    FunctionalComponent FunctionComponent / FC
    VoidFunctionalComponent FunctionComponent / FC
    Props<P> P

Changed

  • Upgrade Node and dependent packages to the latest version (#271)

v4.6.1 - 2022-03-28

Fixed

  • Export Fragment in JSX runtime to match to React's runtime (#267, #269)

Changed

  • Upgrade development Node and dependent packages to the latest version (#268)

v4.6.0 - 2022-02-01

Added

  • accessibilityLabel / aria-label prop for <Button> component (#262, #265)

Changed

  • Upgrade dependent packages to the latest version (#263)
  • Make build size of JSX runtime smaller (#264)

v4.5.4 - 2022-01-02

Fixed

  • Fix esm.sh resolution error by adding JSX runtimes with .mjs extension (#260)

v4.5.3 - 2021-12-28

Fixed

  • Fix TypeError while rendering lists and hyperlinks with JSX runtime (#258, #259)

v4.5.2 - 2021-12-18

Added

  • Add documentation of Deno import maps (#257)

Security

  • CVE-2021-43843: Prevent catastrophic backtracking in blockquote escape replacers (GHSA-hp68-xhvj-x6j6)

v4.5.1 - 2021-12-17

Security

v4.5.0 - 2021-12-02

Added

  • autoFocus prop for supported interactive elements (#253, #254)
  • Guide for setting up jsx-slack in Deno (Slack CLI) and esbuild (#245, #252)

Changed

  • Upgrade dependent packages to the latest version (#255)

v4.4.3 - 2021-11-18

Fixed

  • Fix Deno's type error by adding manual type assertion for <Blocks> (#245, #251)

v4.4.2 - 2021-11-17

Fixed

  • Fix internal type of <Blocks> for making better type support for ESM CDN (#245, #250)

v4.4.1 - 2021-11-17

Fixed

  • Avoid using namespace alias and use isomorphic namespace in JSX runtime (#249)

v4.4.0 - 2021-11-17

Removed

  • Direct dependencies to hast-util-to-mdast and he (#247)

Changed

  • Upgrade development Node version to v16 LTS (#246)
  • Upgrade dependent packages to the latest version (#246)
  • Setup esbuild transpile and prebundling (#247)

v4.3.0 - 2021-06-25

Added

Fixed

  • Broken JSDoc links in some IDEs (#235)

Changed

  • Upgrade dependent packages to the latest version (#236)

v4.2.1 - 2021-06-18

Fixed

  • Fixed resolution error when using JSX runtime script through ES modules (#231, #232)

v4.2.0 - 2021-06-16

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)

v4.1.0 - 2021-06-14

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)

v4.0.0 - 2021-04-25

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)

v3.0.0 - 2021-02-25

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

v2.6.0 - 2020-10-20

Added

Fixed

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

Changed

  • Upgrade dependent packages to the latest version (#208)

v2.5.1 - 2020-10-08

Added

Fixed

  • Update demo schema for dispatchAction prop (#201)

v2.5.0 - 2020-10-07

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

v2.4.0 - 2020-07-30

Added

Fixed

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

v2.3.0 - 2020-07-22

Added

Changed

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

v2.2.1 - 2020-07-17

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)

v2.2.0 - 2020-05-21

Added

Changed

  • Upgrade dependent packages to the latest version (#166)

v2.1.0 - 2020-05-01

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

v2.0.0 - 2020-04-23

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

▶︎ See highlight of v2 updates

  • 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 @BLNCinema)

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)

v1.7.0 - 2020-04-07

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)

v1.6.0 - 2020-03-20

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)

v1.5.1 - 2020-03-16

Added

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

Fixed

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

Changed

  • Upgrade deep dependencies (#131)

v1.5.0 - 2020-03-12

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)

v1.4.0 - 2020-03-06

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)

v1.3.1 - 2020-02-14

Fixed

  • Fix regression about not rendered special spaces around the content (#113)

v1.3.0 - 2020-02-14

Changed

Added

v1.2.0 - 2020-02-10

Added

Changed

  • Upgrade dependent packages to the latest version (#107)
  • Upgrade development Node to 12.15.0

v1.1.0 - 2020-01-20

Added

Changed

  • Mark <Home> container as stable (#105)

v1.0.0 - 2020-01-10

Breaking

Added

Fixed

  • Prevent over-escaping in valid emoji shorthand (#98, #101)

Changed

  • Upgrade dependent packages to the latest version (#92, #104)
  • Upgrade development Node to 12.14.1 (#104)

Removed

  • Remove deprecated dialog support (#84, #99)
  • Get rid of lodash.flattendeep dependency (#102)

v0.12.0 - 2019-11-22

Added

  • Radio buttons for modal (#88, #91)
    • <RadioButtonGroup> now can use in <Modal> container and acts as input component for modal

Changed

  • Upgrade dependent packages to the latest version (#90)

v0.11.1 - 2019-11-13

Fixed

  • Don't throw error even if <Overflow> has only one <OverflowItem> (#85, #86)
  • Fix 413 error from Block Kit Builder when translated huge JSON on REPL demo (#82)
  • Improve internal type definitions for overloaded props (#83)

Changed

  • Upgrade dependent packages to the latest version (#87)

v0.11.0 - 2019-10-24

Added

Changed

  • Upgrade Node for development to v12 LTS (#79)

Fixed

  • Throw an error when using <File> in <Modal> (#76)
  • REPL demo can transfer the complete modal JSON to Block Kit Builder (#77)

Deprecated

  • Output warning about deprecated dialog components (#72)

v0.10.2 - 2019-10-11

Fixed

  • Make interpolated fragments in template literal work correctly (#71)

v0.10.1 - 2019-10-10

Fixed

  • Fix invalid array children in template literal (#69)

Changed

  • Upgrade Node and dependent packages to the latest version (#70)

v0.10.0 - 2019-10-02

Added

  • Multi-select menus (#56, #58)
  • Modals support (#57)
    • <Modal> container component (#60)
    • <Input> layout block and component (#61)
    • <Textarea> component (#62)
    • Input-compatible props to select-like elements and <DatePicker> (#63)
    • Intrinsic HTML elements of input components (#65)
    • Add extra types for <Input> component (#66)
    • Update REPL demo to support Modals (#68)

Changed

  • Bump dependent packages to the latest version (#59)
  • Check invalid elements in <Blocks> and <Input> strictly (#64)
  • Split test cases for Block Kit components into multiple files (#66)
  • Organize documentation (#20, #67)

Deprecated

  • Mark <Dialog> as soft-deprecated in favor of Slack Modals (#60)

v0.9.2 - 2019-08-29

Fixed

  • Nested fragments fail (#53, #54)

Changed

  • Update dependent packages to the latest version (#52)

v0.9.1 - 2019-08-15

Fixed

  • Fix regression of not preserved <pre> whitespaces (#48, #49)

Changed

  • Update dependent packages to the latest version (#50)

v0.9.0 - 2019-08-15

Breaking

  • Disabled heuristic detection for HTML entities (Escaping works just as same as React JSX) (#33)
  • Some raw characters for mrkdwn link, <, >, and & will always escape to entities (#45)

Changed

  • Improve html entity decoding in JSX and template literal tag (#33, #45, #47)
  • Allow links in the inside of <code> and <pre> element (#16, #46)

v0.8.1 - 2019-08-07

Added

  • Better dialog support for jsxslack template literal (#42, #43)
  • Update REPL demo to add dialog example (#43)

Fixed

  • Coerce number-expected prop to integer (#44)

v0.8.0 - 2019-08-06

Added

Fixed

  • Don't prevent generating <SelectFragment> with no options (#41)

Changed

v0.7.0 - 2019-07-29

Added

  • <File> block component (#34, #35)
  • jsxslack.fragment template literal tag (#32)
  • Codecov integration and coverage badge (#36)

Changed

  • Update dependent packages to the latest version (#37)

v0.6.0 - 2019-07-20

Added

  • Convert <span> in <Context> into mrkdwn element (#26, #31)
  • <Fragment> built-in component (#29)

v0.5.1 - 2019-07-14

Added

  • Support mention to global user ID for Enterprise Grid (#25)

Changed

  • Update dependent packages to the latest version (#28)

v0.5.0 - 2019-06-28

Added

  • Support Node.js 12 (#23)

Changed

  • Make interchangeable with <Image> component and intrinsic <img> tag (#21)
  • Upgrade dependent packages to the latest version (#24)

Removed

  • Remove deprecated <Block> component (#22)

v0.4.3 - 2019-05-15

Fixed

  • Fix vanishing styled channel links and mentions (#15, #17)

Changed

  • Upgrade dependent packages to the latest version (#18)

v0.4.2 - 2019-04-13

Added

  • Add style prop for <Button> component (#13, #14)

v0.4.1 - 2019-03-13

Added

  • <Blocks> container component (#12)

Deprecated

  • Mark a confusable <Block> fragment component as deprecated in favor of added <Blocks> (#11, #12)

v0.4.0 - 2019-03-12

Added

  • Support nested list (#10)

v0.3.0 - 2019-03-11

Added

  • Add <SelectFragment> component (#9)

Changed

  • Right-aligned number in ordered list (#8)

v0.2.0 - 2019-03-07

Added

  • jsxslack template literal tag for using jsx-slack without transpiler, powered by htm (#6, #7)

Fixed

  • Improve README.md with some minor fixes (#4)
  • Revert ignored audit (#5)

v0.1.0 - 2019-03-01

  • Initial release.