Skip to content

Commit 2d841d0

Browse files
committed
feat(stepper): Eva theme (#1405)
BREAKING CHANGE: Following theme properties were renamed: stepper-index-size -> stepper-step-index-width stepper-label-font-size -> stepper-step-text-font-size stepper-label-font-weight -> stepper-step-text-font-weight stepper-completed-fg -> stepper-step-completed-text-color stepper-fg -> stepper-step-text-color stepper-step-padding -> stepper-step-content-padding Following theme properties were removed: stepper-accent-color stepper-completed-icon-size stepper-completed-icon-weight NbStepperOrientation changed to type. NbStepperComponent 'disableStepNavigationValue' property removed. Use 'disableStepNavigation' instead.
1 parent 6360442 commit 2d841d0

11 files changed

+155
-134
lines changed

src/framework/theme/components/stepper/_stepper.component.theme.scss

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,77 +10,72 @@
1010

1111
&.horizontal {
1212
.header .step {
13-
width: nb-theme(stepper-index-size);
14-
margin: 0 nb-theme(stepper-index-size) / 2;
13+
width: nb-theme(stepper-step-index-width);
14+
margin: 0 nb-theme(stepper-step-index-width) / 2;
1515
}
1616

1717
.header .connector {
18-
margin-top: nb-theme(stepper-index-size) / 2;
18+
margin: nb-theme(stepper-horizontal-connector-margin);
1919
}
2020
}
2121

2222
&.vertical {
2323
.header .connector {
24-
margin: nb-theme(stepper-index-size) / 2;
24+
margin: nb-theme(stepper-vertical-connector-margin);
2525
}
2626
}
2727

2828
.header {
2929
.connector {
30-
background-color: nb-theme(stepper-fg);
30+
background-color: nb-theme(stepper-connector-background-color);
3131
}
3232

3333
.connector-past {
34-
background-color: nb-theme(stepper-accent-color);
35-
}
36-
37-
.label {
38-
font-size: nb-theme(stepper-label-font-size);
39-
font-weight: nb-theme(stepper-label-font-weight);
40-
color: nb-theme(stepper-fg);
34+
background-color: nb-theme(stepper-connector-completed-background-color);
4135
}
4236

4337
.label-index {
44-
width: nb-theme(stepper-index-size);
45-
height: nb-theme(stepper-index-size);
46-
border-radius: nb-theme(stepper-index-size) / 2;
47-
border: 2px solid nb-theme(stepper-fg);
48-
color: nb-theme(stepper-fg);
49-
font-weight: nb-theme(stepper-label-font-weight);
50-
51-
nb-icon {
52-
font-size: nb-theme(stepper-completed-icon-size);
53-
font-weight: nb-theme(stepper-completed-icon-weight);
54-
}
38+
border-radius: nb-theme(stepper-step-index-border-radius);
39+
border-color: nb-theme(stepper-index-border-color);
40+
border-style: nb-theme(stepper-step-index-border-style);
41+
border-width: nb-theme(stepper-step-index-border-width);
42+
width: nb-theme(stepper-step-index-width);
43+
height: nb-theme(stepper-step-index-width);
5544
}
5645

5746
.step {
47+
color: nb-theme(stepper-step-text-color);
48+
font-family: nb-theme(stepper-step-text-font-family);
49+
font-size: nb-theme(stepper-step-text-font-size);
50+
font-weight: nb-theme(stepper-step-text-font-weight);
51+
line-height: nb-theme(stepper-step-text-line-height);
52+
53+
&.label-index {
54+
border-color: nb-theme(stepper-step-index-border-color);
55+
}
5856

5957
&.selected {
58+
color: nb-theme(stepper-step-active-text-color);
59+
6060
.label-index {
61-
border: 2px solid nb-theme(stepper-accent-color);
62-
color: nb-theme(stepper-accent-color);
63-
}
64-
.label {
65-
color: nb-theme(stepper-accent-color);
61+
border-color: nb-theme(stepper-step-index-active-border-color);
6662
}
6763
}
6864

6965
&.completed {
66+
color: nb-theme(stepper-step-completed-text-color);
67+
7068
.label-index {
71-
background-color: nb-theme(stepper-accent-color);
72-
border: 2px solid nb-theme(stepper-accent-color);
73-
color: nb-theme(stepper-completed-fg);
74-
}
75-
.label {
76-
color: nb-theme(stepper-accent-color);
69+
background-color: nb-theme(stepper-step-index-completed-background-color);
70+
border-color: nb-theme(stepper-step-index-completed-border-color);
71+
color: nb-theme(stepper-step-index-completed-text-color);
7772
}
7873
}
7974
}
8075
}
8176

8277
.step-content {
83-
padding: nb-theme(stepper-step-padding);
78+
padding: nb-theme(stepper-step-content-padding);
8479
}
8580
}
8681
}

src/framework/theme/components/stepper/step.component.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
import {
2-
Component,
3-
forwardRef,
4-
Inject,
5-
Input,
6-
TemplateRef,
7-
ViewChild,
8-
} from '@angular/core';
1+
import { Component, Inject, Input, TemplateRef, ViewChild } from '@angular/core';
92
import { AbstractControl } from '@angular/forms';
103
import { NbStepperComponent } from './stepper.component';
4+
import { NB_STEPPER } from './stepper-tokens';
115
import { convertToBoolProperty } from '../helpers';
126

137
/**
@@ -24,6 +18,8 @@ import { convertToBoolProperty } from '../helpers';
2418
})
2519
export class NbStepComponent {
2620

21+
protected stepper: NbStepperComponent;
22+
2723
/**
2824
* Step content
2925
*
@@ -68,22 +64,21 @@ export class NbStepComponent {
6864
*/
6965
@Input()
7066
get completed(): boolean {
71-
return this.completedValue || this.isCompleted;
67+
return this._completed || this.isCompleted;
7268
}
73-
7469
set completed(value: boolean) {
75-
this.completedValue = convertToBoolProperty(value);
70+
this._completed = convertToBoolProperty(value);
7671
}
72+
protected _completed: boolean = false;
7773

78-
private completedValue: boolean = false;
79-
80-
private get isCompleted() {
74+
protected get isCompleted() {
8175
return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;
8276
}
8377

8478
interacted = false;
8579

86-
constructor(@Inject(forwardRef(() => NbStepperComponent)) private stepper: NbStepperComponent) {
80+
constructor(@Inject(NB_STEPPER) stepper) {
81+
this.stepper = stepper;
8782
}
8883

8984
/**

src/framework/theme/components/stepper/stepper-button.directive.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export class NbStepperNextDirective {
88

99
@Input() @HostBinding('attr.type') type: string = 'submit';
1010

11-
constructor(private stepper: NbStepperComponent) {
11+
constructor(protected stepper: NbStepperComponent) {
1212
}
1313

1414
@HostListener('click')
@@ -24,7 +24,7 @@ export class NbStepperPreviousDirective {
2424

2525
@Input() @HostBinding('attr.type') type: string = 'button';
2626

27-
constructor(private stepper: NbStepperComponent) {
27+
constructor(protected stepper: NbStepperComponent) {
2828
}
2929

3030
@HostListener('click')
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { InjectionToken } from '@angular/core';
2+
3+
export const NB_STEPPER = new InjectionToken('Nebular Stepper Component');

src/framework/theme/components/stepper/stepper.component.scss

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
:host {
2-
&.horizontal .header {
1+
:host(.horizontal) {
2+
.header {
33
.step {
44
flex-direction: column;
55
}
@@ -9,20 +9,24 @@
99
}
1010
}
1111

12-
&.vertical {
13-
display: flex;
14-
height: 100%;
12+
.label-index {
13+
margin-bottom: 10px;
14+
}
15+
}
1516

16-
.header {
17-
flex-direction: column;
17+
:host(.vertical) {
18+
display: flex;
19+
height: 100%;
20+
21+
.header {
22+
flex-direction: column;
1823

19-
.label {
20-
margin: 0 10px;
21-
}
24+
.label {
25+
margin: 0 10px;
26+
}
2227

23-
.connector {
24-
width: 2px;
25-
}
28+
.connector {
29+
width: 2px;
2630
}
2731
}
2832
}
@@ -41,13 +45,13 @@
4145
display: flex;
4246
align-items: center;
4347
cursor: pointer;
48+
4449
&.noninteractive {
4550
cursor: default;
4651
}
4752
}
4853

4954
.label-index {
50-
margin-bottom: 10px;
5155
display: flex;
5256
justify-content: center;
5357
align-items: center;

0 commit comments

Comments
 (0)