superdesk-ui-framework 3.0.66 → 3.0.68

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 (78) hide show
  1. package/app/styles/components/_list-item.scss +22 -11
  2. package/app-typescript/components/Autocomplete.tsx +9 -3
  3. package/app-typescript/components/Badge.tsx +16 -2
  4. package/app-typescript/components/Dropdown.tsx +3 -1
  5. package/app-typescript/components/DropdownFirst.tsx +14 -2
  6. package/app-typescript/components/DurationInput.tsx +19 -4
  7. package/app-typescript/components/EmptyState.tsx +11 -2
  8. package/app-typescript/components/Layouts/Panel.tsx +12 -1
  9. package/app-typescript/components/Lists/ContentList.tsx +5 -1
  10. package/app-typescript/components/Modal.tsx +10 -1
  11. package/app-typescript/components/Navigation/BottomNav.tsx +9 -2
  12. package/app-typescript/components/Navigation/QuickNavBar.tsx +10 -2
  13. package/app-typescript/components/Navigation/SideBarMenu.tsx +9 -4
  14. package/app-typescript/components/SidebarMenu.tsx +8 -1
  15. package/app-typescript/components/TabList.tsx +5 -1
  16. package/app-typescript/components/TagInput.tsx +4 -1
  17. package/app-typescript/components/ThemeSelector.tsx +13 -2
  18. package/app-typescript/components/TreeMenu.tsx +127 -122
  19. package/app-typescript/components/TreeSelect/TreeSelect.tsx +157 -141
  20. package/app-typescript/components/WithPortal.tsx +49 -0
  21. package/app-typescript/components/avatar/avatar-image.tsx +2 -0
  22. package/app-typescript/components/avatar/avatar.tsx +2 -1
  23. package/dist/examples.bundle.js +1446 -1318
  24. package/dist/playgrounds/planning.html +121 -43
  25. package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +398 -385
  26. package/dist/playgrounds/react-playgrounds/EditorTest.tsx +359 -365
  27. package/dist/playgrounds/react-playgrounds/FirstPlayground.tsx +33 -33
  28. package/dist/playgrounds/react-playgrounds/Multiedit.tsx +227 -231
  29. package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +41 -38
  30. package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +76 -96
  31. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +73 -101
  32. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +788 -729
  33. package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +35 -26
  34. package/dist/playgrounds/react-playgrounds/TestGround.tsx +99 -128
  35. package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +40 -25
  36. package/dist/playgrounds/react-playgrounds/components/GraphicButton.tsx +6 -5
  37. package/dist/playgrounds/react-playgrounds/components/Layout.tsx +0 -2
  38. package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -9
  39. package/dist/playgrounds/react-playgrounds/tsconfig.json +4 -0
  40. package/dist/superdesk-ui.bundle.css +24 -14
  41. package/dist/superdesk-ui.bundle.js +830 -727
  42. package/dist/vendor.bundle.js +14 -14
  43. package/examples/pages/playgrounds/planning.html +121 -43
  44. package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +398 -385
  45. package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +359 -365
  46. package/examples/pages/playgrounds/react-playgrounds/FirstPlayground.tsx +33 -33
  47. package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +227 -231
  48. package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +41 -38
  49. package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +76 -96
  50. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +73 -101
  51. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +788 -729
  52. package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +35 -26
  53. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +99 -128
  54. package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +40 -25
  55. package/examples/pages/playgrounds/react-playgrounds/components/GraphicButton.tsx +6 -5
  56. package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +0 -2
  57. package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -9
  58. package/examples/pages/playgrounds/react-playgrounds/tsconfig.json +4 -0
  59. package/package.json +3 -2
  60. package/react/components/Autocomplete.js +2 -2
  61. package/react/components/Badge.js +1 -1
  62. package/react/components/Dropdown.js +3 -1
  63. package/react/components/DropdownFirst.js +6 -2
  64. package/react/components/DurationInput.js +5 -1
  65. package/react/components/EmptyState.js +2 -1
  66. package/react/components/Lists/ContentList.js +1 -1
  67. package/react/components/Navigation/BottomNav.js +4 -1
  68. package/react/components/Navigation/QuickNavBar.js +2 -1
  69. package/react/components/Navigation/SideBarMenu.js +3 -1
  70. package/react/components/TabList.js +2 -1
  71. package/react/components/TagInput.js +1 -1
  72. package/react/components/TreeSelect/TreeSelect.d.ts +3 -2
  73. package/react/components/TreeSelect/TreeSelect.js +81 -73
  74. package/react/components/WithPortal.d.ts +14 -0
  75. package/react/components/WithPortal.js +69 -0
  76. package/react/components/avatar/avatar.js +2 -1
  77. /package/dist/playgrounds/dummy-data/{items.js → items.ts} +0 -0
  78. /package/examples/pages/playgrounds/dummy-data/{items.js → items.ts} +0 -0
@@ -1,11 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import * as Components from './components/Index';
3
- import { ButtonGroup, Button, NavButton, SubNav, Dropdown, CheckButtonGroup, RadioButtonGroup, Input, Select, Option, Label, Icon, IconButton, Checkbox, GridList, Badge } from '../../../../app-typescript/index';
3
+ import { ButtonGroup, Button, NavButton, SubNav, Dropdown, RadioButtonGroup, Input, Select, Option, Label, Icon, IconButton, Checkbox, GridList, Badge } from '../../../../app-typescript/index';
4
4
  import * as GridElements from '../../../../app-typescript/components/GridItem';
5
5
 
6
6
  import dummy_items from '../dummy-data/items';
7
7
 
8
-
9
8
  interface IProps {
10
9
  children?: React.ReactNode;
11
10
  }
@@ -78,7 +77,9 @@ export class SamsPlayground extends React.Component<IProps, IState> {
78
77
  { icon: 'spike', size: 'big' },
79
78
  { icon: 'personal', size: 'big' },
80
79
  { icon: 'global-search', size: 'big' },
81
- { icon: 'picture', size: 'big', active: true }]} />
80
+ { icon: 'picture', size: 'big', active: true }
81
+ ]}
82
+ />
82
83
 
83
84
  <Components.LayoutContainer>
84
85
  <Components.HeaderPanel>
@@ -94,7 +95,9 @@ export class SamsPlayground extends React.Component<IProps, IState> {
94
95
  { label: 'File archive', onSelect: () => this.setState({ dropDownState: 'File archive' }) },
95
96
  { label: 'AP images', onSelect: () => this.setState({ dropDownState: 'AP archive' }) },
96
97
  ]
97
- }]}>
98
+ }
99
+ ]}
100
+ >
98
101
  <NavButton text={this.state.dropDownState ? this.state.dropDownState : 'All Archives'} onClick={() => false} />
99
102
  </Dropdown>
100
103
  </ButtonGroup>
@@ -108,13 +111,17 @@ export class SamsPlayground extends React.Component<IProps, IState> {
108
111
  <ButtonGroup align='inline'>
109
112
  <NavButton icon='filter-large' onClick={this.handleFilter} />
110
113
  </ButtonGroup>
111
- <RadioButtonGroup value={this.state.itemType} onChange={(value) => this.setState({ itemType: value })}
114
+ <RadioButtonGroup
115
+ value={this.state.itemType}
116
+ onChange={(value) => this.setState({ itemType: value })}
112
117
  options={[
113
- { value: 'itemtype01', label: 'All item types' },
114
- { value: 'itemtype02', label: 'Images only' },
115
- { value: 'itemtype03', label: 'Videos only' },
116
- { value: 'itemtype04', label: 'Documents only' }
117
- ]} group={{padded: true}} />
118
+ { value: 'itemtype01', label: 'All item types' },
119
+ { value: 'itemtype02', label: 'Images only' },
120
+ { value: 'itemtype03', label: 'Videos only' },
121
+ { value: 'itemtype04', label: 'Documents only' }
122
+ ]}
123
+ group={{padded: true}}
124
+ />
118
125
  <ButtonGroup align='end' spaces='no-space'>
119
126
  <Dropdown
120
127
  items={[
@@ -125,7 +132,8 @@ export class SamsPlayground extends React.Component<IProps, IState> {
125
132
  { label: 'Dark', onSelect: () => this.handleTheme('dark-ui')},
126
133
  ]
127
134
  },
128
- ]}>
135
+ ]}
136
+ >
129
137
  <NavButton type='default' icon='adjust' onClick={()=> false} />
130
138
  </Dropdown>
131
139
  <NavButton icon='th-list' onClick={() => false} />
@@ -145,22 +153,22 @@ export class SamsPlayground extends React.Component<IProps, IState> {
145
153
  label='Title'
146
154
  type='text'
147
155
  value=''
148
- error='This is error message'
156
+ info='This is info message'
149
157
  inlineLabel={false}
150
158
  disabled={false}
151
- invalid={false}
152
- onChange={(value) => { }} />
159
+ onChange={() => false}
160
+ />
153
161
  </div>
154
162
  </div>
155
163
  <div className="form__group">
156
164
  <div className="form__item">
157
165
  <Select label='Source'
158
166
  value='Select ingest source...'
159
- error='This is error message'
167
+ info='This is info message'
160
168
  inlineLabel={false}
161
169
  disabled={false}
162
- invalid={false}
163
- onChange={(value) => { }}>
170
+ onChange={() => false}
171
+ >
164
172
  <Option value="option-1">Select ingest source...</Option>
165
173
  <Option value="option-2">Associated Press</Option>
166
174
  <Option value="option-3">Reuters</Option>
@@ -174,11 +182,11 @@ export class SamsPlayground extends React.Component<IProps, IState> {
174
182
  label='Keyword'
175
183
  type='text'
176
184
  value=''
177
- error='This is error message'
185
+ info='This is info message'
178
186
  inlineLabel={false}
179
187
  disabled={false}
180
- invalid={false}
181
- onChange={(value) => { }} />
188
+ onChange={() => false}
189
+ />
182
190
  </div>
183
191
  </div>
184
192
 
@@ -186,12 +194,11 @@ export class SamsPlayground extends React.Component<IProps, IState> {
186
194
  <div className="form__item">
187
195
  <Select label='Usage right'
188
196
  value='--- Not selected ---'
189
- error='This is error message'
190
- info='Dolor in hendrerit.'
197
+ info='This is info message'
191
198
  inlineLabel={false}
192
199
  disabled={false}
193
- invalid={false}
194
- onChange={(value) => { }}>
200
+ onChange={() => false}
201
+ >
195
202
  <Option value="">--- Not selected ---</Option>
196
203
  <Option value="single">Single usage</Option>
197
204
  <Option value="time">Time restricted</Option>
@@ -213,7 +220,7 @@ export class SamsPlayground extends React.Component<IProps, IState> {
213
220
  <Components.MainPanel >
214
221
 
215
222
  <GridList size="small" gap="medium" margin="1">
216
- {dummy_items.map((item, index) =>
223
+ {dummy_items.map((item: any, index: any) =>
217
224
  <GridElements.GridItem locked={item.locked} status={item.status} onClick={this.handlePreview} itemtype={item.type} key={index}>
218
225
  <GridElements.GridItemCheckWrapper>
219
226
  <Checkbox checked={item.selected} label={{text:''}} onChange={(value) => {
@@ -272,7 +279,9 @@ export class SamsPlayground extends React.Component<IProps, IState> {
272
279
  { label: 'Download', icon: 'download', onSelect: () => this.setState({ dropDownState: 'Download' }) },
273
280
  { label: 'Delete', icon: 'trash', onSelect: () => this.setState({ dropDownState: 'Delete' }) },
274
281
  ]
275
- }]}>
282
+ }
283
+ ]}
284
+ >
276
285
  <IconButton ariaValue='dropdown-more-options' icon='dots-vertical' onClick={() => false} />
277
286
  </Dropdown>
278
287
  </div>
@@ -1,13 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import * as Components from './components/Index';
3
- import { Checkbox, RadioGroup, CheckboxButton, RadioButtonGroup, Button, NavButton, SubNav, Dropdown, CheckButtonGroup, Input, Select, Option, Label, Icon, IconButton, CheckGroup, GridList, Badge, ThemeSelector, Container, IconLabel, Tooltip, Spinner, Divider, InputWrapper, DatePicker, TimePicker, InputNew, InputBase, Text, FormRowNew, ButtonGroup, Heading, SearchBar, Modal, BoxedList, BoxedListItem, BoxedListContentRow} from '../../../../app-typescript/index';
4
- import { Carousel } from '../../../../app-typescript/index';
3
+ import { Checkbox, RadioGroup, CheckboxButton, RadioButtonGroup, Button, Dropdown, Input, Label, Icon, IconButton, Badge, ThemeSelector, Container, IconLabel, Tooltip, Spinner, Divider, InputWrapper, InputNew, InputBase, Text, FormRowNew, ButtonGroup, Heading, SearchBar, Modal, BoxedList, BoxedListItem, TimePicker, DatePicker} from '../../../../app-typescript/index';
5
4
  import { FormLabel } from '../../../../app-typescript/components/Form/FormLabel';
6
5
 
7
-
8
- import dummy_items from '../dummy-data/items';
9
-
10
-
11
6
  interface IProps {
12
7
  children?: React.ReactNode;
13
8
  }
@@ -46,7 +41,7 @@ export class TestGround extends React.Component<IProps, IState> {
46
41
  value6: undefined,
47
42
  selctedTheme: 'light',
48
43
  invalid: false,
49
- date: '01/08/2022',
44
+ date: new Date('2022-01-08'),
50
45
  time: '16:50',
51
46
  modalPlanningTemplates: false,
52
47
  }
@@ -72,7 +67,8 @@ export class TestGround extends React.Component<IProps, IState> {
72
67
  contentPadding='medium'
73
68
  contentBg='medium'
74
69
  size='medium'
75
- onHide={() => {this.setState({modalPlanningTemplates: false})}}>
70
+ onHide={() => {this.setState({modalPlanningTemplates: false})}}
71
+ >
76
72
  <div className='modal__sticky-header'>
77
73
  <SearchBar placeholder='Search templates' boxed={true}>
78
74
  <Dropdown
@@ -80,8 +76,9 @@ export class TestGround extends React.Component<IProps, IState> {
80
76
  { label: 'Features', onSelect: () => 1 },
81
77
  { label: 'Sports', onSelect: () => 1 },
82
78
  { label: 'Entertainment', onSelect: () => 1 },
83
- ]}>
84
- All Calendars
79
+ ]}
80
+ >
81
+ All Calendars
85
82
  </Dropdown>
86
83
  </SearchBar>
87
84
  </div>
@@ -108,11 +105,14 @@ export class TestGround extends React.Component<IProps, IState> {
108
105
  { label: 'Action 1', onSelect: () => 1 },
109
106
  { label: 'Action 2', onSelect: () => 1 },
110
107
  { label: 'Action 3', onSelect: () => 1 },
111
- ]}>
112
- Toogle button
108
+ ]}
109
+ >
110
+ Toogle button
113
111
  </Dropdown>
114
112
  </SearchBar>
113
+
115
114
  <hr />
115
+
116
116
  <h3 className="docs-page__h3 sd-margin-y--0">Pagination</h3>
117
117
  <div className='sd-pagination'>
118
118
  <button className='sd-pagination__item sd-pagination__item--start' disabled>
@@ -121,23 +121,18 @@ export class TestGround extends React.Component<IProps, IState> {
121
121
  <button className='sd-pagination__item sd-pagination__item--back' disabled>
122
122
  <Icon name='chevron-left-thin' />
123
123
  </button>
124
-
125
124
  <button className='sd-pagination__item'>1</button>
126
125
  <button className='sd-pagination__item sd-pagination__item--active'>2</button>
127
126
  <button className='sd-pagination__item'>3</button>
128
127
  <button className='sd-pagination__item'>4</button>
129
-
130
128
  <span className='sd-pagination__item sd-pagination__item--more'>...</span>
131
-
132
129
  <button className='sd-pagination__item'>12</button>
133
-
134
130
  <button className='sd-pagination__item sd-pagination__item--forward'>
135
131
  <Icon name='chevron-right-thin' />
136
132
  </button>
137
133
  <button className='sd-pagination__item sd-pagination__item--end'>
138
134
  <Icon name='forward-thin' />
139
135
  </button>
140
-
141
136
  </div>
142
137
 
143
138
  <hr />
@@ -157,17 +152,20 @@ export class TestGround extends React.Component<IProps, IState> {
157
152
 
158
153
  <hr />
159
154
 
160
- <img src="/path/toimage" alt="my image"
155
+ <img
156
+ src="/path/toimage"
157
+ alt="my image"
161
158
  onError={({ currentTarget }) => {
162
159
  currentTarget.onerror = null; // prevents looping
163
160
  currentTarget.src="/illustration--playground.svg";
164
161
  currentTarget.classList.add('broken-img')
165
- }} />
162
+ }}
163
+ />
166
164
 
167
165
  <div className="input-wrap">
168
166
  <FormLabel invalid required={true} state='focused' text="Form Label" forId="input1" />
169
167
  <IconButton size='small' icon="settings" ariaValue="Screen-reader text" onClick={()=> false} />
170
- <InputBase placeholder='Test placeholder' boxedStyle invalid type='text' id="input1" value='' onChange={(value) => {}} />
168
+ <InputBase placeholder='Test placeholder' boxedStyle invalid type='text' id="input1" value='' onChange={() => false} />
171
169
  <div className="input-wrap__message-box">
172
170
  <div className="sd-input__hint">Error message</div>
173
171
  </div>
@@ -179,55 +177,55 @@ export class TestGround extends React.Component<IProps, IState> {
179
177
  <div className="input-wrap input-wrap--boxed">
180
178
  <FormLabel style='boxed' text="Form Label" required={true} forId="input2" />
181
179
  <IconButton size='small' icon="settings" ariaValue="Screen-reader text" onClick={()=> false} />
182
- <InputBase disabled size='medium' placeholder='Test placeholder' boxedStyle type='text' id="input2" value='' onChange={(value) => {}} />
180
+ <InputBase disabled size='medium' placeholder='Test placeholder' boxedStyle type='text' id="input2" value='' onChange={() => false} />
183
181
  <div className="input-wrap__message-box">
184
182
  <div className="sd-input__hint">Error message</div>
185
183
  </div>
186
184
  <span className="sd-input__char-count">0 / 40</span>
187
185
  </div>
188
186
 
189
- <hr />
190
187
  <hr />
191
188
 
192
189
  <InputNew
193
190
  label='test'
194
191
  value=''
195
- onChange={(value) => false}
192
+ onChange={() => false}
196
193
  placeholder='test'
197
194
  required={true}
198
195
  info='Nullam Sollicitudin'
199
196
  maxLength={20}
200
- error='Error message'
201
197
  inlineLabel={true}
202
198
  labelHidden={true}
203
- type='text' />
199
+ type='text'
200
+ />
204
201
 
205
202
  <hr />
203
+
206
204
  <div className='form__group-new'>
207
205
  <Input
208
206
  value=''
209
- onChange={(value) => {}}
207
+ onChange={() => false}
210
208
  type='text'
211
209
  label='Text input'
212
210
  placeholder='Enter text'
213
- disabled={true} />
211
+ disabled={true}
212
+ />
214
213
  <Input value=''
215
- onChange={(value) => {}}
214
+ onChange={() => false}
216
215
  type='text'
217
216
  label='Text input'
218
217
  placeholder='Enter text'
219
- disabled={true} />
220
- {/* <DatePicker
218
+ disabled={true}
219
+ />
220
+ <DatePicker
221
221
  value={this.state.date}
222
+ dateFormat="YYYY-MM-DD"
223
+ disabled={true}
224
+ required={true}
225
+ label='Date'
222
226
  onChange={(date) => {
223
227
  this.setState({date});
224
228
  }}
225
- disabled={true}
226
- dateFormat="DD-MM-YYYY"
227
- label='Date'
228
- info='Nullam Sollicitudin'
229
- error='Error message'
230
- inlineLabel={false}
231
229
  />
232
230
  <TimePicker
233
231
  value={this.state.time}
@@ -237,57 +235,36 @@ export class TestGround extends React.Component<IProps, IState> {
237
235
  onChange={(time) => {
238
236
  this.setState({time});
239
237
  }}
240
- /> */}
238
+ />
241
239
  <Button text="Clear" onClick={()=> false} />
242
240
  <Button text="Cancel" onClick={()=> false} />
243
241
  <Button text="Save" type='primary' onClick={()=> false} />
244
242
  </div>
243
+
245
244
  <hr />
246
245
 
247
246
  <FormRowNew rowLabel='My group label' inlineLabels={true}>
248
247
  <Input
249
248
  value=''
250
- onChange={(value) => {}}
249
+ onChange={() => false}
251
250
  type='text'
252
251
  label='Text input'
253
252
  placeholder='Enter text'
254
253
  inlineLabel={true}
255
254
  labelHidden={true}
256
- disabled={false} />
255
+ disabled={false}
256
+ />
257
257
  <Text size='small' align='center'>To:</Text>
258
258
  <Input
259
259
  value=''
260
- onChange={(value) => {}}
260
+ onChange={() => false}
261
261
  type='text'
262
262
  label='Text input'
263
263
  placeholder='Enter text'
264
264
  inlineLabel={true}
265
265
  labelHidden={true}
266
- disabled={false} />
267
- {/* <DatePicker
268
- value={this.state.date}
269
- onChange={(date) => {
270
- this.setState({date});
271
- }}
272
- // disabled={true}
273
- dateFormat="DD-MM-YYYY"
274
- label='Date'
275
- info='Nullam Sollicitudin'
276
- error='Error message'
277
- inlineLabel={true}
278
- labelHidden={true}
266
+ disabled={false}
279
267
  />
280
- <TimePicker
281
- value={this.state.time}
282
- // disabled={true}
283
- required={true}
284
- inlineLabel={true}
285
- labelHidden={true}
286
- label='Time'
287
- onChange={(time) => {
288
- this.setState({time});
289
- }}
290
- /> */}
291
268
  <Button text="Save" type='primary' onClick={()=> false} />
292
269
  </FormRowNew>
293
270
 
@@ -296,47 +273,31 @@ export class TestGround extends React.Component<IProps, IState> {
296
273
  <FormRowNew>
297
274
  <Input
298
275
  value=''
299
- onChange={(value) => {}}
276
+ onChange={() => false}
300
277
  type='text'
301
278
  label='Text input'
302
279
  placeholder='Enter text'
303
- disabled={false} />
280
+ disabled={false}
281
+ />
304
282
  <Text size='small' align='center'>To:</Text>
305
283
  <Input
306
284
  value=''
307
- onChange={(value) => {}}
285
+ onChange={() => false}
308
286
  type='text'
309
287
  label='Text input'
310
288
  placeholder='Enter text'
311
289
  labelHidden={true}
312
- disabled={false} />
313
- {/* <DatePicker
314
- value={this.state.date}
315
- onChange={(date) => {
316
- this.setState({date});
317
- }}
318
- // disabled={true}
319
- dateFormat="DD-MM-YYYY"
320
- label='Date'
321
- info='Nullam Sollicitudin'
322
- error='Error message'
323
- inlineLabel={false}
324
- /> */}
325
- {/* <TimePicker
326
- value={this.state.time}
327
- // disabled={true}
328
- required={true}
329
- label='Time'
330
- onChange={(time) => {
331
- this.setState({time});
332
- }}
333
- /> */}
290
+ disabled={false}
291
+ />
334
292
  <Button text="Save" type='primary' onClick={()=> false} />
335
293
  </FormRowNew>
336
294
 
337
295
  <hr />
296
+
338
297
  <h3 className="docs-page__h3 sd-margin-y--0">Table list (draggable)</h3>
298
+
339
299
  <hr />
300
+
340
301
  <h4 className="docs-page__h4 sd-margin-y--1">Handles visible</h4>
341
302
  <ul className='table-list table-list--gap-s'>
342
303
  <li className='table-list__item table-list__item--clickable table-list__item--draggable table-list__item--drag-handles-always'>
@@ -414,6 +375,7 @@ export class TestGround extends React.Component<IProps, IState> {
414
375
  </ul>
415
376
 
416
377
  <hr />
378
+
417
379
  <h4 className="docs-page__h4 sd-margin-y--1">Handles hidden</h4>
418
380
  <ul className='table-list table-list--gap-s'>
419
381
  <li className='table-list__item table-list__item--clickable table-list__item--draggable table-list__item--drag-handles-none'>
@@ -491,6 +453,7 @@ export class TestGround extends React.Component<IProps, IState> {
491
453
  </ul>
492
454
 
493
455
  <hr />
456
+
494
457
  <h4 className="docs-page__h4 sd-margin-y--1">Handles on hover</h4>
495
458
  <ul className='table-list table-list--gap-s'>
496
459
  <li className='table-list__item table-list__item--clickable table-list__item--draggable'>
@@ -566,11 +529,13 @@ export class TestGround extends React.Component<IProps, IState> {
566
529
  </div>
567
530
  </li>
568
531
  </ul>
569
- <hr />
532
+
570
533
  <hr />
571
534
 
572
535
  <h3 className="docs-page__h3 sd-margin-y--0 sd-margin-t--3">Table list with items between</h3>
536
+
573
537
  <hr />
538
+
574
539
  <ul className='table-list table-list--contained'>
575
540
  <li className='table-list__item-container'>
576
541
  <div className='table-list__item table-list__item--clickable table-list__item--draggable'>
@@ -658,14 +623,16 @@ export class TestGround extends React.Component<IProps, IState> {
658
623
  </li>
659
624
  </ul>
660
625
 
661
- <hr /><hr />
626
+ <hr />
662
627
 
663
628
  <h3 className="docs-page__h3 sd-margin-y--0">Checkbox</h3>
629
+
664
630
  <hr />
631
+
665
632
  <div className="sd-check__group-new sd-check__group-new--vertical">
666
633
  <Checkbox label={{text: 'Label side not defined'}} onChange={(value) => console.log('value changed', value)} />
667
634
  <Checkbox label={{text: 'Defined label side - right', side: 'end'}} onChange={(value) => console.log('value changed', value)} />
668
- <Checkbox label={{text: 'This checkbox is disabled'}} onChange={(value) => console.log('value changed', value)} disabled={true}/>
635
+ <Checkbox label={{text: 'This checkbox is disabled'}} onChange={(value) => console.log('value changed', value)} disabled={true} />
669
636
  </div>
670
637
 
671
638
  <hr />
@@ -684,10 +651,10 @@ export class TestGround extends React.Component<IProps, IState> {
684
651
  <CheckboxButton label={{text: 'Hell yeah!'}} onChange={(value) => console.log('value changed', value)} />
685
652
  </div>
686
653
 
687
- <hr /><hr />
654
+ <hr />
655
+
688
656
  <h3 className="docs-page__h3 sd-margin-y--0 sd-margin-b--3">Duration input</h3>
689
657
 
690
-
691
658
  <div className="sd-input">
692
659
  <label className="sd-input__label" id="duration01">Input label</label>
693
660
  <div className="sd-input__duration-input" id="id06" aria-describedby="duration01">
@@ -706,48 +673,40 @@ export class TestGround extends React.Component<IProps, IState> {
706
673
 
707
674
  <h3 className="docs-page__h3 sd-margin-y--0 sd-margin-b--3">testiramt</h3>
708
675
 
709
-
710
- <div className="sd-input">
711
- <label className="sd-input__label" id="duration01">Input label</label>
712
- {/* temp */}
713
- <div id="pr_id_1" className="p-dropdown p-component p-inputwrapper p-dropdown-clearable"><div className="p-hidden-accessible"><input type="text" aria-haspopup="listbox" /></div><div className="p-hidden-accessible p-dropdown-hidden-select"><select aria-hidden="true"><option value=""> </option></select></div><span className="p-dropdown-label p-inputtext p-placeholder"><div>Select a color</div></span><div className="p-dropdown-trigger" role="button" aria-haspopup="listbox" aria-expanded="false"><span className="p-dropdown-trigger-icon pi pi-chevron-down p-clickable"></span></div></div>
714
- {/* temp */}
715
-
716
-
717
- <div className="sd-input__char-count">0 / 30</div>
718
- <div className="sd-input__message-box">
719
- <div className="sd-input__hint">This is some hint message</div>
720
- </div>
721
- </div>
722
-
723
676
  <hr />
724
677
 
725
678
  <h3 className="docs-page__h3 sd-margin-t--2 sd-margin-b--0">Radio</h3>
679
+
726
680
  <hr />
681
+
727
682
  <div className="sd-check__group-new">
728
- <RadioGroup value={this.state.value2} options={[
729
- {label: "Radio 1", value: "somevalue1"},
730
- {label: "Radio 2", value: "somevalue2"},
731
- {label: "Radio 3", value: "somevalue3"},
732
- ]} onChange={(value) => this.setState(() => ({ value2: value }))} />
683
+ <RadioGroup
684
+ value={this.state.value2}
685
+ options={[
686
+ {label: "Radio 1", value: "somevalue1"},
687
+ {label: "Radio 2", value: "somevalue2"},
688
+ {label: "Radio 3", value: "somevalue3"},
689
+ ]}
690
+ onChange={(value) => this.setState(() => ({ value2: value }))}
691
+ />
733
692
  </div>
734
693
 
735
694
  <hr />
736
695
 
737
696
  <div className="sd-check__group-new sd-check-button__group--left">
738
- <RadioButtonGroup value={this.state.value3} options={[
739
- {label: "RadioButton with an icon", value: "somevalue4", icon: "th-list"},
740
- {label: "RadioButton with no visible text, only an icon", value: "somevalue5", icon: "th", labelHidden: true},
741
- {label: "Normal RadioButton", value: "somevalue6"},
742
- ]} onChange={(value) => this.setState(() => ({ value3: value }))} />
697
+ <RadioButtonGroup
698
+ value={this.state.value3}
699
+ options={[
700
+ {label: "RadioButton with an icon", value: "somevalue4", icon: "th-list"},
701
+ {label: "RadioButton with no visible text, only an icon", value: "somevalue5", icon: "th", labelHidden: true},
702
+ {label: "Normal RadioButton", value: "somevalue6"},
703
+ ]}
704
+ onChange={(value) => this.setState(() => ({ value3: value }))}
705
+ />
743
706
  </div>
744
707
 
745
-
746
708
  <hr />
747
-
748
- {/* <Carousel></Carousel> */}
749
709
 
750
- <hr />
751
710
  <div className="sd-thumb-carousel" data-theme="dark-ui">
752
711
  <div className="sd-thumb-carousel__header">
753
712
  <h4 className="sd-thumb-carousel__heading">Mountain bike Championships gallery</h4>
@@ -802,7 +761,9 @@ export class TestGround extends React.Component<IProps, IState> {
802
761
  parturient montes, nascetur ridiculus mus.
803
762
  </div>
804
763
  </div>
764
+
805
765
  <hr />
766
+
806
767
  <div className="button-group button-group--comfort">
807
768
  <div className="color-swatch colour-test--1"></div>
808
769
  <div className="color-swatch colour-test--2"></div>
@@ -810,14 +771,21 @@ export class TestGround extends React.Component<IProps, IState> {
810
771
  </div>
811
772
 
812
773
  <hr />
774
+
813
775
  <Container className='sd-padding--4 sd-panel-bg--100 sd-radius--large'>
814
- <ThemeSelector size='small' options={[
815
- {label: 'Light', value: 'light', theme: 'light'},
816
- {label: 'Dark', value: 'dark', theme: 'dark'},
817
- {label: 'High Contrast', value: 'high-contrast', theme: 'contrast-light', disabled: true},
818
- ]} onChange={($event)=>{this.setState({selctedTheme: $event})}} value={this.state.selctedTheme} />
776
+ <ThemeSelector
777
+ size='small'
778
+ options={[
779
+ {label: 'Light', value: 'light', theme: 'light'},
780
+ {label: 'Dark', value: 'dark', theme: 'dark'},
781
+ {label: 'High Contrast', value: 'high-contrast', theme: 'contrast-light', disabled: true},
782
+ ]}
783
+ onChange={($event)=>{this.setState({selctedTheme: $event})}} value={this.state.selctedTheme}
784
+ />
819
785
  </Container>
786
+
820
787
  <hr />
788
+
821
789
  <Container className='sd-padding--4 sd-panel-bg--100 sd-radius--large'>
822
790
  <Button text="Exit" type='primary' onClick={()=> false} />
823
791
  <Divider />
@@ -825,16 +793,19 @@ export class TestGround extends React.Component<IProps, IState> {
825
793
  <Divider />
826
794
  <Button text="Save" type='primary' onClick={()=> false} />
827
795
  </Container>
796
+
828
797
  <hr />
798
+
829
799
  <Container className='sd-padding--4 sd-panel-bg--100 sd-radius--large'>
830
-
831
800
  <InputWrapper
832
801
  label="Label"
833
802
  invalid={false}>
834
803
  <input type='text' />
835
804
  </InputWrapper>
836
805
  </Container>
806
+
837
807
  <hr />
808
+
838
809
  <Container className='sd-padding--4 sd-panel-bg--100 sd-radius--large'>
839
810
  <div className='sd-dropzone__drop-target'>
840
811
  <div className='sd-dropzone__target-border'></div>