3
3
4
4
import React from 'react' ;
5
5
import classNames from 'classnames' ;
6
+ import _ from '../../../shared/helpers' ;
6
7
7
8
/// ///////////////////////////////////////////
8
9
// Partial(s)
9
10
/// ///////////////////////////////////////////
10
11
11
- export let ProgressBar = props => (
12
+ export const ProgressBar = props => (
12
13
< div
13
14
className = { classNames ( 'slds-progress-bar' , props . className ) }
14
15
aria-valuemin = "0"
15
16
aria-valuemax = "100"
16
17
aria-valuenow = { props . value }
18
+ aria-labelledby = { props [ 'aria-labelledby' ] }
17
19
role = "progressbar"
18
20
>
19
21
< span
@@ -25,6 +27,23 @@ export let ProgressBar = props => (
25
27
</ div >
26
28
) ;
27
29
30
+ export const ProgressBarDescriptive = props => {
31
+ const labelUniqueId = _ . uniqueId ( 'progress-bar-label-id-' ) ;
32
+
33
+ return (
34
+ < div className = { classNames ( props . className ) } >
35
+ < div
36
+ className = "slds-grid slds-grid_align-spread slds-text-color_weak slds-p-bottom_x-small"
37
+ id = { labelUniqueId }
38
+ >
39
+ < span > { props . label } </ span >
40
+ < span aria-hidden = "true" > { `${ props . value } %` } </ span >
41
+ </ div >
42
+ < ProgressBar value = { props . value } aria-labelledby = { labelUniqueId } />
43
+ </ div >
44
+ ) ;
45
+ } ;
46
+
28
47
/// ///////////////////////////////////////////
29
48
// Export
30
49
/// ///////////////////////////////////////////
@@ -58,3 +77,13 @@ export let states = [
58
77
element : < ProgressBar value = "100" />
59
78
}
60
79
] ;
80
+
81
+ export let examples = [
82
+ {
83
+ id : 'progress-bar-descriptive' ,
84
+ label : 'Descriptive Progress Bar' ,
85
+ element : (
86
+ < ProgressBarDescriptive label = "Einstein Setup Assistant" value = "25" />
87
+ )
88
+ }
89
+ ] ;
0 commit comments