Whats New

  • Updated the autoComplete prop type to be PropTypes.string for the Autocomplete component. #703
  • Updated the Tabs component to be able to fix the selected tab indicator's height to match the value defined in SCSS. #764
  • Fixed Tooltips not disappearing when the user blurs a tooltip target. (@ryanmurakami - #814)
  • Updated the DialogContainer component to conditionally focus the previous element in the DOM once the dialog is closed. (@lawnboyy - #813)
  • Updated the Snackbar to be able to auto focus the Snackbar action. (@kldavis4 - #810)

Note: this is disabled by default so that upgrading does not add new functionality and focus behavior. Please enable the autoFocusAction prop once you have upgraded to enable this new feature.

  • Updated the DialogContainer component so that the dialog can be closed with the escape key when the modal prop is enabled. #803
  • Updated all component prop-types to not trigger a warning when the component was created with React.forwardRef. (@luisrudge - #809)
  • Reverted the InkContainer workaround for Preact since there were additional unwanted side-effects. #801
  • Updated the DatePicker for more flexibility at rendering dates. (@madc0der - #800)
  • Updated the InkContainer to not break in Preact. #788
  • Updated the TableRow children PropType validation to be a bit more accurate. 6d5f8c2
  • Fixed the DatePicker dates not having type="button". (@jakerichan - #796)
  • Updated the Autocomplete to allow showing results when the data is considered unfiltered. (@Xuecnahc - #790)
  • Added better accessibility for the Switch component. (@ecuageo - #794)
  • Fixed the TextField Typescript definitions to correctly allow the name prop. (@roderik - #795)
  • Added the capture prop to FileInput and FileUpload. #793
  • Fixed Dialog Typescript definitions for height and width to support strings. (@kirananto - #789)

This release added a new feature and an accessibility change.

  • Updated the ListItem to be able to have a right-aligned action button. (@Kaishiyoku - #766)
  • Improved some of the accessibility for the DatePicker. (@leahjlou - #779)
  • Fixed a small bug with dialogs trying to focus elements that are not focusable in IE11. (@alaney - #760)
  • Updated dialogs so that the blurry text rendering can be fixed by enabling a new Scss variable: $md-dialog-use-flex-positioning. You can read more about it here. #337, #599, and #696.
  • Updated password text fields so that setting the passwordIcon prop to null will remove the password toggle button. #738
  • Specified types directory for changes in Typescript 2.9. (@noseglid - #753)
  • Fixed SelectField to correctly allow float values instead of integers only. (@henry-young - #751)
  • Fixed a small bug in the FocusContainer that would consider a hidden input focusable which caused the FocusContainer to stop working. #749
  • Fixed the SelectionControlGroup to no longer append a checkbox group's value with a comma. #716
  • Correctly exported the TableFooter component for commonjs and modules. #747
  • Fixed the required attribute not being applied to TextFields. #741
  • Fixed the ListItemControl typescript definition. (@ripldev - #735)

Unfortunately I had to cut the scope of this release from what was originally targeted due to burn out and other things. I am going to be remaking my release schedule and planning to help alleviate this going forward and hopefully make bugs and features easier for contributors to pick up.

This release only contains 2 new features and a change for how the ES6 modules are compiled.

  • Updated the TimePicker to also toggle on selecting seconds for a time. (@abbiecat - #722)
    • You can check out the example here for some small updates.
    • This also updated the default styles of pickers to be a bit larger.
  • Updated the SelectionControlGroup component to allow custom control components to be rendered instead of only the SelectionControl component. (@bioslife - #725)
    • You can check out the example here for some more details.
  • Updated the ES6 modules export so that it correctly compiles to multiple files instead of a single UMD bundle. Unfortunately this did not seem to fix the code splitting bug as there are things I am doing incorrectly in the internal code and will have to be fixed at another time. 4015310, ac012b6 and #587

This release was a extremely delayed due to the attempted fix of DatePickers displaying incorrectly. This patch should fix the majority of the display errors, but please look over the tickets below for more information especially if you were using the timeZone prop before.

  • Fixed most of the DatePicker display errors. #680 and #634
  • Fixed the wrong height calculation for Tabs. #662
  • Fixed the TextField having the wrong styles on initial mount if using the resize prop. #667
  • Fixed the Slider crashing when using a label and enabling edit mode. #675
  • Fixed the DOM Exception for FileUpload when attempting to use the value prop. #676

    This also deprecates the value prop since it never actually worked or should be supported.

  • Fixed the Collapse prop type error when changing collapsed state. #672
  • Fixed the DialogContainer's invalid PropType warning when setting fullPage to false and providing a title. #700
  • Correctly exported the TableCardHeader Typescript definitions. (@Laurelin67 - #679)
  • Correctly exported the ResizeObserver Typescript definitions. (@domszyn - #703)
  • Fixed the injectInk HOC's focus function to work when the ink has been disabled. #666
  • Fixed SelectFields applying an undefined class name when active. #663
  • Reverted changes for attempting to fix the IE/Edge Dialog animation since it broke other stuff. #655 and #664
  • Fixed the SelectField onChange Typescript definition. (@matus1997 - #646)
  • Correctly exported the Tooltipped Typescript definitions. (@noseglid - #647)
  • Fixed the ExpansionList cloning a 0 instead of false into each ExpansionPanel. #645
  • Fixed context menus for elements that are "contenteditable". (@erkkaha - #656)
  • Fixed the DataTable with fixed headers and footers to display the header checkbox correctly. #657
  • Fixed Dialogs in IE11/Edge to no longer flash when appearing. #655
  • Fixed Dialogs immediately removing the keydown listener so pressing escape multiple times now works. #648
  • Added missing props to style the mini drawer and mini navigation list in the NavigationDrawer. #636
  • Added props to help style Tabs when not colored. #621
  • Fixed the line-height for md-body-1 and md-body-2. #622
  • Correctly added an export for the ResizeObserver for non-UMD builds. 99b688d
  • Added some missing Typescript definitions to the Drawer and NavigationDrawer. 55c3040
  • Added another fix for the Menu Typescript definitions. (@dave-hillier - #618)
  • Updated the Autocomplete Typescript definitions. (@arlyon - #638)
  • Added some more props to customize the ListItem. (@gamtiq - #620)
  • Added some more props to customize the SelectField (@gamtiq - #630)
  • Added another fix for the Dialog's autosizeContent infinitely toggling the max-height. 3e45390
  • Added an example for handling nested dialogs.
  • Fixed the invalid prop linking for the SelectField. #628
  • Fixed the onOkClick documentation for the EditDialogColumn. 8d50ccb
  • Updated the examples to correctly watch Sass files. #626
  • Another fix for the Dialog's autosizeContent so that it doesn't infinitely toggle the max-height. 2ccce1a
  • Fixed the Ink TransitionGroup issues when snapshot testing. #611
  • Fixed the EditDialogColumn TypeError when setting the inlineIcon to null. #612
  • Updated the Dialog's autosizeContent to work with some more use cases. 9573ef3

With the v1.2.7 release, I also finally documented the ResizeObserver component that has been exposed in the UMD build for awhile now. I also disabled the service workers to see if that stops the weird React error whenever I update the website and causes a blank page to appear. Finally, I should have fixed the pages animating in when coming from server side rendering. It should only animate when changing routes now.

  • Removed some Dialog code that shouldn't have been included. fb36c0e
  • Fixed a problem with editable Sliders using the wrong ref. 34d26de
  • Fixed MenuButton's not opening with a space keypress. #601
  • Fixed the overlay prop on Drawer and NavigationDrawer. #602
  • Fixed the DatePicker for timezone problems. (@hisapy - #605)
  • Exported the component interface Typescript definitions. (@noseglid - #606)
  • Fixed the EditDialogColumn controlled PropTypes warning. #604
  • Fixed the MenuButton not supplying event listeners to the surrounding DropdownMenu. #610
  • Fixed the weird TextField display bug in newer versions of Chrome. #565
  • Fixed the Sass variables that the icon's color is derived from. #609
  • Updated GridList to support false-ish children. e53e080
  • Fixed Grid and GridList not applying style. #596
  • Fixed Layovers that appear in centered dialogs. #580
  • Fixed TextField resizing for when icons are added or removed. d7b5cf0
  • Correctly passed disableScrollLocking for DatePicker and TimePicker. bc0423e
  • Fixed the React 15 Portal support. #589
  • Fixed the Slider step behavior where the min value is not zero. (@strickc - #585 and #588)
  • Updated the Drawer and NavigationDrawer to be able to apply manual zDepth. #590
  • Fixed the search functionality for: media queries, colors, themes, and typography. adb8bad
  • Correctly published to npm with the Typescript definition files.
  • Correctly exported the new Grid, Cell, and GridList for non-ES6 module imports. 27c86e8

This release was focused on making the entire react-md library smaller, adding easier imports, and adding React 16 support. If your bundler supports ES6 modules (webpack 3+), you can now do:

import { NavigationDrawer, ...OtherComponents } from 'react-md';
Js

without importing the entire library AND reducing the bundle size compared to:

import NavigationDrawer from 'react-md/lib/NavigationDrawers';
Js

The initial update changed production UMD build from 705kB to 361kB as well as changing the entire documentation server size from 8MB to 5.7MB, so it is a pretty nice difference. Check the changelog below for all the information.

  • Added ES6 module support and switch build from webpack to rollup. #566
  • Fully implemented React 16 support with React 15 fallback. #576
  • Updated components to no longer do this.setState in componentWillUpdate since React 16 no longer supports it. a82d314
  • Created three new components: Grid, Cell, and GridList to easily make grids. #573
    • Related to #507 and #472. This implemented a "container" system for Grids.
  • Update TableColumn so the sort icon can appear after the children. (@cpboone - #579)
  • Added a Version so that the current version of react-md can be determined easily. 32ecbc7
  • Fixed the order of the okProps and cancelProps on the EditDialogColumn. #581
  • Fixed the Typescript definitions for DataTable checkbox callbacks. (@domszyn - #575)
  • Removed the unneeded range prop type validation on sliders. #570
  • Updated tooltips to work better in IE11. #574
  • Fixed a Typescript definition for DatePicker. (@noseglid - #564)

This fixed some of the bad markdown linking in my documentation as well as including a few more date picker examples.

  • Fixed the Slider when its value is controlled. #561
  • Fixed the TimePicker when its value is controlled. #559
  • Added some additional styling props to the ListItem. (@gamtiq - #553)
  • Added ability to see additional days in the DatePicker. (@gamtiq - #557) and 8504b7a
  • Exposed additional props for the EditDialogColumn's ok and cancel buttons. 124272b
  • Correctly exported the Tooltipped component. e647877
  • Updated the SelectionControlGroup so that it is easier to apply icons through the entire list of controls. 883e6ee
  • Updated Buttons to correctly apply md-text when they do not have primary or secondary colors applied. 2250d91
  • Fixed the Layover.HorizontalAnchors.RIGHT not applying the correct styles. #540
  • Fixed a weird case where Dialogs can be stuck visible. #539
  • Exposed a lot more style and className props. f6fa91f
  • Exposed additional ways to style the LinearProgress. (@gamtiq - #550)
  • Updated the focusable attribute to be a string instead of a boolean on SVGIcon. 849021a
  • Updated the TextField resize ability to also account for icons. a20bab4, 58802eb, and 4a5a55c
  • Fixed the DataTable's Checkbox displaying weird if there is little content in a table. #549
  • Updated Collapse Typescript definition to have springConfig optional. (@noseglid - #534)
  • Updated DataTable Typescript definition to include fullWidth. (@noseglid - #548)

This is one of the other exciting things for me. With the release of 1.1.0, the documentation website has also been rewritten from the ground up for better SSR, response time, and a first pass at offline mode. List of new features/functionality:

  • Added a page about how to test along with react-md.
  • Added routing examples for the BottomNavigation, Drawer, and NavigationDrawer components that show how you can work in with react-router's Link component.
  • It is now possible to link directly to an example, a component's prop type section, and a specific component's prop. This is probably more for me than anything else.
  • SassDoc will now redirect correctly when clicking on any Sass variable/mixin/function/placeholder in the "Requires", "Used By", and "See" sections.
  • When using the search functionality on the website, Sass variables will now have their values displayed in the autocomplete list.
  • It is now possible to search for specific examples from the main search bar.
  • Fixed FocusContainers so that they can trap focus with only one focusable element. e04ec5c
  • Added a small fix so that TextFields can display icons a bit nicer when block-ed. 1b9d911
  • Updated Dialogs so that the content will automatically be scrollable when there is a lot of content. #431
  • Added a small fix so that Layovers can position better in Dialogs. fecd695
  • Added a missing Typescript prop to the Autocomplete. (@noseglid - #532)
  • Updated SelectionControl so that one of label, aria-label, or aria-labelledby is required instead of only label or aria-label. da5dd07
  • Dialog actions being stacked can be fully controlled now. d4e1eea
  • Using a SelectionControlGroup of radio no longer requires one of the radio to be checked by default. #535
  • Updated the SelectField so that it can disable some of the menuItems and render any element. #536
    • Also updated the Menu so that clicking on a disabled ListItem will no longer close the menu.
    • Also fixed the undefined lineDirection for SelectFields
    • Also updated the tab-focus logic for SelectFields
    • Also updated keyboard matching logic for SelectFields
  • Added a little bit better Android support for Layovers. #534
  • Updated Layover to conditionally reposition on window resize instead of only closing on window resize. e313ef4
  • Fixed the Layover positions in DataTables. #527
  • Updated SelectionControl and Checkbox to allow null icons. #528
  • Fixed the Layover not apply the correct styles when simplified is enabled. #529
  • Fixed the Menu default export Typescript definition. #526
  • Fixed lists that appear as a child of a toolbar's title. #375
  • Fixed the selected state for DataTables. #530
  • Fixed the DataTable's 'hover color being incorrectly applied on mobile devices. #531

This is a couple more Typescript bugfixes.

  • Fixed the Layover positions and Drawer drawer type Typescript definitions. (@noseglid - #520)
  • Added colSpan and rowSpan to the TableColumn for Typescript definitions. (@domszyn - #523)
  • Fixed the MenuButton and MenuButtonColumn Typescript definitions to include tooltip and ink props. c7e37f0
  • Updated all components for import { Component } from 'react-md/lib/Components' syntax. #524
  • Fixed the ListItem not applying the correct styles when using expanderLeft. #521
  • Exposed additional style props for FileInput and FileUpload. 9d2e3a3
  • Updated NavigationDrawer to conditionally use % instead of vh. 2704d15
  • Fixed the Subheader to correctly apply md-text--secondary. 7fb0d98
  • Updated TextField to apply undefined into the leftIcon or rightIcon instead of a boolean when the icons are not stateful. f1a720b

This is a couple of Typescript bugfixes thanks to @stickfigure and @noseglid.

  • Updated components that use the component prop to allow any key until it gets refactored away. 1c5b17b
  • Added another attempt at fixing Typescript definitions for static component enums. d8247db
  • Fixed the Typescript definitions for injectInk and injectTooltip. 7b50871
  • Fixed the defaultMedia Typescript definition for the Drawer component. (@noseglid - #513)
  • Fixed the calendarTitleFormat Typescript definition. (@noseglid - #511)
  • Fixed the Drawer and NavigationDrawer to have constantType and constantDrawerType Typescript definitions. 065d84b
  • Fixed the LinearProgress query Typescript definition. 065d84b
  • Fixed the SelectFieldColumn's id Typescript definition. 065d84b
  • Fixed the TextField Typescript definition for onPaste. 065d84b
  • Updated the TablePagination with some more configuration props. 0cb5aae
  • Fixed an Autocomplete bug with opening the menu incorrectly. a42f8b1

This release added Typescript support. It is not completely perfect yet, but it seems to be in a decent implementation so far. Many thanks to the people who have helped me learn the basics for Typescript definitions and contributing to fix the missing definitions. (@peteboothroyd and @mctep)

You can see the milestone for this release to see what went in it. There are also some undocumented changes that should be covered in the upgrade guide.

A bit too much went into this minor release, and I am planning on doing smaller releases from now on. This one was a bit of a disaster to develop.

Just in case you don't read the upgrade guide, your application will break if you were using the UMD build for dialogs.

// Before
import { Dialog } from 'react-md';
const { Dialog } = window.ReactMD; // UMD

// After
import { DialogContainer as Dialog } from 'react-md';
const { DialogContainer: Dialog } = window.ReactMD; // UMD
Js

If you were using the callbacks for when a row or checkbox was clicked, the number will probably be off now. Please see the issue for more details.

In addition, the styles for plain data tables have been simplified which might cause some display issues. 2cc40cd

If you created a custom version of a Menu, you need to make sure that one of the children is one of the following: .md-text-field-container,button,*[role="button"],*[role="listbox"] otherwise there will be an error.

  • Fixed the Autocomplete no longer firing click events on the list items. #475
  • Updated the UMD build to correctly include the MenuButton. #482
  • Fixed an invalid PropType warning for Date and Time pickers. #490
  • Added a little bit more support for tabs with dynamic height changes. #487
  • Added support for semi-bold fonts. #468
  • Fixed the Autocomplete firing the onAutocomplete callback twice when using the keyboard to select an item. #466
  • Fixed a PropType warning when using the Dialog and one of the actions already had a key. #465
  • Fixed the SelectField and TextField from not floating the label when a value (or label) had a value of 0. #461 and #460
  • Fixed a weird infinite loop in the FocusContainer when some of the children are the AccessibleFakeButton and the user pressed shift+tab. #458
  • Updated the multiline TextField so that it can be correctly snapshotted. #457
  • Fixed the NavigationDrawer incorrectly hiding a "permanent" drawer type when defaultVisible={false}. #426
  • Fixed some invalid checksum when Server Side Rendering the NavigationDrawer. #420

    this also removed some unneeded transition class names from the Drawer when the drawer was "mini" or "permanent".

  • Updated the Drawer and NavigationDrawer components to provide props to style the overlay that gets created. #389

This patch was mostly about fixing components that needed to be resized after a container height/width update instead of just a window resize event. In addition, there have been some mobile device performance and behavior changes. Components that manually added touch events now use passive events when possible and the user can focus a text field and scroll the page without automatically hiding the keyboard like a native input element.

  • Fixed the weird page scroll behavior for dialogs when the user closed the dialog by clicking the overlay. #367
  • Updated the ListItem so that you can provide props to the surrounding li node. #439
  • Fixed a weird mobile safari but about using a virtualization library with any form input from react-md. #442
  • Added passive event listeners. #382
  • Updated the Autocomplete to no longer require an automatic TextField re-focus after a suggestion has been selected. #428
  • Fixed the TextField placeholder to correctly gain the disabled color. #447
  • Fixed the focus behavior of TextFields on mobile devices. #434
  • Fixed the unneeded PropType warning when a "controlled" TextField is disabled. #432
  • Fixed the PropType warning for Tabs. #440
  • Fixed the multiline TextField requiring a flex container to display correctly. It will now display correctly if it is in just a display: block or whatever. #365
  • Fixed the TimePicker changing days when AM/PM was toggled. #446
  • Fixed the TimePicker to remember the last selected time better. #438
  • Fixed the TimePicker's ability to calculate time. #359
  • Fixed multiple components that manually calculate size for container resize events instead of just window resize events.
    • ExpansionPanels and Tabs #448
    • Multiline TextFields #365
    • TablePagination #415
  • Updated the slider to no longer call onChange or onDragChange when dragging and the value or distance have not been updated. d588fb4
  • Fixed a small bug with my handleKeyboardAccessibility so that spacebar didn't work in autocompletes. b13f316
  • Fixed a keyboard accessibility problem with SelectionControlGroup. eb6629d
  • Fixed an error where rendering the Autocomplete in a ListItem threw an error. #412
  • Updated the default z-index for the Snackbar so that it appears over the mini Drawer. #410
  • Fixed the DatePicker so that it can accept a value of null and the empty string ("").
  • Fixed the cell offset calculations. #401
  • Fixed non-contained menus. #391
  • Fixed the onClick prop for SelectionControl. #390
  • Fixed the Snackbar not working as intended when the action has an onClick function. #385
  • Fixed the slider displaying the wrong value while sliding with touch or mouse. #379
  • Updated .npmignore to stop include the jest-cache with the published code. #403
  • Small typo fix. #400

General mobile Safari bugfixes and other small changes.

  • Fixed the "stiffness" of scrolling in mobile Safari. #383
  • Fixed the weird bug of requiring two taps in mobile Safari to open a SelectField. #381
  • Updated the Slider to automatically set the defaultValue to the provided min value and fixed the discrete slider's visibility issue. #379
  • Correctly added the name attribute to the FileInput and FileUpload components. #378
  • Fixed the autocomplete not showing suggestions after being autocompleted and getting data via Ajax. #374
  • Fixed the TablePagination's start value to only update when the page prop updates (if defined). #372
  • Fixed the TextFields not blurring correctly when a touch device scrolls the page after focusing the text field. #366
  • Updated the ListItem to allow the nestedItems to appear above the text instead of only below. #380

This patch is mostly for keyboard accessibility updates so that the custom components interact the same way as native form inputs.

  • Updated the menu component so that it correctly closes when a list item is "clicked" with spacebar or enter. #360
  • Fixed the keyboard accessibility for selection controls, pickers, and select field. #371
    • switch, radio, and checkbox will no longer be toggle-able with the enter key to emulate the native checkbox and radio
    • select fields, date pickers, and time pickers can only be opened by spacebar. The enter key will attempt to submit a form instead.
    • only the currently checked radio button will be tabbable in the SelectionControlGroup. Other options can be be selected by pressing the up, down, right, or left arrow keys like the native radio.
    • correctly updated the role for the SelectField to be a "listbox"
  • Fixed the readOnly state for the date and time pickers #371
  • Fixed the text field display error in Firefox. #368
  • Fixed the TablePagination labels when fully controlled. #369
  • Added a final fallback for nested dialogs to render inline if rendered inside of pure components. #229
  • Fixed the scroll locking of dialogs. #361

This patch was about removing the prop type warnings from the new React version and other small bugs.

  • Migrate React.PropTypes to prop-types. #325
  • Allow boolean values in selection controls #350
  • Fixed the picker display bug. #354
  • Fixed the SelectField error state bug. #353
  • Fixed the dialog mounting animation bug. #348
  • Allow a multiline textfield to grow from 1 row to multiple. #347
  • Fixed the AccessibleFakeButton to click when spacebar is pressed. #346

Added a new place to showcase apps that are using react-md. You can view them here.

This release is mostly about fixing some of the cross-browser support and weird issues in mobile safari. In addition, an examples folder has been added to hopefully help newer people get a react-md project started up.

In addition, I decided to move the ticket from v1.1.0 to v1.0.12 about the annoying delay when a menu/drawer/toast is closed by a click action.

  • Fixed the annoying delay on multiple components. #210
  • Fixed the DatePicker's next/previous month logic. #315
  • Fixed the CardActions not centering correctly. #316
  • Half-ly fixed the hidden content in full page dialogs. #320
  • Updated the TablePagination's rowsPerPage logic to reset page and start when it has been changed. #322
  • Fixed the Slider's bullet position when in a text-align: center container. #323
  • Updated props from string to node for react-intl support. #327
  • Fixed the Ajax Autocomplete flashing bug. #330
  • Fixed the Dialog's page layout breaking when it appears. #333
  • Updated the TableCheckbox to appear in a th component when in the table header. #334
  • Fixed some of the styles for better IE 11 support. #339
  • Fixed the mobile safari click event delegation bug that prevented Menus and other components to be closed when an area outside was clicked. #340
  • Fixed the SelectField's label disappearing when when the menuItems are defined in the render and one of its parents re-renders (... take 2 :( ). #300
  • Fixed the tooltip's unmounting errors. ba8e734
  • Fixed the SelectionControlGroup disabling persisting the disabled color to the checkboxes/radios. #308
  • Fixed the checkboxes for DataTables when the rows are dynamic. #297
  • Fixed the snackbar's transition bug. #311

The v1.0.9 tarball was published incorrectly through yarn, and was invalid. Republished correctly with npm.

This was really another patch for drawers.

  • Fixed the Drawer automatically opening when the type is set to TEMPORARY. #291
  • Fixed the DatePicker's min/max date validation error. #293
  • Fixed the Drawer's overlay prop not working on mobile and tablet devices. #298
  • Fixed the Drawer's overlay being visible on initial page load when the type is TEMPORARY on desktop screens. #299
  • Fixed the SelectField's label disappearing when when the menuItems are defined in the render and one of its parents re-renders. #300
  • My initial attempt at the defaultVisible prop not working correctly was incorrect. Updated the behavior as mentioned in the new ticket. #288
  • Fixed the Drawer's defaultVisible prop not working entirely correctly. [iessues-286]
  • Fixed the DateTimeFormat fake mock. #285
  • Fixed the Date/Time pickers to not open when disabled. #281
  • Fixed the prop warning for MenuButton and passed correct props to Menu. #278
  • Fixed the Menu attempting to setState after it had unmounted. #268
  • Fixed DatePicker's calendar Date when controlled. #245
  • Added controlled warnings to pickers. d46cf4c
  • Allowed non-material design colors to compile without errors. #244
  • FontIcon force size fix. #221
  • Allowed a TableRow to only have a single column.
  • Fixed the DatePicker's min/max date validator. 53130fa
  • Fixed the FocusContainer's window focus bug. 1fe1b9b
    • Basically using element.contains(window) is invalid and throws a 'Node' does not have contains error.

  • Automated the nested dialog display error until Portals are updated. #229
  • Fixed the TextField blocked icon positioning. 9115e23
  • Passed text-field related props from pickers. 5daabbb
  • Fixed the TablePagination's onPagination callback to be more accurate. 93d932f
  • Fixed the TableRows's onCheckboxClick callback to match documentation. 69fbdd8

I had a moment and accidentally published 1.0.4 with the same code as 1.0.3

Minor bugfixes.

  • Patched the line-height for DataTables so that the columns will be centered.
  • Correctly updated the peer-dependencies of react(-\w+)* to be 15.3.0.
  • Fixed the full-page dialog positioning.

Minor bugfixes.

  • Fixed active label for SelectField. #235
  • Components that use the Portal component pass the lastChild and renderNode props correctly. #234

Minor bugfixes.

  • Fixed PropTypes of avatar to allow PropTypes.node instead of string only. #198
  • Fixed the accidental form submission if selecting an item from an autocomplete by using the enter key press in a form. cf57610
  • Fixed Slider number alidation for floats. #185
  • Fixed the issue where the Switch's onChange prop fires twice when clicking/touching the thumb. #182
  • Fixed the styling issue for password text fields that have a message with the field. #192
  • Fixed the SelectField to allow a 0 based option value. #214

This is the first prod-ready release of react-md. The library still isn't completely perfect, but I think it is close enough.

  • Opt-in mixin component styles (or @include react-md-everything;)
  • BEM Styles
  • Grid System!
  • Not fully backwards compatible.
  • Accessibility focused.
  • Fixed the background color bug. 49ce071
  • Fixed the pre-compiled bundles to actually reflect what my documentation said. The pre-compiled bundles are now formatted as PRIMARY-COLOR_SECONDARY_COLOR.min.css instead of PRIMARY-COLOR-SECONDARY-COLOR.MIN.CSS.
  • Created a mixin to create color class names. 14e19f3
  • Fixed the injectINK HOC for keyboard clicks. 59dff18
  • FileInput/FileUpload bugfixes. 2c4e111
  • Updated the password text fields' styles for keyboard accessibility. 807aa2a
  • Updated the TextFieldMessage to not shrink when in a block text field.
  • Updated EditDialogColumn for accessibility. 217c425
  • Updated typography to be able to opt out of utility class names. 5c5eaa2
  • Updated SelectField keyboard accessibility. ffe270b
  • Updated tooltips to no longer rotate along with the .md-collapsers.
  • Updated tooltips to be created through react components instead of my weird decision of creating it manually myself. 75eb2e0
  • Rewrote SelectFieldColumn. #170
  • Added the getCurrentMedia static method to the NavigationDrawer as well.
  • Updated permanent drawers to no longer use the Portal.
  • Updated the Dialog component to be able to be closed by pressing the escape key (only if not a modal). b742ed5
  • Updated the Date and Time pickers to have some keyboard accessibility. This still isn't the ideal solution and will be changed in a future release (maybe?) to actually allow inline date and time selection that will appear in dropdowns. #173
  • Updated FocusContainer to be able to enable/disable the focus containment after being fully mounted.

SassDoc pages are now searchable and filterable while on that page itself. I found that using the main search to attempt to keep finding variables on the same page was a bit annoying. The SassDoc page can now be quick navigated by clicking the visible FAB and clicking any items in the new Drawer.

This release fixed up a couple more bugs (listed below) and now the main focus will be figuring out if there are any production-breaking bugs remaining.

  • Fixed the Avatar colors changing. #161
  • Updated EditDialogColumn to interact correctly with keyboard focus and touch devices
  • Fixed the Dialog to remove the prevent scroll className when unmounting
  • Updated the Drawer.getCurrentMedia function to use the Drawer.defaultProps as the default value of the props parameter.
  • Updated the Drawer to allow for a persistent temporary Drawer on desktop devices.
  • Fixed the AccessibleFakeButton to no longer use the space key as an enter keypress.
  • Fixed a weird warning on inks if the waitForInkTransition prop was enabled and the click event eventually unmounted the inked component.
  • Updated the Menu to correctly remove the window click event on unmount.
  • Added correct deprecation notices to the SelectField and fixed the keyboard accessibility when using a SelectField.Positions.BELOW position.
  • Fixed the duplication of the md-background--primary-hover and md-background--secondary-hover.
  • Fixed the duplication of md-background--primary-hover and renamed the second one to md-background--secondary-hover.
  • Minor CSS Fixes

With the upcoming v1.0.0 release, the website has been remade to allow quicker navigation, searching, and finding related documentation.

  • A Theme Builder has also been added that allows you to pick and choose a theme on your website.
  • Examples and Prop Types have been separated into different tabs to help separate content a bit more.
  • Most SassDoc can be viewed with the related component in a new SassDoc tab.
  • The main search now includes sass placeholders, variables, functions, and mixins that will either redirect you to the correct SassDoc tab, or to the SassDoc Page.

The main focus of this release was adding a JumpToContent link for the NavigationDrawer for keyboard accessibility. When you use the NavigationDrawer (or specifically use the JumpToContentLink component), the first tab press on the page will show a link that will allow a user to focus the main content of the page instead of having to go through every navigation item.

  • Fixed some color variables that I had mistyped...
  • Fixed the spelling of discreet -> discrete
  • Fixed the Sliders when using touch devices. #144
  • Fixed the YearPicker after the name change from initialYearsDisplayed to yearsDisplayed. #165
  • Added onTabFocus and tabbedClassName to the AccessibleFakeButton. #160

This release was focused on having a more consistent naming convention. Boolean props are now adjective instead of isAdjective and any prop that was initiallyProp was renamed defaultProp to match how React handles the base html tag defaults. This also included some small bugfixes as well as updating the Portal component to stop using the undocumented CSSPropertyOperations since it crashed in React 15.4.0.

The SelectField was also updated to no longer use the TextField component internally and behave more like the html select. #144

Fixed the UMD build so that the default was not needed from the browser for ReactMD.COMPONENT.

I found out I messed up the naming with a . instead of - so the future releases are messed up. Whoops. But this change basically added the old v0.3.7 styles back into the dist folder for UMD.

Whew. This was a big change. This was a complete rewrite from nested CSS priority to using my first attempt at BEM (so it definitely isn't perfect). The Sass also changed to an opt-in mixin framework. Styles will no longer be included when importing the scss files. The styles can be created by using react-md-everything or react-md-COMPONENTs. This allows for access to variables by one import instead of having to specify multiple. Also, the dark theme was finally finished! Woo! Exciting! See the upgrade guide for more information.

Some other under-the-hood changes are that as many components as possible use the PureComponent instead of the PureRenderMixin with a Component. This release also changed my goals from this project. This project's goal is now to be a completely accessible React/Sass UI framework for material design.

Finally, a material design Grid System was created so positioning is even easier than before.