Skip to content

Latest commit

 

History

History
1114 lines (920 loc) · 147 KB

CHANGELOG.md

File metadata and controls

1114 lines (920 loc) · 147 KB

Bug Fixes

  • list, option: fix ripples blocking mouse events on user content (#4503) (c4b3625), closes #4480

Breaking Changes

  • MdIconModule no longer imports HttpModule. If your application depended on Http being provided through MdIconModule, you should now directly import HttpModule into your application.
  • The forRoot method on all Angular Material modules has been removed. It was previously deprecated and a no-op. Importing the modules directly will have the same effect.
  • Angular Material now requires TypeScript 2.2, which adds support for mixins.

Highlights

  • New datepicker component! This is still very new, so please try it out and file any issues you encounter on Github.
  • You can now disable Material's global sanity checks (at your own risk). These checks include whether your theme file is included, that you have a doctype, and more. See the PR here.
  • Our support for Angular Universal should be much improved! Expect further improvements in subsequent releases.

Bug Fixes

Features

Performance Improvements

  • dialog: switch dialog animations to translate3d (#3905) (857c217)

Breaking changes

Package structure

The package structure for Angular Material has changed to match that of Angular itself. This has a few ramifications on applications consuming Angular Material:

  • Deep imports will no longer work, e.g., @angular/material/core/a11y. All public symbols should be imported directly from @angular/material. Deep imports have always been an anti-pattern, but our previous package structure inadvertently allowed them.
  • The imports for theming have changed. ** For prebuilt themes, you can now find the CSS files in the prebuilt-themes/ directory in the package root. For angular-cli projects, this will look something like
@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';

** For custom themes, you can now import theming.scss directly from the package root. Again, with angular-cli, this will look something like:

@import '~@angular/material/theming';

Removal of deprecated symbols

  • The deprecated, Md-prefixed aliases for LiveAnnouncer, Platform, and UniqueSelectionDispacther have been removed.

MaterialModule

  • MaterialModule (and MaterialRootModule) have been marked as deprecated.

We've found that, with the current state of tree-shaking in the world, that using an aggregate NgModule like MaterialModule leads to tools not being able to eliminate code for components that aren't used.

In order to ensure that users end up with the smallest code size possible, we're deprecating MaterialModule, to be removed in the a subsequent release.

To replace MaterialModule, users can create their own "Material" module within their application (e.g., GmailMaterialModule) that imports only the set of components actually used in the application.

Angular 4

  • Angular Material now depends on Angular 4.
  • Now that animations have been refactored into a separate package, users of @angular/material need to explicitly import BrowserAnimationsModule (or NoopAnimationsModule) from @angular/platform-browser/animations as well as installing @angular/animations.

Other changes

  • The DomProjection service was removed. This was an experimental, undocumented service that we ultimately found did not provide a good approach to composing components.
  • The config property was removed from MdDialogRef. If you were using this to access the data property, you can instead inject that value using the MD_DIALOG_DATA of the opened component.

Bug Fixes

  • autocomplete: "undefined" being displayed on empty control with ngModel (#3535) (675c9df), closes #3529
  • autocomplete: aria-expanded should be updated when panel hides (#3494) (932b4a0)
  • autocomplete: do not trigger submit on ENTER (#3727) (bedf5a1), closes #3159
  • autocomplete: fix down arrow use with ngIf (#3493) (a4e2de7)
  • autocomplete: fix key manager instantiation (#3274) (c21ff40)
  • autocomplete: not showing panel on first focus in certain cases (#3775) (75996b5)
  • autocomplete: prevent opening on load in IE (#3190) (a4da08b), closes #3183
  • autocomplete: remove max width for autocomplete panel (#3297) (738e9bf), closes #3198
  • autocomplete: update overlay ref width on menu trigger (#3573) (6915e8a)
  • button: add transition to focus overlay (#2850) (6cdd8db)
  • button: persist theme color of button when leaving hover state (#3629) (3ad6ff0)
  • button: square ripple in compatibility mode (#3167) (ceb472b), closes #3164
  • button: use FocusOriginMonitor for focus styles (#3294) (5d6920d)
  • button-toggle: fix color for selected button toggle and selected disabled button toggle (#3418) (be167c9), closes #3382
  • button-toggle: only show focus style when focused via keyboard (#3232) (d744a5f)
  • card: removed header height (#3450) (17bf5e5), closes #3288
  • card: unable to override elevation (#3139) (4ee16a9), closes #3123
  • checkbox: add focus indication (#3403) (01188d9), closes #3102
  • checkbox: create ripple on label mousedown (#3206) (3edf105), closes #3030
  • checkbox: focus origin for focus method (#3763) (7a60489)
  • checkbox: show checkbox animation only if user click or indeterminate state (#3137) (f4323b2), closes #2783
  • checkbox: switch checkbox behaviors for click and change events (#3146) (8aa9857)
  • chips: Fix adding new chips on demo page (#3426) (2d16a24)
  • compatibility: remove ink bar from compatibility check (#3267) (c203589)
  • connected-overlay: direction not being updated (#3293) (817dcfd), closes #3241
  • connected-position: error if none of the initial positions fit in viewport (#3189) (a306a8e)
  • core: log warning if doctype is missing (#2849) (22b0660), closes #2351
  • demo: remove input route from demo app (#2922) (6bac315)
  • dialog: delay focus until animation is done (#3774) (d7d2b16), closes #3722
  • dialog: leaking component instance references (#2875) (e120e8d), closes #2734
  • dialog: leaking MdDialogContainer references (#2944) (8e6720b), closes #2876
  • docs: only rewrite relative links (#3339) (cb57660), closes #3147
  • focus-trap: avoid closure compiler issues when adding anchors (#3448) (8b2ae0d)
  • focus-trap: enabled property not being coerced (#3417) (d81445b)
  • focus-trap: exception when element contains SVG on IE (#3432) (d06ad75), closes #3410
  • input: baseline alignment on textarea (#3714) (7cff349)
  • input: change dividerColor to color (#3726) (2ccf0ae)
  • input: don't add empty prefix & suffix wrappers (#3724) (6d6c12d)
  • input: don't animate label when value is set programmatically (#3691) (dc5c869)
  • input: fix blank aria-describedBy (#3713) (cb85eeb)
  • input: fix chrome autofill style (#3366) (f40b1b2)
  • input: label animation shifting sibling labels (#3568) (f8cdd92), closes #3541
  • input: make all icons in input containers the correct size (#3489) (359c9bb)
  • input: make icons in prefix/suffix the right size (#3342) (63d4359)
  • input: make sure injected NgControl belongs to the input (#3700) (220163e)
  • input: overflow-y scrollbar is displayed (IE) (#3571) (7ffaf9e), closes #3570
  • input: remove jitter that occurs on focus (#3343) (eba7641)
  • interactivity-checker: cast node name to lowercase for isInputElement function (#3281) (8f76f96)
  • list: add font-family style to subheader (#3056) (3464011)
  • list-key-manager: exception when no initial active item (#3431) (842896b), closes #3317
  • menu: incorrect text alignment in IE/Edge (#3268) (5ef3084), closes #3254
  • menu: not emitting close event when closing via the backdrop (#3300) (0f28daf), closes #3295
  • menu,tooltip: Ensure subscription exists before unsubscribing. (#3078) (84b5c3b)
  • aot runtime issues (#3807) (f40296e)
  • change selectors for MdCardXlImage and MdCardAvatar (#3134) (6e1f50b)
  • coverage issue with saucelabs (#3540) (4d4a63e)
  • select: allow custom aria-label (#3765) (038a337), closes #3762
  • deprecate MaterialModule (#3840) (3f5894e)
  • overlay: ensure proper stacking order when attaching (#3581) (aa5925b), closes #3574
  • package.json: Fix failing npm run api command (#3462) (bf2b615)
  • portal-host: unable to clear and portal reference not being set (#3302) (7fcb93b)
  • progress-spinner: not redrawing when changing modes (#3672) (1ae81a4), closes #3648
  • pseudo-checkbox: alignment issue and border color (#3144) (1f19ef0)
  • radio: add focus indication (#3402) (c934753), closes #3102
  • ripple: different durations for ripple elements (#3136) (5c7a96b), closes #3109
  • ripple: fade-out-all should hide all ripples (#3400) (5cc50d2)
  • ripple: fix ripple color in dark theme (#3094) (a91ae72)
  • ripple: rename selector for the ripple (#3482) (58c5d17)
  • scripts: change all paths in docs pushing script to relative paths (#3091) (60aa9e9)
  • scroll-dispatcher: unable to unsubscribe from global listener (#3729) (68db6ba)
  • scrollable: check if scrollable exists before unregistering (#3050) (b358c6c)
  • select: animation jump in Chrome and blurry text in IE (#3328) (09c6386), closes #3327 #1953
  • select: exception if selected value is accessed on init (#3785) (e82457c), closes #3750
  • select: initial value not being displayed with FormControl and OnPush (#3434) (819fa0b)
  • select: show focus indicator even with validation errors (#3743) (e964734), closes #3742
  • select: unable to set a tabindex (#3479) (11dec36), closes #3474
  • select: wrong item order in label in rtl (#3567) (52ea7a3)
  • sidenav: throw error when sidenav has 2 sidenavs on the same side at the same time (#3369) (324da5b)
  • sidenav: use vw instead of percentage for sidenav min width (#3046) (c638e20)
  • slide-toggle: fix unavailable unmonitor call (#3862) (904c71e)
  • slide-toggle: input not updated after drag (#3067) (5cdeb75)
  • slide-toggle: invalid change events with no new value (#3555) (5346353), closes #3526
  • slide-toggle: occasional element jumping (#3311) (beb0edf)
  • slide-toggle: remove host element margin (#3761) (cd0b853)
  • slide-toggle: ripple fade-in too slow (#3170) (369931e)
  • slider: unable to reset tickInterval after it has been set (#3488) (b9b014a), closes #3452
  • tab: use MD_RIPPLE_GLOBAL_OPTIONS in tab (#3553) (ee853b9)
  • tab-nav: add constructor back for ripple (#3537) (f27617a)
  • tabs: change color for disabled tab label (#3483) (290f710), closes #3481
  • tabs: missing mat class on tab group (#3038) (d97debe)
  • tabs: re-align ink bar on direction change (#3622) (07793a4), closes #3615
  • tabs: remove body and header from compatibility (#3168) (b939cd8)
  • tabs: remove flex; bring ink into same parent as links (#3331) (00de2d7)
  • tabs: set tab body content to 100% (#3162) (cbd1ff9), closes #3153
  • toolbar: incorrect height for soft-keyboards (#3312) (d1abc9e), closes #3233
  • tooltip: avoid capturing the initial tap on mobile (#2423) (85ba82a), closes #2326

Features

Performance Improvements

  • ripple: avoid triggering change detection (#3066) (1a67107)
  • scroll-dispatcher: avoid triggering change detection on scroll (#3687) (5c2b449)
  • scroll-dispatcher: lazily subscribe to global events (#3270) (c1004cb), closes #3237

Breaking changes from beta.1

  • Styling is no longer prefixed by md-. All styling is now prefixed by mat- so that apps can upgrade from AngularJS Material to Angular Material without styling conflicts between the two library components. See (#2790) for the details on the code change and some useful regular expressions that can help migrate styles.

  • Checkbox tab index @Input has been changed from tabindex to tabIndex. (#2953)

  • Ripple no longer has the mdRippleBackgroundColor input to change the background color. (#2859)

  • The deprecated use of <md-input> and <md-textarea> has been removed. Use mdInput on an input or textarea within a md-input-container. md-prefix and md-suffix are now mdPrefix and mdSuffix. (#2788)

    <md-input-container>
      <input mdInput name="value" ngModel>
    </md-input-container>
  • The deprecated use of <md-sidenav-layout> has been removed. Use <md-sidenav-container> instead. (#2283)

  • Input floating placeholder @Input has changed from a boolean (true and false) to a state (always, never, and auto) and was renamed from floatingPlaceholder to floatPlaceholder. For details on when to use which state, see (#2585)

  • The use of Module forRoot has been deprecated and will be removed in the next release. Instead, just simply import MaterialModule directly:

@NgModule({
    imports: [
        ...
        MaterialModule,
        ...
    ]
...
});

Bug Fixes

  • autocomplete: add mat version of autocomplete @Input (#2928) (e5521a8)
  • autocomplete: allow basic use without forms directives (#2958) (4ee2980)
  • autocomplete: close panel when options list is empty (#2834) (8a3b6fd)
  • autocomplete: double-clicking input shouldnt close the panel (#2835) (18969f4)
  • autocomplete: hide instead of close when options empty (#2997) (a022035)
  • autocomplete: placeholder should float while panel is open (#2730) (eec4dc6)
  • autocomplete: scroll options below fold into view (#2728) (6c84603)
  • autocomplete: support rtl (#2648) (4f59ad0)
  • autocomplete: up arrow should set last item active (#2776) (fd5e4d9)
  • autosize: export md-autosize directive (#2432) (f2d73da), closes #2419
  • button: add default color for mat-raised-button (#3052) (6fe1d9a)
  • button: only flat button and icon buttons should inherit the color (#2561) (ac363df), closes #2539
  • button: raised buttons in dark theme (#3070) (87ab712)
  • button: reuse _getHostElement() to avoid redundant elementRef.nativeElement calls (#2625) (c7d1c17)
  • button-toggle: add the setDisabledState from ControlValueAccessor (#2430) (fb750b4)
  • button-toggle: conflict with radio component (#2343) (9e99374), closes #2274
  • button-toggle: make conform with design specs (#2570) (fed5d7b)
  • card: fix padding for md-card-actions in xs screens (#2567) (ad0df31)
  • checkbox: Emit event when checkbox's indeterminate value changes (#2130) (f11c5eb)
  • checkbox: rename tabindex to tabIndex (#2953) (b91964a)
  • checkbox: ripple color does not change (#2857) (7ac29f8)
  • checkbox, radio: not using theme border color (#2744) (07ec765)
  • compatibility: add missing mat- selectors (#2923) (f29f7ab)
  • connected-position-strategy: wrong logic when determining whether element is on screen (#2677) (e055d05), closes #2102 #2658
  • dialog: escape key not working once element loses focus (#3082) (a08dc55), closes #3009
  • dialog: prevent error when restoring focus on IE (#2771) (153fcd3), closes #2760
  • dialog: prevent the close button from submitting forms (#2659) (29f939a), closes #2599
  • dialog: use injector from viewContainerRef if provided (#2655) (be0da09)
  • docs: properly create links in guide files (#2770) (60f03ed)
  • icon: add caching of md-icon aria-label (#2649) (08e9d70), closes #2642
  • input: add more padding so that the hint doesn't overflow the container (#2246) (d7831d9)
  • input: camel-case md-prefix and md-suffix (#2639) (7562322), closes #2636
  • input: disable underline with reactive forms (#2565) (f9dd34f), closes #2558
  • input: disabled inputs should be grayed out (#2513) (ed3ffe0)
  • input: ensure that property bindings work (#2431) (b4b4224), closes #2428
  • input: fix chrome 56 warning (#2906) (62189a3)
  • input: fix placeholder for number input with bad input. (#2362) (52aa715)
  • input: hints not being read out by screen readers (#2856) (f899b5f), closes #2798
  • input: horizontal overflow in IE and Edge (#2784) (e0fe635)
  • input: properly determine input value (#2455) (3a11927), closes #2441 #2363
  • input: remove md-input and md-textarea in favor of md-input-container (#2788) (7b30fdc)
  • input: vendor-prefix ::placeholder (#2547) (3b16648)
  • input-container: prefix and suffix stretching together with parent (#2496) (64f6d1b), closes #2493 #1881 #1421
  • input-container: reduce redundancy when forwarding the NgControl classes (#2442) (8c0eef2)
  • option: revert duplicate prop (#3051) (516720f)
  • overlay: disable pointer events if overlay is detached (#2747) (453fa7f), closes #2739
  • overlay: fix pointer events for ie11 (#3023) (597e3de), closes #3022
  • progress-bar: buffer animation not working in IE (#2941) (ab8f98f), closes #2881
  • progress-bar: unable to apply visibility in indeterminate mode and reduce CSS (#2417) (eb96b0c), closes #2413
  • progress-spinner: fix color input on md-spinner (#2396) (6cb6576), closes #2393
  • radio: change radio button trigger element to input element (#2838) (2f10a95)
  • ripple: camel-cased CSS classes (#2340) (c67f4e5)
  • ripple: make ripples conform with specs (#2859) (6381948)
  • select: avoid going into infinite loop under certain conditions (#2955) (998a583), closes #2950
  • select: don't open menu if there are no options (#2924) (cc77ef4)
  • select: fix select panel animation (#2699) (15eb33a), closes #2695
  • select: fix selection color (#2697) (4e94da4), closes #2696
  • select: selected option not being highlighted when options are added asynchronously (#2499) (7fc38b9), closes #2497
  • select: set default font size (#2976) (40bc486)
  • select: set select value to trigger height and center text (#3021) (ac9c090)
  • select: support use inside a custom value accessor (#2704) (651440f), closes #2609
  • select: transparent background when overscrolling (#2117) (d9b2d85)
  • select: trim long labels inside md-option (#2444) (416f56f), closes #2440
  • select: view not updating when using OnPush detection strategy (#2894) (3bcb7c3), closes #2663 #2269
  • select: parent align affects placeholder (#2572) (a1c90b3)
  • sidenav: animate content resizing for side mode. (#2486) (4d33449)
  • sidenav: fix animation issue for initially open sidenav (#3045) (37e4bad)
  • slide-toggle: consistent naming of aria attributes (#2688) (10bd6da)
  • slider: fire change event on value change via keyboard. (#2807) (7f50d11)
  • slider: hide ticks when slider is disabled (#2687) (e9ec8ab)
  • apply font-family to text components (#2821) (d11673a)
  • slider: make disabled state look like mocks (#2604) (8263ffb)
  • slider: make min value style match mocks (#2641) (737b608)
  • slider: round decimals in the thumb label (#2527) (987897c), closes #2511
  • snack-bar: improper button styling and improved handling of long text (#2991) (93937e6), closes #2979
  • snack-bar: prevent error when opening multiple snack bars in fast succession (#2392) (161f319), closes #2390
  • snack-bar: SimpleSnackBar not being exported (#3016) (a7a3967), closes #3010
  • tabs: crashing on chrome under certain conditions (#2411) (727ce53), closes #2151
  • tabs: fix ink not showing on chrome 57 (#3041) (f24832c)
  • tabs: infinite loop when selectedIndex is set to NaN (#2389) (f4cfc2d)
  • toolbar: add toolbar role to host element (#2914) (67032ca), closes #2909
  • toolbar: correct font-weight (#2485) (1b44880)
  • toolbar: prevent content overflow and line-wrapping (#2454) (e728771), closes #2451
  • tooltip: better handling of multi-line text (#2472) (7863e38), closes #2205
  • tooltip: not working properly with ChangeDetectionStrategy.OnPush (#2721) (632b964), closes #2713
  • tooltip: provide a maximum width (#2678) (fb5e1d4), closes #2671

Features

  • autocomplete: add autocomplete panel toggling (#2452) (d4ab3d3)
  • autocomplete: add fallback positions (#2726) (8fc7706)
  • autocomplete: add keyboard events to autocomplete (#2723) (fcea9d4)
  • autocomplete: add screenreader support (#2729) (bd7f240)
  • autocomplete: add value support (#2516) (5def001)
  • autocomplete: allow use of obj values (#2792) (55e1847)
  • button-toggle: Show selected option when md-button-toggle is disabled (#3012) (1547440), closes #3007
  • compatibility: remove conflicts with material1 css styling (#2790) (210ff02)
  • dialog: add a config option for passing in data (#2266) (29cbe61), closes #2181
  • dialog: add events (observables) for open & closeAll (#2522) (23ab152)
  • dialog: add the ability to align the content of md-dialog-actions (#2557) (e18ab5d), closes #2483
  • dialog: support open with TemplateRef (#2910) (bf0f625)
  • focus-classes: expose focus origin changes through observable (#2974) (d4ba648)
  • FocusOriginMonitor: add support for touch events (#3020) (ec7e2e4)
  • input: option to imperatively float placeholder (#2585) (fb0cf8a), closes #2466
  • list-key-manager: active descendant support (#2606) (e2ad3a0)
  • menu: Added ability to show the menu overlay around the menu trigger (#1771) (592f33f)
  • overlay: add fullscreen-enabled overlay class (#1949) (0640302)
  • screenshot: Add screenshot function to e2e test (button and checkbox) (#2532) (8ba8deb)
  • scripts: push generated docs to material assets repo (#2720) (ba12f44)
  • select: emit change event (#2458) (e5bd15c), closes #2248
  • sidenav: add disableClose option (#2501) (52ade97), closes #2462
  • slide-toggle: add support for labelPosition (#2836) (68a0c90), closes #2820
  • slider: emit input event when slider thumb moves (#2325) (99963c4), closes #2296
  • snack-bar: allow addition of extra css classes (#2804) (e783494), closes #2664
  • style: add directive to determine how elements were focused. (#2646) (8a6d902)
  • tabs: add the ability to invert the header (#2391) (a494c92), closes #2387
  • theming: provide a content wrapper attribute (#2170) (4bf4b87), closes #1938 #2106
  • tooltip: reposition on scroll (#2703) (bc52298)
  • viewport-ruler: cache document client rect (#2538) (d0c8f18)
  • add a common class to be used when dealing with selection logic (#2562) (c295fa9)
  • add simplified checkbox component for usage in other components (#2619) (3b6cab0)
  • remove the need for forRoot on material NgModules (#2556) (b49bfce)

Performance Improvements

  • tabs: reduce amount of reflows when aligning the ink bar (#2372) (dab742f)

Bug Fixes

  • Remove MdAutocompleteModule that was accidentally included in beta.0
  • Correct path to umd bundle in package.json (#2368) (d286e6d), closes #2366

Breaking changes from alpha.11

  • The svgSrc propert of <md-icon> has been removed. All SVG URLs must now be explicitly marked as trusted using Angular's DomSanitizer service.
  • The <md-input> element is deprecated in favor of <md-input-container>. This new component allows for direct access to the native input element.
  • All @Input properties have been changed to use their camelCase names for binding. The old names are still available as deprecated but will be removed in the next release.
  • All @Directive selectors are now camelCase to be consistent with Angular core. For example, [md-tooltip] is now [mdTooltip] The old selectors are still available as deprecated but will be removed in the next release.
  • <md-progress-circle> has been renamed to <md-progress-spinner>. The old selector and symbols are still available as deprecated but will be removed in the next release.
  • <md-sidenav-layout> has been renamed to <md-sidenav-container>. The old selector is still available as deprecated but will be removed in the next release.
  • Several components in core/, such as Overlay, have had their prefix changed to cdk- (short for "component dev kit"). This signifies that these are general-purpose tools for building components that are not coupled to Material Design.The old selectors are still available as deprecated but will be removed in the next release. The CSS classes have been changed.
  • The align property for md-checkbox and md-radio-button has been changed to labelPosition with values before and after.
  • MdTooltip properties are now prefixed, e.g., mdTooltipPosition, mdTooltipHideDelay, etc.

Note on HammerJS

HammerJS is now optional. It is still necessary for gestures to work within certain components, but should no longer throw an error if it is missing.

Bug Fixes

  • a11y: add all providers to forRoot (#2222) (9272b4b), closes #2189
  • add re-exports for symbols needed by Aot (#2149) (c324142)
  • icon: remove svgSrc, only allow trusted urls (#1933) (4571561)
  • input: copy input state classes to md-input-container (#2191) (f0c4148)
  • input: fix underline color to match spec (#2167) (b850fed), closes #2126
  • input: label alignment in rtl (#2047) (7b3a059), closes #2034
  • input: treat number 0 as non-empty (#2245) (a818579)
  • input: unable to focus input in IE 11 (#2233) (8ec3a19)
  • overlay: proper backdrop stacking with multiple overlays (#2276) (b16031a), closes #2272
  • platform: Remove assumption of `window' in MdPlatform (#2221) (e436775)
  • positioning: fallback positions should work while scrolled (#2193) (8df30db)
  • progress-circle, progress-bar: bind color via [color] rather than [attr.color] (#2299) (e4d2bef)
  • progress-spinner: Rename ProgressCircle to ProgressSpinner (#2300) (221c234)
  • select: clear select if no option matches value (#2110) (2855cc3), closes #2109
  • select: make invalid selector more specific (#2166) (a7c88c5)
  • sidenav: make focus-trap occupy full height of sidenav (#2145) (13223df)
  • sidenav: Rename md-sidenav-layout to md-sidenav-container. (#2183) (8f1c5a9)
  • slider: prevent thumb from getting stuck on Mobile Safari (#2142) (4adee46)
  • snack-bar: clean up element when associated viewContainer is destroyed (#2219) (db9608f), closes #2190
  • tabs: observing tab header label changes to recalculate width (#2186) (7ab4430), closes #2155
  • TSError: ? Unable to compile TypeScript when running 'gulp:build' (#2132) (714c2a4)
  • tests: snackbar ref has unnecessary observable.of (#2298) (d076bd3)
  • tooltip: add missing rxjs import (#2288) (ba7053f)

Features

  • make hammerjs optional (#2280) (28691ca)
  • chips: initial version of md-chip-list. (#2242) (f45c315) (#2046) (ba85883) (#2332) (3f2db27)
  • dialog: add dialog content elements (#2090) (cac72aa), closes #1624 #2042
  • checkbox, radio: change align to labelPosition (inverted) (#2289) (a1f9028)
  • connected-position: apply the fallback position that shows the largest area of the element (#2102) (4f5b9c5), closes #2049
  • core: add scrollable view properties to connected pos strategy (#2259) (b60d33f)
  • input: create md-input-container to eventually replace md-input (#2052) (ca2046b)
  • scroll: provide directive and service to listen to scrolling (#2188) (9b68e68)
  • sidenav: close via escape key and restore focus to trigger element (#1990) (a1331ec)
  • tooltip: add input for delaying show and hide (#2101) (e85d108)
  • toolbar add responsive heights as per spec (#2157) (78d54fc)

Performance Improvements

  • sidenav: avoid extra repaints while scrolling (#2156) (b967712)

NOTE: Be sure to delete your previous install of @angular/material and install it fresh, as npm sometimes doesn't see that there is a more recent alpha release.

Bug Fixes

  • a11y: improved accessibility in high contrast mode (#1941) (5cf7d17), closes #421 #1769
  • button: ensure icons are aligned vertically. (#1736) (d3a50b3), closes #1093
  • button: improved tap responsiveness on mobile (#1792) (4183fbc), closes #1316
  • button: remove disabled attribute when disabled value is false for MdAnchor (#1789) (716372b)
  • checkbox: fix native checked not being checked when MdCheckbox initial checked value is true (#2055) (3fd3117)
  • checkbox, input, radio, slide-toggle: implement setDisabledState from ControlValueAccessor (#1750) (77a960c), closes #1171
  • dialog: add border radius (#1872) (6aa7e22), closes #1868
  • dialog: avoid subpixel rendering issues and refactor GlobalPositionStrategy (#1962) (1ea6d34), closes #932
  • dialog: backdrop not being removed if it doesn't have transitions (#1716) (accab20), closes #1607
  • elevation: change elevations to match spec (#1857) (c2597b6)
  • interactivity-checker: improve robustness of isTabbable (#1950) (4b7e52d)
  • list: prevent list item wrapper elements from collapsing (#2075) (27f9c99), closes #2012
  • list-key-manager: prevent the default keyboard actions (#2009) (a8355e4)
  • menu: reposition menu if it would open off screen (#1761) (7572e34)
  • overlay: prevent blurry connected overlays (#1784) (303dd69)
  • overlay-directives: update offsets if they change after overlay creation (#1981) (b36db15)
  • radio: fix radio group behavior on change (#1735) (bbc5f6a)
  • ripple: Always remove ripple after a certain period (#1915) (62cc830)
  • ripple: don't create background div until ripple becomes enabled (#1849) (d7a54ef)
  • ripple: Fix the ripple position when page is scrolled (#1907) (dd508ea)
  • sidenav: resolve promise as false rather than (#1930) (7816752)
  • slider: emit change event after updating value accessor (#1901) (8caf9a6)
  • slider: support for RTL and invert (#1794) (5ac29dd)
  • spinner: animation not being cleaned up when used with AoT (#1838) (83de14f), closes #1283
  • tab-link: avoid potential memory leak (#1877) (e332f15)
  • tabs: tabs should update when tabs are added or removed (#2014) (dfc580d)
  • tooltip: check tooltip disposed on animation hidden (#1816) (9c0d82a)
  • tooltip: don't show tooltip if message is empty or not present (#2081) (2701aae), closes #2078
  • tooltip: throw a better error when an invalid position is passed (#1986) (539e44e)

Features

  • select initial version of md-select (too many commits to list)
  • textarea: add md-autosize directive (this will be more useful once the md-input refactoring is complete) (#1846) (9ec17c0)
  • tabs: paginate tab header when exceeds width (#2084) (92e26d7)
  • tabs: add ripples to the tab group and nav bar links (#1700) (b9fe75a)
  • tabs: animate tab change, include optional dynamic height (#1788) (f6944e4)
  • tabs: md-stretch-tabs (#1909) (78464a2), closes #1353
  • button-toggle: add option for vertical toggle groups (#1936) (cb0d6fc), closes #1892
  • dialog: add configurable width, height and position (#1848) (bc6cf6e), closes #1698
  • dialog: add the ability to close all dialogs (#1965) (b2999c9)
  • focus-trap: add the ability to specify a focus target (#1752) (72ac7a0), closes #1468
  • icon: added color attribute to md-icon for icon theming (#1896) (da5febc)
  • overlay: emit position change event (#1832) (b79c953)
  • overlay: support min width and min height (#2063) (a695574)
  • overlay-directives: attach and detach events (#1972) (a5eab75)
  • overlay-directives: support fallback positions (#1865) (aa472a0)
  • sidenav: emit event when backdrop is clicked (#1638) (93807ed), closes #1427
  • sidenav: focus capturing (#1695) (b9c3304)
  • slider: keyboard support (#1759) (13b7dd0)
  • slider: vertical mode (#1878) (deb940f)
  • snackbar: add onAction to snackbar ref (#1826) (a40cae9)
  • snackbar: add timeout for snackbar (#1856) (6ce6396)
  • tooltip: show tooltip on longpress; remove delay on mouseleave (#1819) (1552d70)
  • a11y: add wrap mode to key manager (#1796) (3d4abac)

Breaking Changes

  • MdSnackbarConfig no longer takes a ViewContainerRef as a contructor argument because the ViewContainerRef is now optional.

  • Tabs no longer use an md-tab-content directive. Instead, the non-label content of the tab is used as its content. Labels can also be specified via attribute, so the tabs can now be given as:

    <md-tab-group>
      <md-tab label="Overview">
        This is the overview tab
      </md-tab>
      <md-tab label="Details">
        This is the details tab
      </md-tab>
    </md-tab-group>

    You can still use md-tab-label to provide a label template.

Features

Bug Fixes

Performance Improvements

  • progress-circle: improved rendering performance (#1635) (0883fb2)

Breaking Changes

Angular Material has changed from @angular2-material/... packages to a single package under @angular/material. Along with this change, there is a new NgModule, MaterialModule, that contains all of the components. Build tools such as rollup.js can perform tree-shaking to eliminate the code for components that you aren't using.

The addition of theming as also changed the directory structure for bringing the core css into your application. See the new theming guide for more information.

Features

Bug Fixes

Breaking Changes

  • all: we've updated our packaging to match angular/angular's packaging. If you're using SystemJS in your project, you will probably want to switch to using our UMD bundles. Example config:
'@angular2-material/core': {
    format: 'cjs',
    main: 'core.umd.js'
  }

You can see a more detailed example in our demo app's system config.

In addition to this, each component now has an index.js file, so you should now have imports like

import {MdButtonModule} from '@angular2-material/button'

Instead of

import {MdButtonModule} from '@angular2-material/button/button'
  • all: material modules must be included with forRoot() when bootstrapping. See the ngModules guide for more information.
@NgModule({
    imports: [
        MdCoreModule.forRoot(),
        MdRadioModule.forRoot(),
        MdIconModule.forRoot()
    ]
...
});
  • all: material now depends on TypeScript 2.0

  • input: md-input attributes now match the casing of native attributes. Previously they were camel-cased; now they are all lowercase. Example: autoComplete is now autocomplete. See #1066 for a full list.

  • overlay: overlays are now synchronous. This means actions like creating an overlay no longer return a promise.

Bug Fixes

  • button: hover styles no longer applied to disabled buttons (#909) (21e419d), closes #866
  • button: stop using Type from @angular (#991) (97d3ed3)
  • button-toggle: toggle group should not emit an initial change event. (#1144) (e5830d1)
  • card: remove unnecessary intermediate div (#1068) (b5e1e33)
  • checkbox: export TransitionCheckState enum (#1147) (cda90f3)
  • input: make attributes match native ones (#1066) (f3a7b91), closes #1065
  • ngc: _onDragStart/End are called with one param (#1113) (6e5d260), closes #1112
  • ngc: don't emit HTMLElement in JS files (#1061) (32eacd2)
  • rc6: add directives for custom elements that are part of the APIs. (#1121) (2c0dfcb)
  • sidenav: turn off view encapsulation and refactor css (#1114) (97fe211)
  • tabs: change missed md-active to md-tab-active (#1044) (87b6193)

Features

Bug Fixes

  • checkbox: wrong cursor when disabled (#908) (5251c27), closes #907
  • checkbox, slide-toggle: only emit change event if native input emitted one. (#820) (d52e6e0), closes #575
  • gestures: custom recognizers should not inherit twice. (#902) (c68efbd)
  • gestures: ensure drag and pan are recognized with slide (#901) (3179fec)
  • input: ensure all of label displays on safari (#871) (c8303b4), closes #795
  • overlay: lazily create container (#894) (1efbbb9)
  • progress-circle: correct elapsed time calculation (#927) (0b17cd3), closes #926
  • progress-circle: remove performance.now to support non browser envs (#857) (14c1765)
  • progress-circle: remove references to window (#838) (66ddd3a), closes #837
  • radio: only emit change event if native input does. (#911) (23a61ab), closes #791
  • slide-toggle: fix runtime exception for incorrect mousedown binding. (#828) (bbbc87f), closes #828
  • fix type mismatches when offline compiling. (#835) (4bb7790)

Features

Note that NgModules are now the supported way of including the Material components in your app. The MD_XXX_DIRECTIVES constants are now deprecated and will be removed in alpha.8.

  • tooltip: initial tooltip implementation (#799) (f5e2a81)
  • md-slider: initial version for md-slider (#779) (8354750)
  • md-menu initial version for md-menu (more features coming in alpha.8) (#893) (16eb6be) (#855) (e324e47) (#867) (9a32489)
  • ripple: initial mdInkRipple implementation (#681) (47448cb)
  • button: add ripple to md-button (32aa461)
  • input: support autocapitalize and autocorrect attributes (#858) (b2471f2)
  • slide-toggle: add drag functionality to thumb (#750) (25b4f21)

In-progress, not yet released

  • dialog: add styles and ability to close. (#862) (758b851)
  • dialog: initial framework for md-dialog (#761) (9552ed5)

Code health

BREAKING CHANGES

  • radio: radio-button will no longer emit change event on de-select.

Breaking changes

  • MdRadioDispatcher is now MdUniqueSelectionDispatcher and is imported from core
  • Form controls use the new @angular/forms package. To make migration easier, you can alternatively install alpha.5-3, which is the same as alpha.6 without the new forms package. Please see the docs for the new forms module.

Bug Fixes

  • button: add the focus() method to buttons. (#643) (a6e74ce), closes #510
  • button: focus state matches spec (#467) (b24d321)
  • checkbox: checkbox animation works in Safari (#594) (0a9fb83)
  • checkbox: prevent double click events (#672) (afed818), closes #671
  • core: resolve compilation errors for latest Typescript 1.9 (#624) (e366fa0), closes #624
  • demo-app: resolve mapping paths in relative. (#566) (421828a), closes #566
  • forms: update components to new forms module (#745) (653fcee)
  • grid-list: account for gutter in total list height (#545) (b47097d)
  • input: Fix floating label width (#689) (cf2703c), closes #689 #688
  • input: placeholder text is hidden by parent visibility (#680) (b407278), closes #670
  • overlay: add a z-index. (#615) (89ab2f5)
  • progress-bar: determinate state reflects value (#542) (6b86df0), closes #519
  • radio: fix the baseline of radio buttons (#642) (31f0c7f), closes #642
  • radio: model should update before change event is fired (#456) (c923f56), closes #448
  • radio: support aria-label(ledby) on md-radio (#586) (#596) (8ccc49b)
  • release: make resource-inlining regex non-greedy (#653) (e808452)
  • sidenav: md-content now fills height (#703) (e10172c), closes #606
  • sidenav: resolve compilation errors for latest Typescript 1.9 (#627) (f7f0b4a), closes #627
  • slide-toggle: apply typography styles to slide-toggle (#634) (bbd96e8), closes #633
  • slide-toggle: stop change event firing upon init (#713) (f21b2f4), closes #709
  • spinner: omit min/max/value for indeterminate and correctly set mode (#640) (a5944da)
  • tabs: adds support for async tabs (#639) (231467d), closes #574
  • tabs: removes minimum height (#641) (750a8e3), closes #570
  • theme: fix card and list colors for dark themes (#667) (ce27341), closes #667 #350
  • toolbar: disable view encapsulation. (#678) (5c4dc04), closes #676
  • add event object for slide-toggle and checkbox. (#554) (55cc197), closes #552
  • include scss sources in packages (#536) (fd02b10)
  • remove @internal where it would make tsc fail (#538) (efd1be2)
  • remove circular deps and ci check (#608) (fda5617)
  • remove duplicated typing. TS stdlib provides enough for e2e tests (#637) (a68597e)
  • resolve errors w/ Closure Compiler. (#659) (fbdb35b), closes #659
  • visually hidden inputs should not bubble change event (#551) (d037ed3), closes #544

Features

  • grid-list: add header and footer support (43806f6)
  • overlay: add connected overlay directive (#496) (3b527e8)
  • tabs: adds focus/select events (#649) (497a3c1), closes #569
  • tabs: adds support for two-way bindings on selectedIndex (#702) (8df3246), closes #687

Performance Improvements

  • progress-circle: clean up animation on destroy (#617) (63f43bd)

Bug Fixes

  • checkbox: change event should now fire on first change(7a9df1e), closes #481
  • gestures: ensure default gestures are not overwritten by custom gestures(523929c)
  • gestures: export gesture config as part of core (#488)(0d04e01)
  • input: adds blur and focus event support (#449)(f6f5af3), closes #337
  • input: adds support for name property for input element (#452)(f53ffdb), closes #446
  • input: input element should have a different id from outer element (#450)(be5e93a), closes #320
  • input: inputs now work in IE11 (#469)(de2a9f2), closes #336
  • input: make native input background transparent (#468)(d2c6cb8), closes #277
  • input: undo firefox invalid style, fix maxlength in IE (#393)(dfe683b), closes #393 #342 #388
  • input: use the right ID for the label. (#515)(06aa3f1), closes #512
  • list: adds focus state for nav-list items (#502)(34b210c), closes #323
  • list: removes outline from focus state (#511)(91ad1c8)
  • progress-circle: support IE11 (#375)(f22fa86), closes #295
  • radio: refactor tests and fix ngModel (#443)(a25a8da), closes #443
  • radio: remove event global so radio works in node(c32b06d), closes #425
  • radio: unsetting the model will deselect all radio buttons (#441)(8af16e8), closes #327
  • sidenav: add scrolling style to enable momentum scroll(c566242)
  • sidenav: fixes sidenav RTL listening for side mode (#465)(4e1d85e), closes #465 #411
  • sidenav: removes margin transitions (#460)(4b488e1), closes #404
  • sidenav: switches to translate3d() for content positioning (#484)(357ee4c)
  • sidenav: treat opened as boolean attribute. (#444)(e977984), closes #300
  • misc: adds directive constants to all components (#514)(fb89d4f), closes #513
  • misc: correct access-level on many APIs (#437)(358af3b)
  • misc: ensure custom error messages are set(4a25b7f)

Features

  • tabs: adds the md-tab-group component (#376)(ada285c)
  • grid-list: add grid-list component(0f89b8d)
  • slide-toggle add slide-toggle component. (#362)(e09a5bf)
  • checkbox: drive component with native checkbox (#415)(10ac2be), closes #250
  • input: add focus function on host element (#407)(0323844)
  • input: add support for more input attributes (#447)(911bfae)
  • overlay: add connected position strategy (#335)(7f3b1bd)

Bug Fixes

  • button: cleaned up button theming(0672356)
  • checkbox: fix horizontal spacing between checkboxes and radio buttons(f4a7266)
  • sidenav: add min width for empty navs(dbe3cc5)
  • sidenav: prevent content from scrolling when sidenav is open(fea5923)
  • theme: new, more delightful default theme(2f3e9db)
  • update to @angular 2.0.0-rc.0 (#384)(04c8a1f)

Features

  • icon: initial md-icon implementation (#281)(a094a33)
  • card: add alignment shortcuts for md-card-actions(77be2df)
  • grid-list: basic scaffold for grid list (unreleased)(a9e1fa5)
  • list: add icon support(7b3698c)
  • sidenav: add fullscreen mode(aa6c740)

Bug Fixes

  • button: remove ref to Event global (for node) (76e4f56)
  • input: convert values entered based on the type input (e7611ce)
  • progress-circle: actually render on Firefox & Edge (#283) (d24a5b3)
  • sidenav: do not throw when there's no sidenav. (#270) (cc2b223), closes #269

Features

  • progress-bar: initial progress-bar impl. (#130) (c640f0c), closes #40
  • gestures: add basic gesture demos (d4a3cde)
  • input: add support for spellcheck attribute (#316) (dfee018)
  • list: add nav list styles (22c1ea3)
  • list: syntactic sugar for simple nav lists (c21c336)
  • a11y: live-announcer supports using a provided live element (#273) (1a33a5b), closes #267

Bug Fixes

  • button: apply color classes correctly. (62265cc), closes #75 #89 #195
  • checkbox: Cancel spacebar keydown events when component focused (6db3511), closes #162 #181
  • checkbox: Ensure consistent mixedmark rendering across browsers (666cdba), closes #174 #190
  • checkbox: Handle transition when unset checkbox is interacted with (dde9359), closes #183 #227
  • checkbox: Reduce $md-checkbox-transition-duration to 90ms (87e3a32), closes #226 #230
  • checkbox: Remove GPU layer promotion for mark elements (82a22a7)
  • sidenav: Remove deprecated @View (a61e2e9), closes #213
  • radio: export the dispatcher in radio.ts (64cc406)

Features

  • input: add new input component (74d9bc0)
  • input: README.md improvements and autofill support. (b711c2b)
  • list: add list component (fb71eb1)
  • list: add dividers to lists (915dd9b)
  • list: support subheaders in lists (0a9c169)
  • elevation: Add elevation core styles (3e34f7a), closes #222
  • button: add md-icon-button styling. (208cd65), closes #188 #206
  • overlay: add basic core of overlay (f0e1273)
  • overlay: add global position strategy (c8f87a4)
  • overlay: add overlay container & styles (74e3edf)
  • portal: add DomPortalHost (358d923)
  • radio: support ngModel on md-radio-group (6aff4cc), closes #209
  • a11y: add aria live announcer (e99da66), closes #106

Features

  • radio: Radio button component. (d76465b), closes #125

First release of angular2-material!

This inaugural release includes 6 components:

As the alpha process continues, these components will continue to evolve. There will be breaking changes between alpha releases; the alpha releases are here for people that want an early look or who like to live on the edge and are very tolerant of breaking API and behavior changes.