This repository was archived by the owner on May 20, 2023. It is now read-only.
v0.9.0
Breaking Changes
- Remove
is SelectableWithComposition. - Remove
SelectableChangeNotifierand deprecateSelectableWithComposition
with the intention to remove. They are widely unused, complicated the
implementations, and unsound in Dart 2. ActiveItemMixinhas been removed in favor of the newActiveItemDirective.
New Components
- Material Card styling
- Provided by the Google material team also known as mdc-web. The styles
included in this package are provided as a convenience to users in the Dart
package ecosystem.
- Provided by the Google material team also known as mdc-web. The styles
- Material Stacking Drawer
- Material Stepper
- Material Slider
- Material Date/Time Picker components
- Material Menu components
Component Updates
App Layout
- Update Material Header
z-indexto 1. - Add support for 0 or 2 drawers.
- Add mixin for permanent/persistent drawers and fix mixin for temporary
drawers. - Add mixin for drawer width.
- Provide list-item changes as a mixin to be used in components that wrap drawer
contents.
Button Decorator
- Allow role to be customized.
Material Auto-Suggest Input
- Improve keyboard navigation behavior.
- Prevent marking itself as dirty when it receives initial form value.
- Add aria label to close button.
- Wait for the popup to be visible before activating dropdown items.
- Stop escape keyboard events from propagating after they are handled.
- Disallow deselection when clicked on a selected item with single selection
models. - Ensure input text is initialized correctly regardless of input order.
- Fix auto-scrolling issue on Firefox.
- Add ability to give a tooltip for the clear icon.
- Replace
ngOnChanges()withngAfterChanges(). - Protect against method being called after it is destroyed.
Material Button
- Update elevation on buttons that have focus.
- Remove styles for vertically aligned icon with text buttons.
- Update size and position of text labels for icon buttons.
- Allow icon button items to be created vertically.
- Remove override of
min-widthforyes-no-buttonsas it is now the right
value in material-button. - Update highlight styling.
- Add compact mode.
- Update min-width to new spec.
- Update dense mixin to only apply to non-icon buttons.
- Add mixins for no hover highlight.
- Add mixins to set icon button padding.
- Update hover, focus, and disabled styles to be inline with Material Spec.
- Update mixin names and fix to prevent styles leaking outside of the component.
Material Checkbox
- Remove deprecated
material-checkbox-thememixin. - Add
material-checkbox-colormixin and deprecatematerial-checkbox-theme. - Change
include-in-checkboxdefault to false incheckbox-colormixin to
prepare for it's removal. - Migrate from the deprecated Glyph component to Material Icon.
- Support
onDisabledChangedcallback from angular_forms. - Add mixin to hide text label.
- Prevent marking itself as dirty when it receives initial form value.
- Add mixin to remove right margin.
- Remove negative top margin.
- Implement
Focusable. - Implement onTouched logic.
- Fix disabled state to match Material Spec which is a light grey not a certain
opacity of the checkbox.
Material Chips
- Allow overriding left-icon-color.
- Update margin on dense theme.
Material Dialog
- Fix bug with full screen dialogs.
- Fix bug where a disposable could be added to its disposer after it had already
been destroyed. - Set default
max-heightandmax-width. - Add full screen mode.
- Add support for
<h1>element in title. - Add mixin for bottom border on header.
- Remove
preserveWhitespace: false.
Material Dropdown Select
- Add back
keyboardOnlyFocusIndicatorto dropdown items.
Material FAB
- Update shadow styles.
Material Icon
- Add aria label and use them for trailing/leading icons of Material Input.
- Add mixin for font weight.
- Update mixins to allow overriding elements which have the size attribute set.
- Add flag to mirror icon.
- Roll back change that flipped help icon in RTL.
- Add help icon to the list of icons flipped when direction is RTL.
- Flip half_star icon when in RTL.
Material Input
- Remove element used for resizing if the textarea does not need to be resized.
- Added an
aria-labelledbyattribute. - Add mixin to adjust padding for multi-line inputs.
- Return
nullwhen input is"NaN"ornull. - Don't override unfocused underline color when the input is invalid.
- Add field to mixin to specify the label color when there is an error and the
label is focused. - Support
onDisabledChangedcallback from angular_forms. - Push change detection when marked as disabled.
- Add disabled class to
"top-section"when the input is disabled. - Add mixin to allow hiding only the placeholder in the bottom section.
- Support to fill in error text trailing.
- Fix error color for floating label when an error is shown in the input.
- Add mixin to change the font size.
- Add
aria-labelandaria-invalidattributes back to the input field. - Allow values to be selectable when disabled on all browsers. This is
potentially BREAKING. - Pass aria attributes through to the inner input element. Includes material
auto suggest component. - Add an aria-label that can override the label.
- Add mixin for hiding underline.
- Add mixins for trailing text color and padding.
- Show character count when maxCount is null.
- Add attribute to set aria-label when a visible label is not desired.
- Extend the style rules applied on
input[type=text]to cover the hover and
focus states. - Add mixin padding.
- Don't override underline color when the input is invalid.
- Protected against input being destroyed and blur event still happening.
- Add mixin for fixed width error text.
- Use markForChanges on inputs since they are being set by a directive and not
the template and so change detection doesn't happen automatically. - Allow numerical values to be internationalized in number validators.
- Add option to have a material number input component format its contents on
blur. - Fix unexpected
)in selector forMaterialInputDefaultValueAccessor.
Material Expansionpanel
- Do not change background color on focus or hover when disabled.
- Fix issue where header could extend beyond the max-width of its container.
- Add a mixin for no borders.
- Add a mixin to show header actions on the bottom instead of on the left.
- Add mixin to set alignment in the header.
- Remove
transform: scaleyfrom expand animation. - Add mixin for top-aligning expand button.
- Add option to move the expand button to the left side.
- Improve animations.
- Add mixin for additional padding.
- Allow icon to be hidden and allow additional buttons in the header.
- Increase mixin specificity.
- Add option show/hide the cancel button.
- Add mixin for flat on collapse.
- Smooth appearance/disappearance of expansion panel contents.
- Add mixin to allow change the panel name min width.
- Remove
preserveWhitespace: false.
Material Popup
- Change
<main>html tag to a<div>. HTML5 states there should only be one
main tag per application. - Automatically restore focus on the popup source element when user tabs out.
- Fix border radius mixin.
- Enforce space constraints on content.
- Simplify positioning algorithm.
- Disable constrain-to-viewport in dropdowns via a new, separate
@Input. - Guard against
container = nullinPopupHierarchy.onTriggersOutside(). - Increase the animation speed according to material specs.
- Listen to
DomService.trackLayoutChangestreams foroverlayRepositionLoop
popups.
Material Progress
- Add mixin for taller bars with rounded ends.
- Fall back to the non-optimized animation if the width is 0 after view init.
Material Radio
- Remove
material-radio-thememixin. - Add
roleattribute. - Add
material-radio-colormixin and deprecatematerial-radio-theme. - Support
onDisabledChangedcallback from angular_forms. - Internal cleanup.
- Protect against the group being destroyed before the
tabIndexgets reset. - Migrate away from QueryList.
- Update disabled color to match spec.
Material Ripple
- Allow the ripple to be created programmatically.
- Update animation to match new spec.
Material Select
- Update ARIA
labelledbyfor improved a11y. - Update to
activedescendantARIA pattern for a11y. - Ensure button text displays correctly when an error message shows below it.
- Support focus on dropdown button when dismissed via keyboard.
- Fix focus bug when clicking on a different focusable element.
- Pipe through customized aria role,
labelby, andhaspopupto the dropdown
button. - Fix selected color mixin on vertical selection indicator.
- Add aria states/properties to indicate selected/checked in item.
- Add proper aria attributes to make
material-dropdown-selectscreen reader
accessible. - Add mixin to set disabled color.
- Add mixin to allow for error text margin.
- Refactor
constructEncapsulatedCssto utils. - Add option to dropdown to disable deselecting on trigger.
- Allow content to be projected as list header and list footer in dropdown.
- Implement
FocusableinDropdownButtonComponent. - Fixed an alignment issue with the icon on dropdowns.
- Add a
FactoryRendererinput. - Wait for the popup to be visible before activating dropdown items.
- Stop escape keyboard events from propagating after they are handled.
- Fix
MaterialSelectItemdisplaying two times the label whenfactoryRenderer
is used. - Fix auto-scrolling issue on Firefox.
- Add mixin to change
material-select-dropdown-itempadding. - Add mixin to set select item padding.
- Add mixin to set selected item color.
- Allow customization of Material Dropdown Select's role.
- Add mixin for pointer events on Material Dropdown Select Items.
- Fix baseline alignment of dropdown-button in Firefox.
- Add
showButtonBorderinput to Material Dropdown Select component. - Cleanup unused styles.
Material Spinner
- Add mixin to adjust the stroke width.
Material Tabs
- General cleanup: remove unneeded directive, use absolute imports, and fix
spelling error. - Add support for
disabledattribute. - Make
text-wrapmixin more generic. - Add two-way binding on fixed strip activeTabIndex.
- Increase space between labels.
Material Toggle
- Implement
ControlValueAccessor. - Fix
aria-pressedstate. - Add mixin to display label on the right.
Material Tooltip
- Fix comment which was using deprecated
ElementRef. - Allow paper tooltip CSS to be customizable.
- Allow
'error_outline'as a valid icon. - Prevent paper tooltips from overflowing on small screens.
- Change
tooltipSourcedirective to usestyle.cursor. - Update line height to
20pxper internal spec. - Fix
material-paper-tooltipcontent that are change detected and using
deferred content by having the visible property be set in an async manner so
that the value isn't added in the middle of a change detection loop.
Material Tree
- Add
visibleChangeoutput stream toMaterialTreeDropdownComponent. - Use item identity to remember expanded state.
- Add a
shouldExpandAllWhenFilteredinput. - Adds an option to select parent nodes in a single selection model tree.
- Bugfix for auto selection all siblings due to an error being thrown which
stops event.stopPropagation from firing. - Add an option to material tree group to render a "View more" link for hidden
options. - Migrate away from QueryList.
- Autofocus the filter when
MaterialTreeDropdownis opened, but not when it
closes. - Improve latency of
MaterialTreeFilter. - Clear filter inside the popup when
MaterialTreeDropdowncloses.
Material Yes/No Buttons
- Fix bug where text color was not applying to highlighted/raised yes button.
- Fix no button to not override disabled text label color.
- Remove
Visibility.all. - Update mixins to use CSS shimming.
Reorder List
- Add ability to specify a handle element in a complex component.
- Calculate the full height/width of the elements.
- Restrict when a dragged item's target index is incremented or decremented.
Scorecard
- Add mixin for changing the display to flex.
- Remove the
:hostfrom the padding mixin so it is not required to be used at
the top level. - Add stacking context.
- Only update selected state if the scorecard is selectable.
- Fix misalignment on OS X with hl=ja.
- Selected color input overrides default color value in a selectable scoreboard.
- Add a tooltip field.
Other Updates
Selection Model
- Add
is{Selectable|Disabled|Hidden}In(),getOptionIn()and,filterWhere()
as static helpers toSelectable. - Add empty, single, and multi constructors.
- Add
ignoreDeselectoption toSelectionModel.singleand deprecate
RadioGroupSingleSelectionModel. - Update to
SelectionModel.single(),SelectionModel.multi()etc. instead of
deprecatedSelectionModel.withList(). - Add support for
SingleSelectionModeltoSelectionModel.empty. - Add
SingleSelectionModelinterface withselectedValue()method. - Better support for the zippy expansion case.
- Add option to disable select all in the table selection model.
- Use generic type for table selection model
SelectableGetter.
Modal/Overlay
- Add attribute on
PopupSourceDirectiveto decide whether to set the popup
related aria attributes. - Ensure parent modal is shown when the current modal is destroyed.
- Add DI modules to Laminate Overlay & Popup components.
- Update
PopupHierarchyto better handle cases with multiple modals. - Handle null pointer in
popup_source_directive. - Protect against a null pointer exception in laminate popup.
- Propagate CSS classes to the overlay element.
- Turn
overlayRepositionLoopon by default. - Use a reified Provider for
defaultPopupPositions. - Add support for minimum width and height to
PopupSizeProvider.
Miscellaneous
- Make
DomServicerun callbacks in the correct zone. - Fix bug in
DomTreeIterator.moveNext()where it was using equality instead of
assignment. - EntityFormatters now implement the regular Formatters.
- Add a lookup method for finding the closest Material Color name based on any
input color. - Scope the
Focusableitem forAutoFocusDirectiveso that any node in the
hierarchy isn't mistakenly focused. - Modify
TextHighlighterto return separate results for adjacent matches,
rather than concatenating them into a single result. - Migrate to using event tearoffs.
- Deprecate convenience list for
materialDirectives. It has been demonstrated
that it's use increases code size when only some of the components are being
used. It is preferable to use only the directives needed for your application
for improved dart2js tree shaking. - Add
@mustCallSuperto the Disposer interface. - Add Add
ObservableView.values-- like.stream, except also with the
current value. - Add new CSS class names used by
ShowHideDirectiveto avoid conflicts with
Angular JS apps and remove the legacy versions. - Only focus when
autoFocusistruewhen usingAutoFocusDirective. - Update various components to use finals for
Intl.messages to improve
performance. - Add
HasDisabledinterface. - Annotate
Domservice.leap()visible for testing. - Add
mat-link-deepmixin to push the Material link styles everywhere. - Make mouse events with the shift modifier key a non-standard mouse event in
isStandardMouseEvent(). - Remove
IntersectionObserverbindings now that they exist in dart:html. - Add
onDisabledChanged()to allControlValueAccessorimplementations. - Add ShowHideDirective and GlobalEscapeDirective.
- Make
ShowHideDirectiveconstants private. This is potentially BREAKING. - Add a parameter to fail loudly when
TimeZoneAwareClockis used before it's
initialized, to prevent incorrect return values from being ignored. - Delete deprecated
LazyEventEmittersince it was no longer lazy and a
StreamController can be a simple drop in replacement. - Allow '[' for start of word of highlight match.
- Use
@visibleForTestingannotations. - Remove position: -webkit-sticky support.
- Update type of materialProviders so it can be used when bootstrapping.
- Create a new API for caching item renderers.
- Only add touch listeners if the primary input is touch.
- Add
IntersectionObserverbindings &onIntersectionstream toScrollHost. - Deprecate
getBool(), Angular supports it now natively. - Fix RTE when using item renderers as highlight renderers when there is a
custom factory renderer. - Fix componentRenderer logic.
- Add a feature detector for
position: sticky. - Migrate from Glyph to Material Icon.
- Remove unused table model.
- Remove the
getDynamic()method from properties helpers. - Remove uses of
.runtimeType. - Cleanup unused variables.
- Allow
material-scrollbarmixin to be used in global css (without angular). - Provide a path to use Component Factories when using code that was previously
using theComponentRendererpattern. - Continue migration from
SlowComponentLoadertoComponentLoader. - Continue migration from
LazyStreamControllertoStreamController. - Cleanup Angular static analysis warnings.
- Add optional punctuation around trackBy functions.
- Avoid reliance on dynamic typing to access properties.
- Add
@Inputto number validators. - Add Observable utilities.
- Add color contrast ratio utility.
- Remove deprecated box-sizing styles.
- Deprecate
ManagedZoneand replace withNgZone. - Remove unnecessary uses of
::ng-deep. - Support RTL selectors on any element.
- Remove usage of package UUID.
- Update sass_builder dependency to latest and use the post-process builder to
remove.scssfiles from the output.
Angular API Updates
- Migrate from
hostto new@HostListenerand@HostBindingsyntax. - Migrate from
ElementReftoElementorHtmlElement. - Set
visibilitytoVisibility.allon Directives that are expected to
be provided. Others will default toVisibility.local. This is potentially
BREAKING. - Cleanup unneeded
preserveWhitespace: falseandpreserveWhitespace: true
when components manage spacing around themselves and have been validated.
Dart 2 Updates
- Fixes for Dart 2 compile-time and runtime errors.
- Application of
dartfmt --fix. - Migrate from
Stream<Null>toStream<void>. - Updates to conform to new Effective Dart guidelines.
- Prepare for change of
asyncbehavior in Dart 2. - Updates to stronger types for Dart 2.
- Fix uses_bottom_as_dynamic ("fuzzy arrow") errors.
- Fix Dart2 runtime cast failures and other Dart 2 fixes.
Documentation
- General documentation cleanup for
@Inputs and@Outputs. Improves
documentation generated by the component gallery.