diff --git a/public/docs/_examples/style-guide/ts/02-07/app/hero.component.ts b/public/docs/_examples/style-guide/ts/02-07/app/hero.component.ts
new file mode 100644
index 0000000000..c30114e679
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/02-07/app/hero.component.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-hero'
+})
+export class HeroComponent {}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/02-07/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/02-07/app/kitchen-sink.ts
new file mode 100644
index 0000000000..b7b0e8071c
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/02-07/app/kitchen-sink.ts
@@ -0,0 +1,20 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+/*
+* HeroComponent is in the Tour of Heroes feature
+*/
+@Component({
+ selector: 'hero'
+})
+export class HeroComponent {}
+
+/*
+* UsersComponent is in an Admin feature
+*/
+@Component({
+ selector: 'users'
+})
+export class UsersComponent {}
diff --git a/public/docs/_examples/style-guide/ts/02-07/app/users.component.ts b/public/docs/_examples/style-guide/ts/02-07/app/users.component.ts
new file mode 100644
index 0000000000..b9d89cf747
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/02-07/app/users.component.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'admin-users'
+})
+export class UsersComponent {}
+// #enddocregion example
\ No newline at end of file
diff --git a/public/docs/_examples/style-guide/ts/02-08/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/02-08/app/kitchen-sink.ts
new file mode 100644
index 0000000000..cb907cc58c
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/02-08/app/kitchen-sink.ts
@@ -0,0 +1,9 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Directive({
+ selector: '[validate]'
+})
+export class ValidateDirective {}
diff --git a/public/docs/_examples/style-guide/ts/02-08/app/validate.directive.ts b/public/docs/_examples/style-guide/ts/02-08/app/validate.directive.ts
new file mode 100644
index 0000000000..28e2f5ad36
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/02-08/app/validate.directive.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Directive } from 'angular2/core';
+
+// #docregion example
+@Directive({
+ selector: '[tohValidate]'
+})
+export class ValidateDirective {}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-02/app/app.component.html b/public/docs/_examples/style-guide/ts/05-02/app/app.component.html
new file mode 100644
index 0000000000..607d068557
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-02/app/app.component.html
@@ -0,0 +1,2 @@
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-02/app/hero-button.component.ts b/public/docs/_examples/style-guide/ts/05-02/app/hero-button.component.ts
new file mode 100644
index 0000000000..8017f7178a
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-02/app/hero-button.component.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-hero-button'
+})
+export class HeroButtonComponent {}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-02/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-02/app/kitchen-sink.ts
new file mode 100644
index 0000000000..4a93e66480
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-02/app/kitchen-sink.ts
@@ -0,0 +1,9 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Component({
+ selector: 'tohHeroButton'
+})
+export class HeroButtonComponent {}
diff --git a/public/docs/_examples/style-guide/ts/05-03/app/app.component.html b/public/docs/_examples/style-guide/ts/05-03/app/app.component.html
new file mode 100644
index 0000000000..607d068557
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-03/app/app.component.html
@@ -0,0 +1,2 @@
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-03/app/hero-button.component.ts b/public/docs/_examples/style-guide/ts/05-03/app/hero-button.component.ts
new file mode 100644
index 0000000000..8017f7178a
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-03/app/hero-button.component.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-hero-button'
+})
+export class HeroButtonComponent {}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-03/app/kitchen-sink.html b/public/docs/_examples/style-guide/ts/05-03/app/kitchen-sink.html
new file mode 100644
index 0000000000..1838818a6a
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-03/app/kitchen-sink.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-03/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-03/app/kitchen-sink.ts
new file mode 100644
index 0000000000..5dec49546a
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-03/app/kitchen-sink.ts
@@ -0,0 +1,9 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Component({
+ selector: '[tohHeroButton]'
+})
+export class HeroButtonComponent {}
diff --git a/public/docs/_examples/style-guide/ts/05-04/app/heroes.component.ts b/public/docs/_examples/style-guide/ts/05-04/app/heroes.component.ts
new file mode 100644
index 0000000000..031e3a0647
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-04/app/heroes.component.ts
@@ -0,0 +1,14 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-heroes',
+ templateUrl: 'heroes.component.html',
+ styleUrls: ['heroes.component.css']
+})
+export class HeroesComponent implements OnInit {
+ heroes: Hero[];
+ selectedHero: Hero;
+}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-04/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-04/app/kitchen-sink.ts
new file mode 100644
index 0000000000..7e4efee5d6
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-04/app/kitchen-sink.ts
@@ -0,0 +1,54 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Component({
+ selector: 'toh-heroes',
+ template: `
+
+
My Heroes
+
+ -
+ {{hero.id}} {{hero.name}}
+
+
+
+
{{selectedHero.name | uppercase}} is my hero
+
+
+ `,
+ styleUrls: [`
+ .heroes {
+ margin: 0 0 2em 0; list-style-type: none; padding: 0; width: 15em;
+ }
+ .heroes li {
+ cursor: pointer;
+ position: relative;
+ left: 0;
+ background-color: #EEE;
+ margin: .5em;
+ padding: .3em 0;
+ height: 1.6em;
+ border-radius: 4px;
+ }
+ .heroes .badge {
+ display: inline-block;
+ font-size: small;
+ color: white;
+ padding: 0.8em 0.7em 0 0.7em;
+ background-color: #607D8B;
+ line-height: 1em;
+ position: relative;
+ left: -1px;
+ top: -4px;
+ height: 1.8em;
+ margin-right: .8em;
+ border-radius: 4px 0 0 4px;
+ }
+ `]
+})
+export class HeroesComponent implements OnInit {
+ heroes: Hero[];
+ selectedHero: Hero;
+}
diff --git a/public/docs/_examples/style-guide/ts/05-12/app/button.component.ts b/public/docs/_examples/style-guide/ts/05-12/app/button.component.ts
new file mode 100644
index 0000000000..d2fa5cc9f6
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-12/app/button.component.ts
@@ -0,0 +1,13 @@
+// #docregion
+import { Component, Input, Output, EventEmitter } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-button',
+ template: `...`
+})
+export class ButtonComponent {
+ @Output() change = new EventEmitter();
+ @Input() label: string;
+}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-12/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-12/app/kitchen-sink.ts
new file mode 100644
index 0000000000..ea43cbb3f5
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-12/app/kitchen-sink.ts
@@ -0,0 +1,19 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Component({
+ selector: 'toh-button',
+ template: `...`,
+ inputs: [
+ 'label'
+ ],
+ outputs: [
+ 'change'
+ ]
+})
+export class ButtonComponent {
+ change = new EventEmitter();
+ label: string;
+}
diff --git a/public/docs/_examples/style-guide/ts/05-13/app/app.component.html b/public/docs/_examples/style-guide/ts/05-13/app/app.component.html
new file mode 100644
index 0000000000..2c68a453ac
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-13/app/app.component.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-13/app/button.component.ts b/public/docs/_examples/style-guide/ts/05-13/app/button.component.ts
new file mode 100644
index 0000000000..d2fa5cc9f6
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-13/app/button.component.ts
@@ -0,0 +1,13 @@
+// #docregion
+import { Component, Input, Output, EventEmitter } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-button',
+ template: `...`
+})
+export class ButtonComponent {
+ @Output() change = new EventEmitter();
+ @Input() label: string;
+}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-13/app/kitchen-sink.html b/public/docs/_examples/style-guide/ts/05-13/app/kitchen-sink.html
new file mode 100644
index 0000000000..15276d75b8
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-13/app/kitchen-sink.html
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-13/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-13/app/kitchen-sink.ts
new file mode 100644
index 0000000000..f8aa37a99e
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-13/app/kitchen-sink.ts
@@ -0,0 +1,13 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Component({
+ selector: 'toh-button',
+ template: `...`
+})
+export class ButtonComponent {
+ @Output('changeEvent') change = new EventEmitter();
+ @Input('labelAttribute') label: string;
+}
\ No newline at end of file
diff --git a/public/docs/_examples/style-guide/ts/05-14/app/toast.component.ts b/public/docs/_examples/style-guide/ts/05-14/app/toast.component.ts
new file mode 100644
index 0000000000..38b531c054
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-14/app/toast.component.ts
@@ -0,0 +1,40 @@
+// #docregion
+import { Component, OnInit } from 'angular2/core';
+
+@Component({
+ selector: 'my-toast',
+ template: `...`
+})
+// #docregion example
+export class ToastComponent implements OnInit {
+ // public properties
+ message: string;
+ title: string;
+ // private fields
+ private defaults = {
+ title: '',
+ message: 'May the Force be with You'
+ };
+ private toastElement: any;
+ // public methods
+ activate(message = this.defaults.message, title = this.defaults.title) {
+ this.title = title;
+ this.message = message;
+ this.show();
+ }
+ ngOnInit() {
+ this.toastElement = document.getElementById('toh-toast');
+ }
+ // private methods
+ private hide() {
+ this.toastElement.style.opacity = 0;
+ window.setTimeout(() => this.toastElement.style.zIndex = 0, 400);
+ }
+ private show() {
+ console.log(this.message);
+ this.toastElement.style.opacity = 1;
+ this.toastElement.style.zIndex = 9999;
+ window.setTimeout(() => this.hide(), 2500);
+ }
+}
+// #endregion example
diff --git a/public/docs/_examples/style-guide/ts/05-15/app/hero-list.component.ts b/public/docs/_examples/style-guide/ts/05-15/app/hero-list.component.ts
new file mode 100644
index 0000000000..be17520c3d
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-15/app/hero-list.component.ts
@@ -0,0 +1,22 @@
+// #docregion
+import { Component, OnInit } from 'angular2/core';
+
+@Component({
+ selector: 'toh-hero-list',
+ template: `...`
+})
+// #docregion example
+export class HeroListComponent implements OnInit {
+ heroes: Hero[];
+ constructor(private heroService: HeroService) {}
+ getHeros() {
+ this.heroes = [];
+ this.heroService.getHeros()
+ .subscribe(heroes => this.heroes = heroes);
+ }
+ ngOnInit() {
+ this.getHeros();
+ }
+}
+// #enddocregion example
+
diff --git a/public/docs/_examples/style-guide/ts/05-15/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-15/app/kitchen-sink.ts
new file mode 100644
index 0000000000..d63f2b2d4c
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-15/app/kitchen-sink.ts
@@ -0,0 +1,28 @@
+// #docplaster
+// #docregion example
+/**
+ * AVOID THIS PATTERN
+ */
+// #enddocregion example
+
+@Component({
+ selector: 'toh-hero-list',
+ template: `...`
+})
+// #docregion example
+export class HeroListComponent implements OnInit {
+ heroes: Hero[];
+ constructor(private http: Http) {}
+ getHeros() {
+ this.heroes = [];
+ this.http.get(heroesUrl)
+ .map((response: Response) => response.json().data)
+ .catch(this.exceptionService.catchBadResponse)
+ .finally(() => this.spinnerService.hide())
+ .subscribe(heroes => this.heroes = heroes);
+ }
+ ngOnInit() {
+ this.getHeros();
+ }
+}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-16/app/app.component.html b/public/docs/_examples/style-guide/ts/05-16/app/app.component.html
new file mode 100644
index 0000000000..4883a6940a
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-16/app/app.component.html
@@ -0,0 +1,2 @@
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-16/app/hero.component.ts b/public/docs/_examples/style-guide/ts/05-16/app/hero.component.ts
new file mode 100644
index 0000000000..650b718045
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-16/app/hero.component.ts
@@ -0,0 +1,14 @@
+// #docregion
+import { Component, Output, EventEmitter } from 'angular2/core';
+
+@Component({
+ selector: 'toh-hero',
+ template: `...`
+})
+// #docregion example
+export class HeroComponent {
+ @Output() savedTheDay = new EventEmitter();
+}
+// #enddocregion example
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-16/app/kitchen-sink.html b/public/docs/_examples/style-guide/ts/05-16/app/kitchen-sink.html
new file mode 100644
index 0000000000..f0c88fc601
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-16/app/kitchen-sink.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/docs/_examples/style-guide/ts/05-16/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-16/app/kitchen-sink.ts
new file mode 100644
index 0000000000..a1d67b8b6d
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-16/app/kitchen-sink.ts
@@ -0,0 +1,16 @@
+// #docplaster
+// #docregion example
+/**
+ * AVOID THIS PATTERN
+ */
+// #enddocregion example
+
+@Component({
+ selector: 'toh-hero',
+ template: `...`
+})
+// #docregion example
+export class HeroComponent {
+ @Output() onSavedTheDay = new EventEmitter();
+}
+// #enddocregion example
\ No newline at end of file
diff --git a/public/docs/_examples/style-guide/ts/05-17/app/heroes-list.component.ts b/public/docs/_examples/style-guide/ts/05-17/app/heroes-list.component.ts
new file mode 100644
index 0000000000..4143d65217
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-17/app/heroes-list.component.ts
@@ -0,0 +1,22 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+// #docregion example
+@Component({
+ selector: 'toh-heroes-list',
+ template: `
+
+ Our list of heroes:
+
+
+ Total powers: {{totalPowers}}
+ Average power: {{avgPower}}
+
+ `
+})
+export class HeroesListComponent {
+ heroes: Hero[];
+ totalPowers: number;
+ avgPower: number;
+}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/05-17/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/05-17/app/kitchen-sink.ts
new file mode 100644
index 0000000000..803edd5ef5
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/05-17/app/kitchen-sink.ts
@@ -0,0 +1,21 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+@Component({
+ selector: 'toh-heroes-list',
+ template: `
+
+ Our list of heroes:
+
+
+ Total powers: {{totalPowers}}
+ Average power: {{totalPowers / heroes.length}}
+
+ `
+})
+export class HeroesListComponent {
+ heroes: Hero[];
+ totalPowers: number;
+}
diff --git a/public/docs/_examples/style-guide/ts/07-01/app/hero.service.ts b/public/docs/_examples/style-guide/ts/07-01/app/hero.service.ts
new file mode 100644
index 0000000000..f490c07568
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/07-01/app/hero.service.ts
@@ -0,0 +1,13 @@
+// #docregion
+import { Injectable } from 'angular2/core';
+import { Http, Response } from 'angular2/http';
+
+import { Hero } from './hero';
+
+@Injectable()
+export class HeroService {
+ getHeroes() {
+ return this.http.get('api/heroes')
+ .map((response: Response) => response.json().data)
+ }
+}
diff --git a/public/docs/_examples/style-guide/ts/07-03/app/app.component.ts b/public/docs/_examples/style-guide/ts/07-03/app/app.component.ts
new file mode 100644
index 0000000000..6c7ad1d2dd
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/07-03/app/app.component.ts
@@ -0,0 +1,15 @@
+// #docregion
+import { Component } from 'angular2/core';
+
+import { HeroListComponent } from './heroes/hero-list.component';
+import { HeroService } from './shared/hero.service';
+
+@Component({
+ selector: 'toh-app',
+ template: `
+
+ `,
+ directives: [HeroListComponent],
+ providers: [HeroService]
+})
+export class AppComponent {}
diff --git a/public/docs/_examples/style-guide/ts/07-03/app/hero-list.component.ts b/public/docs/_examples/style-guide/ts/07-03/app/hero-list.component.ts
new file mode 100644
index 0000000000..46bea5794f
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/07-03/app/hero-list.component.ts
@@ -0,0 +1,21 @@
+// #docregion
+import { Component, OnInit } from 'angular2/core';
+
+import { HeroService } from './shared/hero.service';
+import { Hero } from './shared/hero';
+
+@Component({
+ selector: 'toh-heroes',
+ template: `
+ {{heroes | json}}
+ `
+})
+export class HeroListComponent implements OnInit{
+ heroes: Hero[] = [];
+
+ constructor(private heroService: HeroService) {}
+
+ ngOnInit() {
+ this.heroService.getHeroes().then(heroes => this.heroes = heroes);
+ }
+}
diff --git a/public/docs/_examples/style-guide/ts/07-04/app/hero-arena.service.ts b/public/docs/_examples/style-guide/ts/07-04/app/hero-arena.service.ts
new file mode 100644
index 0000000000..ffe24de82a
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/07-04/app/hero-arena.service.ts
@@ -0,0 +1,11 @@
+// #docregion
+import { Injectable } from 'angular2/core';
+
+// #docregion example
+@Injectable()
+export class HeroArena {
+ constructor(
+ private heroFactory: HeroFactory,
+ private http: Http) {}
+}
+// #enddocregion example
diff --git a/public/docs/_examples/style-guide/ts/07-04/app/kitchen-sink.ts b/public/docs/_examples/style-guide/ts/07-04/app/kitchen-sink.ts
new file mode 100644
index 0000000000..4b5792f3ae
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/07-04/app/kitchen-sink.ts
@@ -0,0 +1,10 @@
+// #docregion
+/**
+ * AVOID THIS PATTERN
+ */
+
+export class HeroArena {
+ constructor(
+ @Inject(HeroFactory) private heroFactory: HeroFactory,
+ @Inject(Http) private http: Http) {}
+}
diff --git a/public/docs/_examples/style-guide/ts/09-01/app/button.component.ts b/public/docs/_examples/style-guide/ts/09-01/app/button.component.ts
new file mode 100644
index 0000000000..ed53df9ad4
--- /dev/null
+++ b/public/docs/_examples/style-guide/ts/09-01/app/button.component.ts
@@ -0,0 +1,12 @@
+// #docregion
+import {Component, OnInit} from 'angular2/core';
+
+@Component({
+ selector: 'toh-button',
+ template: `