Skip to content

v4.0.0

Compare
Choose a tag to compare
@mlaursen mlaursen released this 24 Nov 21:41
· 155 commits to main since this release

This release focused on updating the @react-md/transition package to no longer log errors in React.StrictMode because react-ransition-group was using ReactDOM.findDOMNode to handle transitions. All react-md packages will no longer use react-transition-group since all that functionality has been built into @react-md/transition with a slightly different API.

This release has also included my first attempt at automating upgrading to new major releases by introducing a new @react-md/codemod package that is similar to the react-codemod package. You can automate some of this release by running:

npx @react-md/codemod v3-to-v4/preset

Since I am still learning how to use jscodeshift, it will not be able to migrate everything but should still help with most changes.

You can check out the v4.0.0 and @react-md/codemod PRs for some additional information around these changes.

Bug Fixes

  • @react-md/menu: DropdownMenu and Menu portal by default (98a6a9f), closes #1264
  • @react-md/tooltip: cancel timer when element is clicked (5416554)
  • sass: Do not use legacy global functions (6159e16)

Features

  • Update to use new JSX Transform and latest eslint (8111cd3)
  • @react-md/portal: ConditionalPortal supports ReactNode children (c83d578)
  • @react-md/transition: No longer use findDOMNode for transitions (cb952da)
  • @react-md/typography: Renamed Text to Typography (30cf056)
  • @react-md/utils: Export additional positioning types (b50a04c)
  • codemod: Created a new @react-md/codemod package to help with new releases (41c1fa6)

Documentation

  • Hackily fix codesandbox.io not using sass resolutions in package.json (db22cde), closes #1261
  • @react-md/form: Updated hook overrides so documentation appears correctly (436fbff)
  • react-md.dev: Enable rust compiler by removing custom babelrc (796efd0)
  • react-md.dev: Fallback code language to markup instead of none (0efaf9b)
  • react-md.dev: Fix alert sandboxes (8f19297)
  • react-md.dev: Removed SwipeableTabs demo since it didn't really work (2d79f93)
  • react-md.dev: Separate Code and CodeBlock into separate folders (4c492b3)
  • react-md.dev: Try to allow custom Code/CodeBlock in sandboxes (5d494bf)
  • react-md.dev: update code components to use css modules (9bdf6ba)
  • react-md.dev: Use react-marked-renderer for markdown stuffs (93ebaa4)

Other Internal Changes

  • always skip lib check (229cef1)
  • Re-ran prettier (9632d82)
  • update workflows to include node 16 (f756b92)
  • updated branches for build, lint, and test (b5eeae9)
  • Updated remaining docs and tests for react-router-dom v6 (e012ef9)
  • @react-md/dev-utils: Added error message for combining styles (aa5ecfd)
  • @react-md/dev-utils: match quotation marks for sass files (98ffe40)
  • @react-md/dev-utils: Update sassdoc to not through uncaught exceptions (8bdf532)
  • @react-md/dev-utils: Update release for new major versions and legacy docs (86c5c02)
  • @react-md/format: ran prettier after upgrading to v2.4.0 (06110af)
  • codemod: Added comment about ignoring CodeQL alert (631d56c)
  • examples: enable strict mode by default for nextjs-typescript (83e4c44)
  • examples: added lint command to nextjs examples (788a8b8)
  • examples: bump nextjs examples from v11.1.2 to v12.0.2 (be45277)
  • examples: fixed prefers-color-scheme in examples (f799d3a)
  • examples: Updated create-react-app example to use react-router-dom v6 (3c4d1ea)
  • examples: Updated create-react-app-typescript example to use react-router-dom v6 (ae469ef)
  • examples: Updated examples to no longer import React (c0b8cb5)
  • react-md: Remove prop-types package and usage (2637a6f)
  • react-md.dev: Enable React.StrictMode (219937e)
  • react-md.dev: Updated some transition documentation (44bfa20)
  • stylelint: Updated to use stylelint (22d1598)
  • test: Update coverage for watch mode (74cee51)
  • typescript: Stopped using deprecated HTMLTable(Data|Header)CellElement (23ba342)

Breaking Changes

  • Minimum React version is now 16.14 instead of 16.8
  • @react-md/menu: The DropdownMenu and Menu components portal by
    default. This should really only affect snapshot tests
  • @react-md/typography: The Text component has been renamed to Typography to
    help with auto-imports conflicting with the Text element that exists in
    lib.d.ts
  • react-md: There will no longer be run-time prop validation with
    the prop-types package.

Library Size Changes

yarn dev-utils libsize

The gzipped UMD bundle sizes are:
 - dist/umd/react-md.production.min.js 85.92 kB (- 83 B)
 - dist/umd/react-md-with-font-icons.production.min.js 111.04 kB (+ 1 B)
 - dist/umd/react-md-with-svg-icons.production.min.js 178.53 kB (+ 170 B)

The min and max gzipped CSS bundle sizes are:
 - themes/react-md.grey-red-700-light.min.css 18.01 kB (+ 38 B)
 - themes/react-md.lime-teal-200-dark.min.css 18.08 kB (+ 38 B)