superdesk-ui-framework 3.0.35 → 3.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/app/styles/_sd-tag-input.scss +3 -5
  2. package/app/styles/_tag-labels.scss +0 -2
  3. package/app/styles/app.scss +1 -0
  4. package/app/styles/form-elements/_checkbox.scss +3 -0
  5. package/app/styles/form-elements/_input-preview.scss +70 -0
  6. package/app/styles/form-elements/_inputs.scss +10 -14
  7. package/app/styles/primereact/_pr-tag-input.scss +1 -1
  8. package/app-typescript/components/DatePicker.tsx +101 -101
  9. package/app-typescript/components/DurationInput.tsx +76 -76
  10. package/app-typescript/components/Form/InputNew.tsx +1 -1
  11. package/app-typescript/components/Form/InputWrapper.tsx +34 -18
  12. package/app-typescript/components/Input.tsx +38 -62
  13. package/app-typescript/components/MultiSelect.tsx +49 -47
  14. package/app-typescript/components/Select.tsx +13 -22
  15. package/app-typescript/components/SelectPreview.tsx +100 -0
  16. package/app-typescript/components/SelectWithTemplate.tsx +2 -12
  17. package/app-typescript/components/TagInput.tsx +25 -24
  18. package/app-typescript/components/TimePicker.tsx +13 -16
  19. package/app-typescript/components/TreeSelect.tsx +218 -158
  20. package/dist/examples.bundle.js +2400 -2258
  21. package/dist/react/Autocomplete.tsx +32 -31
  22. package/dist/react/DatePicker.tsx +56 -73
  23. package/dist/react/DurationInput.tsx +36 -47
  24. package/dist/react/Inputs.tsx +86 -248
  25. package/dist/react/MultiSelect.tsx +30 -23
  26. package/dist/react/Selects.tsx +12 -44
  27. package/dist/react/TagInputDocs.tsx +15 -21
  28. package/dist/react/TimePicker.tsx +25 -32
  29. package/dist/react/TreeSelect.tsx +97 -90
  30. package/dist/superdesk-ui.bundle.css +85 -18
  31. package/dist/superdesk-ui.bundle.js +1973 -1816
  32. package/dist/vendor.bundle.js +14 -14
  33. package/examples/pages/react/Autocomplete.tsx +32 -31
  34. package/examples/pages/react/DatePicker.tsx +56 -73
  35. package/examples/pages/react/DurationInput.tsx +36 -47
  36. package/examples/pages/react/Inputs.tsx +86 -248
  37. package/examples/pages/react/MultiSelect.tsx +30 -23
  38. package/examples/pages/react/Selects.tsx +12 -44
  39. package/examples/pages/react/TagInputDocs.tsx +15 -21
  40. package/examples/pages/react/TimePicker.tsx +25 -32
  41. package/examples/pages/react/TreeSelect.tsx +97 -90
  42. package/package.json +1 -1
  43. package/react/components/DatePicker.d.ts +2 -12
  44. package/react/components/DatePicker.js +14 -8
  45. package/react/components/DurationInput.d.ts +2 -11
  46. package/react/components/DurationInput.js +14 -4
  47. package/react/components/Form/InputNew.d.ts +1 -1
  48. package/react/components/Form/InputWrapper.d.ts +11 -5
  49. package/react/components/Form/InputWrapper.js +6 -9
  50. package/react/components/Input.d.ts +3 -19
  51. package/react/components/Input.js +8 -21
  52. package/react/components/MultiSelect.d.ts +4 -13
  53. package/react/components/MultiSelect.js +6 -2
  54. package/react/components/Select.d.ts +3 -15
  55. package/react/components/Select.js +7 -8
  56. package/react/components/SelectPreview.d.ts +17 -0
  57. package/react/components/SelectPreview.js +109 -0
  58. package/react/components/SelectWithTemplate.d.ts +2 -11
  59. package/react/components/SelectWithTemplate.js +0 -1
  60. package/react/components/TagInput.d.ts +3 -12
  61. package/react/components/TagInput.js +6 -2
  62. package/react/components/TimePicker.d.ts +2 -11
  63. package/react/components/TimePicker.js +6 -2
  64. package/react/components/TreeSelect.d.ts +5 -11
  65. package/react/components/TreeSelect.js +78 -47
@@ -9,7 +9,6 @@ interface IState {
9
9
  inlineLabel: boolean;
10
10
  required: boolean;
11
11
  disabled: boolean;
12
- invalid: boolean;
13
12
  }
14
13
 
15
14
  export default class AutocompleteDoc extends React.Component<{}, IState> {
@@ -23,9 +22,8 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
23
22
  { name: 'Item 4', value: 'item-4', description: 'Some description for item 4'}
24
23
  ],
25
24
  inlineLabel: false,
26
- required: true,
25
+ required: false,
27
26
  disabled: false,
28
- invalid: false,
29
27
  }
30
28
  }
31
29
 
@@ -84,7 +82,6 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
84
82
  <CheckGroup>
85
83
  <Checkbox checked={this.state.required} label={{ text: 'Required input' }} onChange={(value) => { this.setState({ required: value }) }} />
86
84
  <Checkbox checked={this.state.disabled} label={{ text: 'Disabled input' }} onChange={(value) => { this.setState({ disabled: value }) }} />
87
- <Checkbox checked={this.state.invalid} label={{ text: 'Invalid input' }} onChange={(value) => { this.setState({ invalid: value }) }} />
88
85
  <Checkbox checked={this.state.inlineLabel} label={{ text: 'Label positioned inline' }} onChange={(value) => { this.setState({ inlineLabel: value }) }} />
89
86
  </CheckGroup>
90
87
  </div>
@@ -99,9 +96,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
99
96
  inlineLabel={this.state.inlineLabel}
100
97
  required={this.state.required}
101
98
  disabled={this.state.disabled}
102
- invalid={this.state.invalid}
103
- onChange={() => { }}
104
- onSelect={() => { }} />
99
+ onChange={() => false}
100
+ onSelect={() => false}
101
+ />
105
102
  </div>
106
103
  </div>
107
104
 
@@ -122,9 +119,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
122
119
  inlineLabel="Autocomplete label
123
120
  required={this.state.required}
124
121
  disabled={this.state.disabled}
125
- invalid={this.state.invalid}
126
- onChange={() => { }}
127
- onSelect={() => { }} />
122
+ onChange={() => false}
123
+ onSelect={() => false}
124
+ />
128
125
  `}</Markup.ReactMarkupCode>
129
126
  </Markup.ReactMarkup>
130
127
 
@@ -149,9 +146,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
149
146
  placeholder='Search'
150
147
  required={this.state.required}
151
148
  disabled={this.state.disabled}
152
- invalid={this.state.invalid}
153
- onChange={() => { }}
154
- onSelect={() => { }} />
149
+ onChange={() => false}
150
+ onSelect={() => false}
151
+ />
155
152
  </div>
156
153
  </div>
157
154
 
@@ -173,9 +170,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
173
170
  placeholder='Search'
174
171
  required={this.state.required}
175
172
  disabled={this.state.disabled}
176
- invalid={this.state.invalid}
177
- onChange={() => { }}
178
- onSelect={() => { }} />
173
+ onChange={() => false}
174
+ onSelect={() => false}
175
+ />
179
176
  `}</Markup.ReactMarkupCode>
180
177
  </Markup.ReactMarkup>
181
178
 
@@ -199,9 +196,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
199
196
  inlineLabel={this.state.inlineLabel}
200
197
  required={this.state.required}
201
198
  disabled={this.state.disabled}
202
- invalid={this.state.invalid}
203
- onChange={(value) => { this.setState({ }) }}
204
- onSelect={(value) => { this.setState({ }) }} />
199
+ onChange={(value) => false}
200
+ onSelect={(value) => false}
201
+ />
205
202
  </div>
206
203
  </div>
207
204
 
@@ -236,9 +233,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
236
233
  inlineLabel={this.state.inlineLabel}
237
234
  required={this.state.required}
238
235
  disabled={this.state.disabled}
239
- invalid={this.state.invalid}
240
- onChange={(value) => { this.setState({ }) }}
241
- onSelect={(value) => { this.setState({ }) }} />
236
+ onChange={(value) => false}
237
+ onSelect={(value) => false}
238
+ />
242
239
  `}</Markup.ReactMarkupCode>
243
240
  </Markup.ReactMarkup>
244
241
 
@@ -262,9 +259,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
262
259
  inlineLabel={this.state.inlineLabel}
263
260
  required={this.state.required}
264
261
  disabled={this.state.disabled}
265
- invalid={this.state.invalid}
266
- onChange={(value) => { this.setState({ }) }}
267
- onSelect={(value) => { this.setState({ }) }} />
262
+ onChange={(value) => false}
263
+ onSelect={(value) => false}
264
+ />
268
265
  </div>
269
266
  </div>
270
267
 
@@ -286,9 +283,9 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
286
283
  inlineLabel={this.state.inlineLabel}
287
284
  required={this.state.required}
288
285
  disabled={this.state.disabled}
289
- invalid={this.state.invalid}
290
- onChange={(value) => { this.setState({ }) }}
291
- onSelect={(value) => { this.setState({ }) }} />
286
+ onChange={(value) => false}
287
+ onSelect={(value) => false}
288
+ />
292
289
  `}</Markup.ReactMarkupCode>
293
290
  </Markup.ReactMarkup>
294
291
 
@@ -303,9 +300,13 @@ export default class AutocompleteDoc extends React.Component<{}, IState> {
303
300
  <Prop name='info' isRequired={false} type='string' default='/' description='Hint text' />
304
301
  <Prop name='error' isRequired={false} type='string' default='/' description='Error text' />
305
302
  <Prop name='placeholder' isRequired={false} type='string' default='/' description='Placeholder text for the input field.' />
306
- <Prop name='isSearchField' isRequired={false} type='boolean' default='false'
307
- description='Styles the input as a search field, adds a search icon and the option to clear the field. No visible
308
- lable is present in this option.' />
303
+ <Prop
304
+ name='isSearchField'
305
+ isRequired={false}
306
+ type='boolean'
307
+ default='false'
308
+ description='Styles the input as a search field, adds a search icon and the option to clear the field. No visible lable is present in this option.'
309
+ />
309
310
  <Prop name='inlineLabel' isRequired={false} type='boolean' default='false' description='Position labels as inline' />
310
311
  <Prop name='required' isRequired={false} type='boolean' default='false' description='Mark field as required' />
311
312
  <Prop name='disabled' isRequired={false} type='boolean' default='false' description='Mark field as disabled' />
@@ -1,9 +1,8 @@
1
1
  import * as React from 'react';
2
-
3
2
  import * as Markup from '../../js/react';
4
3
  import {DatePicker, PropsList, Prop, DatePickerISO} from '../../../app-typescript';
5
4
 
6
- class DatePickerExample extends React.PureComponent<{}, {date: Date}> {
5
+ class DatePickerExample extends React.PureComponent<{}, {date: Date | null}> {
7
6
  constructor(props) {
8
7
  super(props);
9
8
 
@@ -14,27 +13,31 @@ class DatePickerExample extends React.PureComponent<{}, {date: Date}> {
14
13
  render() {
15
14
  return (
16
15
  <DatePicker
17
- value={this.state.date}
18
- dateFormat="YYYY-MM-DD"
19
- onChange={(date) => {
20
- this.setState({date});
21
- }}
22
- required
23
- tabindex={1}
24
- label={'This is Label'}
25
- info={'This is info'}
26
- error={'This is error'}
16
+ value={this.state.date}
17
+ dateFormat="YYYY-MM-DD"
18
+ onChange={(date) => {
19
+ this.setState({date});
20
+ }}
21
+ label={'This is Label'}
22
+ info={'This is info'}
23
+ error={'This is error'}
27
24
  />
28
25
  );
29
26
  }
30
27
  }
31
28
 
32
- export default class DatePickerDoc extends React.Component {
29
+ interface IState {
30
+ today: string;
31
+ date: Date | null;
32
+ }
33
+
34
+ export default class DatePickerDoc extends React.Component<{}, IState> {
33
35
  constructor(props) {
34
36
  super(props);
35
37
 
36
38
  this.state = {
37
- today: new Date(),
39
+ today: '',
40
+ date: new Date(),
38
41
  };
39
42
  }
40
43
  render() {
@@ -42,28 +45,13 @@ export default class DatePickerDoc extends React.Component {
42
45
  <section className="docs-page__container">
43
46
  <h2 className="docs-page__h2">Date picker</h2>
44
47
  <Markup.ReactMarkupCodePreview>{`
45
- class DatePickerExample extends React.PureComponent<{}, {date: Date}> {
46
- constructor(props) {
47
- super(props);
48
- this.state = {date: new Date()};
49
- }
50
- render() {
51
- return (
52
- <DatePicker
53
- value={this.state.date}
54
- dateFormat="YYYY-MM-DD"
55
- onChange={(date) => {
56
- this.setState({date});
57
- }}
58
- required
59
- tabindex={1}
60
- label={'This is Label'}
61
- info={'This is info'}
62
- error={'This is error'}
63
- />
64
- );
65
- }
66
- }
48
+ <DatePicker
49
+ value={this.state.date}
50
+ dateFormat="YYYY-MM-DD"
51
+ onChange={(date) => {
52
+ this.setState({date});
53
+ }}
54
+ />
67
55
  `}</Markup.ReactMarkupCodePreview>
68
56
  <Markup.ReactMarkup>
69
57
  <Markup.ReactMarkupPreview>
@@ -74,25 +62,23 @@ export default class DatePickerDoc extends React.Component {
74
62
  <p className="docs-page__paragraph">// DatePickerISO</p>
75
63
  <div className='docs-page__content-row'>
76
64
  <DatePickerISO
77
- value={'2019-01-01'}
78
- dateFormat="YYYY-MM-DD"
79
- onChange={(date) => {
80
- this.setState({date});
81
- }}
82
- tabindex={1}
83
- label={'This is Label'}
84
- info={'This is info'}
85
- error={'This is error'}
65
+ value={'2019-01-01'}
66
+ dateFormat="YYYY-MM-DD"
67
+ onChange={(date) => {
68
+ this.setState({today: date});
69
+ }}
70
+ label={'This is Label'}
71
+ info={'This is info'}
72
+ error={'This is error'}
86
73
  />
87
74
  </div>
88
75
  </Markup.ReactMarkupPreview>
89
76
  <Markup.ReactMarkupCode>{`
90
- <DatePicker
77
+ <DatePicker
91
78
  value={this.state.date}
92
79
  onChange={(date) => {
93
80
  this.setState({date});
94
81
  }}
95
- disabled={false}
96
82
  dateFormat="YYYY-MM-DD"
97
83
  shortcuts={[
98
84
  {label: 'tomorrow', days: 1},
@@ -131,19 +117,17 @@ export default class DatePickerDoc extends React.Component {
131
117
  <Markup.ReactMarkup>
132
118
  <Markup.ReactMarkupPreview>
133
119
  <div className='docs-page__content-row'>
134
- <DatePicker
135
- value={this.state.today}
136
- dateFormat="YYYY-MM-DD"
137
- onChange={(today) => {
138
- this.setState({today});
139
- }}
140
- required
141
- tabindex={1}
142
- label={'This is Label'}
143
- info={'This is info'}
144
- error={'This is error'}
145
- headerButtonBar={[{days: 0, label: 'today'}, {days: 1, label: 'tomorow'}, {days: 2, label: 'in 2 days'}]}
146
- />
120
+ <DatePicker
121
+ value={this.state.date}
122
+ dateFormat="YYYY-MM-DD"
123
+ onChange={(date) => {
124
+ this.setState({date});
125
+ }}
126
+ label={'This is Label'}
127
+ info={'This is info'}
128
+ error={'This is error'}
129
+ headerButtonBar={[{days: 0, label: 'today'}, {days: 1, label: 'tomorow'}, {days: 2, label: 'in 2 days'}]}
130
+ />
147
131
  </div>
148
132
  </Markup.ReactMarkupPreview>
149
133
  <Markup.ReactMarkupCode>{`
@@ -153,8 +137,6 @@ export default class DatePickerDoc extends React.Component {
153
137
  onChange={(date) => {
154
138
  this.setState({date});
155
139
  }}
156
- required
157
- tabindex={1}
158
140
  label={'This is Label'}
159
141
  info={'This is info'}
160
142
  error={'This is error'}
@@ -165,17 +147,18 @@ export default class DatePickerDoc extends React.Component {
165
147
 
166
148
  <h3 className='docs-page__h3'>Props</h3>
167
149
  <PropsList>
168
- <Prop name='value' isRequired={false} type='Date' default='/' description='Item value' />
169
- <Prop name='dateFormat' isRequired={true} type='string' default='/' description='Date format to use, i.e. "MM/DD/YYYY"' />
170
- <Prop name='locale' isRequired={false} type='string' default='/' description='see: https://primefaces.org/primereact/showcase/#/calendar' />
171
- <Prop name='headerButtonBar' isRequired={false} type='Array' default='/' description='Aditional button in header, ex. [{label: "today", days: 0}, {label: "tomorrow", days: 1}]' />
172
- <Prop name='label' isRequired={false} type='string' default='/' description='Input label'/>
173
- <Prop name='info' isRequired={false} type='string' default='/' description='Hint text'/>
174
- <Prop name='error' isRequired={false} type='string' default='/' description='Error text'/>
175
- <Prop name='inlineLabel' isRequired={false} type='boolean' default='false' description='Position labels as inline'/>
176
- <Prop name='required' isRequired={false} type='boolean' default='false' description='Mark field as required'/>
177
- <Prop name='disabled' isRequired={false} type='boolean' default='false' description='Mark field as disabled'/>
178
- <Prop name='invalid' isRequired={false} type='boolean' default='false' description='Mark field as invalid'/>
150
+ <Prop name='value' isRequired={false} type='Date' default='/' description='Value of the component.' />
151
+ <Prop name='dateFormat' isRequired={true} type='string' default='/' description='Date format to use, i.e. "MM/DD/YYYY".' />
152
+ <Prop name='locale' isRequired={false} type='string' default='/' description='see: https://primefaces.org/primereact/showcase/#/calendar.' />
153
+ <Prop name='headerButtonBar' isRequired={false} type='Array' default='/' description='Aditional button in header, ex. [{label: "today", days: 0}, {label: "tomorrow", days: 1}].' />
154
+ <Prop name='onChange' isRequired={true} type='Function' default='/' description='Callback to invoke when value changes.'/>
155
+ <Prop name='label' isRequired={false} type='string' default='/' description='Label of component.' />
156
+ <Prop name='inlineLabel' isRequired={false} type='boolean' default='false' description='Position labels as inline.' />
157
+ <Prop name='tabindex' isRequired={false} type='number' default='/' description='Indicates an element can be focused on, and determines how that focus is handled.'/>
158
+ <Prop name='info' isRequired={false} type='string' default='/' description='Info message of component.' />
159
+ <Prop name='error' isRequired={false} type='string' default='/' description='Error message of component.' />
160
+ <Prop name='required' isRequired={false} type='boolean' default='false' description='Mark field as required.' />
161
+ <Prop name='disabled' isRequired={false} type='boolean' default='false' description='Mark field as disabled.' />
179
162
  </PropsList>
180
163
 
181
164
  <h3 className='docs-page__h3'>Events</h3>
@@ -1,14 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import * as Markup from '../../js/react';
3
- import { Input, Select, CheckGroup, Checkbox, PropsList, Prop } from '../../../app-typescript';
3
+ import { CheckGroup, Checkbox, PropsList, Prop } from '../../../app-typescript';
4
4
  import { DurationInput } from '../../../app-typescript/components/DurationInput';
5
- import { getDurationString } from '../../../app-typescript/components/DurationInput';
6
5
 
7
6
  interface IState {
8
7
  inlineLabel: boolean;
9
8
  required: boolean;
10
9
  disabled: boolean;
11
- invalid: boolean;
12
10
  value: any
13
11
  }
14
12
 
@@ -17,29 +15,22 @@ export default class DurationInputDoc extends React.Component<{}, IState> {
17
15
  super(props);
18
16
  this.state = {
19
17
  inlineLabel: false,
20
- required: true,
18
+ required: false,
21
19
  disabled: false,
22
- invalid: false,
23
20
  value: 3661,
24
21
  }
25
22
  }
26
23
 
27
24
  render() {
28
-
29
25
  return (
30
26
  <section className='docs-page__container'>
31
27
  <h2 className='docs-page__h2'>Duration Input</h2>
32
28
  <Markup.ReactMarkupCodePreview>{`
33
29
  <DurationInput
34
- label='Label'
35
- info='info message'
36
- disabled={this.state.disabled}
37
- required={this.state.required}
38
- invalid={this.state.invalid}
39
- inlineLabel={this.state.inlineLabel}
40
- onChange={(e) => {
41
- console.log(e)
42
- }}
30
+ seconds={this.state.value}
31
+ onChange={(e) => {
32
+ this.setState({value: e})
33
+ }}
43
34
  />
44
35
  `}
45
36
  </Markup.ReactMarkupCodePreview>
@@ -51,24 +42,21 @@ export default class DurationInputDoc extends React.Component<{}, IState> {
51
42
  <CheckGroup>
52
43
  <Checkbox checked={this.state.required} label={{text:'Required input'}} onChange={(value) => {this.setState({required: value})}} />
53
44
  <Checkbox checked={this.state.disabled} label={{text:'Disabled input'}} onChange={(value) => {this.setState({disabled: value})}} />
54
- <Checkbox checked={this.state.invalid} label={{text:'Invalid input'}} onChange={(value) => {this.setState({invalid: value})}} />
55
45
  <Checkbox checked={this.state.inlineLabel} label={{text:'Label positioned inline'}} onChange={(value) => {this.setState({inlineLabel: value})}} />
56
46
  </CheckGroup>
57
47
  </div>
58
48
 
59
49
  <div className='form__row'>
60
50
  <DurationInput
61
- label='Label'
62
- info='info message'
63
- disabled={this.state.disabled}
64
- required={this.state.required}
65
- invalid={this.state.invalid}
66
- inlineLabel={this.state.inlineLabel}
67
- seconds={this.state.value}
68
- onChange={(e) => {
69
- this.setState({value: e})
70
- console.log(e);
71
- }}
51
+ seconds={this.state.value}
52
+ label='Label'
53
+ info='info message'
54
+ disabled={this.state.disabled}
55
+ required={this.state.required}
56
+ inlineLabel={this.state.inlineLabel}
57
+ onChange={(value) => {
58
+ this.setState({value})
59
+ }}
72
60
  />
73
61
  </div>
74
62
  </div>
@@ -76,33 +64,34 @@ export default class DurationInputDoc extends React.Component<{}, IState> {
76
64
  </Markup.ReactMarkupPreview>
77
65
  <Markup.ReactMarkupCode>{`
78
66
  <DurationInput
79
- label='Label'
80
- info='info message'
81
- disabled={this.state.disabled}
82
- required={this.state.required}
83
- invalid={this.state.invalid}
84
- inlineLabel={this.state.inlineLabel}
85
- onChange={(e) => {
86
- console.log(e)
87
- }}
67
+ seconds={this.state.value}
68
+ label='Label'
69
+ info='info message'
70
+ disabled={this.state.disabled}
71
+ required={this.state.required}
72
+ inlineLabel={this.state.inlineLabel}
73
+ onChange={(e) => {
74
+ this.setState({value: e})
75
+ }}
88
76
  />
89
77
  `}</Markup.ReactMarkupCode>
90
78
  </Markup.ReactMarkup>
91
79
 
92
80
  <h3 className='docs-page__h3'>Props</h3>
93
81
  <PropsList>
94
- <Prop name='hours' isRequired={false} type='number' default='00' description='Hours value'/>
95
- <Prop name='minutes' isRequired={false} type='number' default='00' description='Minutes value'/>
96
- <Prop name='seconds' isRequired={false} type='number' default='00' description='Seconds value'/>
97
- <Prop name='label' isRequired={false} type='string' default='/' description='Input label'/>
98
- <Prop name='info' isRequired={false} type='string' default='/' description='Hint text'/>
99
- <Prop name='error' isRequired={false} type='string' default='/' description='Error text'/>
100
- <Prop name='inlineLabel' isRequired={false} type='boolean' default='false' description='Position labels as inline'/>
101
- <Prop name='required' isRequired={false} type='boolean' default='false' description='Mark field as required'/>
102
- <Prop name='disabled' isRequired={false} type='boolean' default='false' description='Mark field as disabled'/>
103
- <Prop name='invalid' isRequired={false} type='boolean' default='false' description='Mark field as invalid'/>
82
+ <Prop name='hours' isRequired={false} type='number' default='00' description='Hours value.'/>
83
+ <Prop name='minutes' isRequired={false} type='number' default='00' description='Minutes value.'/>
84
+ <Prop name='seconds' isRequired={false} type='number' default='00' description='Seconds value.'/>
85
+ <Prop name='onChange' isRequired={true} type='Function' default='/' description='Callback to invoke when value changes.'/>
86
+ <Prop name='label' isRequired={false} type='string' default='/' description='Label of component.' />
87
+ <Prop name='inlineLabel' isRequired={false} type='boolean' default='false' description='Position labels as inline.' />
88
+ <Prop name='tabindex' isRequired={false} type='number' default='/' description='Indicates an element can be focused on, and determines how that focus is handled.'/>
89
+ <Prop name='info' isRequired={false} type='string' default='/' description='Info message of component.' />
90
+ <Prop name='error' isRequired={false} type='string' default='/' description='Error message of component.' />
91
+ <Prop name='required' isRequired={false} type='boolean' default='false' description='Mark field as required.' />
92
+ <Prop name='disabled' isRequired={false} type='boolean' default='false' description='Mark field as disabled.' />
104
93
  </PropsList>
105
94
  </section>
106
95
  )
107
96
  }
108
- }
97
+ }