superdesk-ui-framework 2.4.14 → 2.4.18

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 (154) hide show
  1. package/app/index.js +1 -0
  2. package/app/scripts/modals.js +22 -9
  3. package/app/styles/_accessibility.scss +3 -2
  4. package/app/styles/_buttons.scss +17 -0
  5. package/app/styles/_modals.scss +23 -17
  6. package/app/styles/_tooltips.scss +66 -0
  7. package/app/styles/app.scss +1 -0
  8. package/app/styles/components/_sd-toaster.scss +6 -5
  9. package/app/styles/form-elements/_inputs.scss +1 -0
  10. package/app/styles/form-elements/_select-grid.scss +77 -0
  11. package/app/styles/pr-superdesk-theme.scss +3 -1
  12. package/app/styles/primereact/_pr-menu.scss +38 -0
  13. package/app/styles/primereact/_pr-skeleton.scss +35 -0
  14. package/app/styles/variables/_colors.scss +30 -18
  15. package/app-typescript/components/Button.tsx +2 -2
  16. package/app-typescript/components/Dropdown.tsx +0 -1
  17. package/app-typescript/components/DropdownFirst.tsx +2 -2
  18. package/app-typescript/components/IconPicker.tsx +277 -0
  19. package/app-typescript/components/Input.tsx +8 -3
  20. package/app-typescript/components/ListItemLoader.tsx +30 -0
  21. package/app-typescript/components/Menu.tsx +149 -0
  22. package/app-typescript/components/PropsList.tsx +2 -2
  23. package/app-typescript/components/Radio.tsx +19 -10
  24. package/app-typescript/components/Select.tsx +6 -3
  25. package/app-typescript/components/SelectGrid.tsx +233 -0
  26. package/app-typescript/components/SelectWithTemplate.tsx +0 -2
  27. package/app-typescript/components/Skeleton.tsx +48 -0
  28. package/app-typescript/components/Tag.tsx +2 -2
  29. package/app-typescript/components/Toast.tsx +31 -5
  30. package/app-typescript/components/ToastMessage.tsx +9 -16
  31. package/app-typescript/components/ToastText.tsx +2 -4
  32. package/app-typescript/components/ToastWrapper.tsx +4 -4
  33. package/app-typescript/components/Togglebox.tsx +108 -0
  34. package/app-typescript/components/Tooltip.tsx +25 -1
  35. package/app-typescript/index.ts +8 -0
  36. package/dist/components/modals.html +180 -4
  37. package/dist/examples.bundle.css +52 -36
  38. package/dist/examples.bundle.js +5775 -3059
  39. package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +14 -1
  40. package/dist/react/Alerts.tsx +4 -4
  41. package/dist/react/Autocomplete.tsx +17 -17
  42. package/dist/react/Badges.tsx +4 -4
  43. package/dist/react/BigIconFont.tsx +3 -3
  44. package/dist/react/ButtonGroups.tsx +6 -6
  45. package/dist/react/Buttons.tsx +11 -11
  46. package/dist/react/Carousel.tsx +15 -15
  47. package/dist/react/Checkboxs.tsx +10 -10
  48. package/dist/react/DatePicker.tsx +6 -6
  49. package/dist/react/Dropdowns.tsx +15 -15
  50. package/dist/react/EmptyStates.tsx +4 -4
  51. package/dist/react/GridItem.tsx +8 -8
  52. package/dist/react/GridList.tsx +3 -3
  53. package/dist/react/IconButtons.tsx +3 -3
  54. package/dist/react/IconFont.tsx +10 -9
  55. package/dist/react/IconLabels.tsx +4 -4
  56. package/dist/react/IconPicker.tsx +65 -0
  57. package/dist/react/Index.tsx +27 -2
  58. package/dist/react/Inputs.tsx +29 -11
  59. package/dist/react/Labels.tsx +6 -6
  60. package/dist/react/LeftNavigations.tsx +6 -6
  61. package/dist/react/ListItems.tsx +34 -0
  62. package/dist/react/Menu.tsx +159 -0
  63. package/dist/react/Modal.tsx +9 -9
  64. package/dist/react/NavButtons.tsx +7 -7
  65. package/dist/react/Popover.tsx +5 -5
  66. package/dist/react/Radios.tsx +29 -29
  67. package/dist/react/SelectGrid.tsx +121 -0
  68. package/dist/react/Selects.tsx +31 -9
  69. package/dist/react/Switch.tsx +5 -5
  70. package/dist/react/Tabs.tsx +12 -12
  71. package/dist/react/TimePicker.tsx +4 -4
  72. package/dist/react/Toasts.tsx +44 -56
  73. package/dist/react/Togglebox.tsx +51 -0
  74. package/dist/react/Tooltips.tsx +48 -4
  75. package/dist/superdesk-ui.bundle.css +3774 -96
  76. package/dist/superdesk-ui.bundle.js +4503 -2050
  77. package/dist/vendor.bundle.js +53312 -53308
  78. package/examples/pages/components/modals.html +180 -4
  79. package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +14 -1
  80. package/examples/pages/react/Alerts.tsx +4 -4
  81. package/examples/pages/react/Autocomplete.tsx +17 -17
  82. package/examples/pages/react/Badges.tsx +4 -4
  83. package/examples/pages/react/BigIconFont.tsx +3 -3
  84. package/examples/pages/react/ButtonGroups.tsx +6 -6
  85. package/examples/pages/react/Buttons.tsx +11 -11
  86. package/examples/pages/react/Carousel.tsx +15 -15
  87. package/examples/pages/react/Checkboxs.tsx +10 -10
  88. package/examples/pages/react/DatePicker.tsx +6 -6
  89. package/examples/pages/react/Dropdowns.tsx +15 -15
  90. package/examples/pages/react/EmptyStates.tsx +4 -4
  91. package/examples/pages/react/GridItem.tsx +8 -8
  92. package/examples/pages/react/GridList.tsx +3 -3
  93. package/examples/pages/react/IconButtons.tsx +3 -3
  94. package/examples/pages/react/IconFont.tsx +10 -9
  95. package/examples/pages/react/IconLabels.tsx +4 -4
  96. package/examples/pages/react/IconPicker.tsx +65 -0
  97. package/examples/pages/react/Index.tsx +27 -2
  98. package/examples/pages/react/Inputs.tsx +29 -11
  99. package/examples/pages/react/Labels.tsx +6 -6
  100. package/examples/pages/react/LeftNavigations.tsx +6 -6
  101. package/examples/pages/react/ListItems.tsx +34 -0
  102. package/examples/pages/react/Menu.tsx +159 -0
  103. package/examples/pages/react/Modal.tsx +9 -9
  104. package/examples/pages/react/NavButtons.tsx +7 -7
  105. package/examples/pages/react/Popover.tsx +5 -5
  106. package/examples/pages/react/Radios.tsx +29 -29
  107. package/examples/pages/react/SelectGrid.tsx +121 -0
  108. package/examples/pages/react/Selects.tsx +31 -9
  109. package/examples/pages/react/Switch.tsx +5 -5
  110. package/examples/pages/react/Tabs.tsx +12 -12
  111. package/examples/pages/react/TimePicker.tsx +4 -4
  112. package/examples/pages/react/Toasts.tsx +44 -56
  113. package/examples/pages/react/Togglebox.tsx +51 -0
  114. package/examples/pages/react/Tooltips.tsx +48 -4
  115. package/package.json +2 -2
  116. package/patches/@superdesk+primereact+5.0.2-4.patch +13 -0
  117. package/react/components/Button.d.ts +1 -1
  118. package/react/components/Button.js +2 -1
  119. package/react/components/Dropdown.js +0 -1
  120. package/react/components/DropdownFirst.js +1 -1
  121. package/react/components/IconPicker.d.ts +24 -0
  122. package/react/components/IconPicker.js +283 -0
  123. package/react/components/Input.d.ts +2 -1
  124. package/react/components/Input.js +4 -1
  125. package/react/components/ListItemLoader.d.ts +4 -0
  126. package/react/components/ListItemLoader.js +62 -0
  127. package/react/components/Menu.d.ts +59 -0
  128. package/react/components/Menu.js +92 -0
  129. package/react/components/PropsList.d.ts +1 -1
  130. package/react/components/PropsList.js +1 -1
  131. package/react/components/Radio.d.ts +8 -7
  132. package/react/components/Radio.js +1 -1
  133. package/react/components/Select.d.ts +2 -1
  134. package/react/components/Select.js +4 -2
  135. package/react/components/SelectGrid.d.ts +45 -0
  136. package/react/components/SelectGrid.js +179 -0
  137. package/react/components/SelectWithTemplate.js +0 -1
  138. package/react/components/Skeleton.d.ts +30 -0
  139. package/react/components/Skeleton.js +55 -0
  140. package/react/components/Tag.js +1 -1
  141. package/react/components/Toast.d.ts +15 -0
  142. package/react/components/Toast.js +69 -0
  143. package/react/components/ToastMessage.d.ts +18 -0
  144. package/react/components/ToastMessage.js +66 -0
  145. package/react/components/ToastText.d.ts +9 -0
  146. package/react/components/ToastText.js +42 -0
  147. package/react/components/ToastWrapper.d.ts +31 -0
  148. package/react/components/ToastWrapper.js +116 -0
  149. package/react/components/Togglebox.d.ts +27 -0
  150. package/react/components/Togglebox.js +76 -0
  151. package/react/components/Tooltip.d.ts +2 -5
  152. package/react/components/Tooltip.js +48 -7
  153. package/react/index.d.ts +7 -0
  154. package/react/index.js +14 -0
@@ -378,26 +378,26 @@ export default class GridItemDoc extends React.Component<{}, IState> {
378
378
 
379
379
  <h3 className="docs-page__h3">GridItem Props</h3>
380
380
  <PropsList>
381
- <Prop name='status' isRequered={false} type='actioning | selected | activated | string' default='/' description='Specifies the status of the item. Multiple values are possible.'/>
382
- <Prop name='itemtype' isRequered={false} type='audio | composite | file | graphic | photo | slideshow | text | video | string' default='file' description='Specifies the file type of the item.'/>
383
- <Prop name='fetched' isRequered={false} type='boolean' default='false' description='If set to true it will add a visual marker in the content area indicating that the item was fetched.'/>
384
- <Prop name='locked' isRequered={false} type='boolean' default='false' description='Visual indication if the item is locked (red border at the bottom).'/>
385
- <Prop name='onClick' isRequered={false} type='function' default='false' description='Callback fired when when the item is pressed. Should be added only if there is a click action on the whole item. Adds pointer cursor and hover action to the item if present.'/>
381
+ <Prop name='status' isRequired={false} type='actioning | selected | activated | string' default='/' description='Specifies the status of the item. Multiple values are possible.'/>
382
+ <Prop name='itemtype' isRequired={false} type='audio | composite | file | graphic | photo | slideshow | text | video | string' default='file' description='Specifies the file type of the item.'/>
383
+ <Prop name='fetched' isRequired={false} type='boolean' default='false' description='If set to true it will add a visual marker in the content area indicating that the item was fetched.'/>
384
+ <Prop name='locked' isRequired={false} type='boolean' default='false' description='Visual indication if the item is locked (red border at the bottom).'/>
385
+ <Prop name='onClick' isRequired={false} type='function' default='false' description='Callback fired when when the item is pressed. Should be added only if there is a click action on the whole item. Adds pointer cursor and hover action to the item if present.'/>
386
386
  </PropsList>
387
387
 
388
388
  <h3 className="docs-page__h3">GridItemFooterBlock Props</h3>
389
389
  <PropsList>
390
- <Prop name='align' isRequered={false} type='left | right' default='left' description='Sets the alignment of items inside the footer. Must be placed inside the GridItemFooter component.'/>
390
+ <Prop name='align' isRequired={false} type='left | right' default='left' description='Sets the alignment of items inside the footer. Must be placed inside the GridItemFooter component.'/>
391
391
  </PropsList>
392
392
 
393
393
  <h3 className="docs-page__h3">GridItemFooterActions Props</h3>
394
394
  <PropsList>
395
- <Prop name='autohide' isRequered={false} type='boolean' default='true' description='Action buttons in the footer are by default hidden and revealed only when the cursor hovers the item. Set to false to make the action buttons always visible.'/>
395
+ <Prop name='autohide' isRequired={false} type='boolean' default='true' description='Action buttons in the footer are by default hidden and revealed only when the cursor hovers the item. Set to false to make the action buttons always visible.'/>
396
396
  </PropsList>
397
397
 
398
398
  <h3 className="docs-page__h3">GridItemTime Props</h3>
399
399
  <PropsList>
400
- <Prop name='time' isRequered={true} type='sring' default='/' description='Sets the value of the time component.'/>
400
+ <Prop name='time' isRequired={true} type='sring' default='/' description='Sets the value of the time component.'/>
401
401
  </PropsList>
402
402
 
403
403
 
@@ -95,9 +95,9 @@ export default class GridListDoc extends React.Component {
95
95
 
96
96
  <h3 className="docs-page__h3">Props</h3>
97
97
  <PropsList>
98
- <Prop name='size' isRequered={false} type='x-small | small | medium | large' default='small' description='Specifies the size of the items in the grid. '/>
99
- <Prop name='gap' isRequered={false} type='small | medium | large | x-large' default='small' description='Defines the gap between the items inside the Grid list. '/>
100
- <Prop name='margin' isRequered={false} type='0 | 1 | 2 | 3' default='3' description='Defines the margin around the Grid list. The values are based on multipliers of the the $sd-base-increment (equal to 8px). Setting the value to 3 results in a margin of 24px.'/>
98
+ <Prop name='size' isRequired={false} type='x-small | small | medium | large' default='small' description='Specifies the size of the items in the grid. '/>
99
+ <Prop name='gap' isRequired={false} type='small | medium | large | x-large' default='small' description='Defines the gap between the items inside the Grid list. '/>
100
+ <Prop name='margin' isRequired={false} type='0 | 1 | 2 | 3' default='3' description='Defines the margin around the Grid list. The values are based on multipliers of the the $sd-base-increment (equal to 8px). Setting the value to 3 results in a margin of 24px.'/>
101
101
  </PropsList>
102
102
 
103
103
  </section>
@@ -81,9 +81,9 @@ export default class IconButtonDoc extends React.Component {
81
81
 
82
82
  <h3 className="docs-page__h3">Props</h3>
83
83
  <PropsList>
84
- <Prop name='icon' isRequered={false} type='string' default='/' description='Icon class name without the icon- part.'/>
85
- <Prop name='ariaValue' isRequered={true} type='string' default='/' description='Description for screen readers'/>
86
- <Prop name='size' isRequered={false} type='small' default='normal' description='Creates an IconButton with a smaller footprint.'/>
84
+ <Prop name='icon' isRequired={false} type='string' default='/' description='Icon class name without the icon- part.'/>
85
+ <Prop name='ariaValue' isRequired={true} type='string' default='/' description='Description for screen readers'/>
86
+ <Prop name='size' isRequired={false} type='small' default='normal' description='Creates an IconButton with a smaller footprint.'/>
87
87
  </PropsList>
88
88
  </section>
89
89
  )
@@ -3,19 +3,20 @@ import * as Markup from "../../js/react";
3
3
 
4
4
  import { Icon, Prop, PropsList } from '../../../app-typescript';
5
5
 
6
+ //@ts-ignore
6
7
  import * as iconFont from '../../../app/styles/_icon-font.scss';
7
8
 
8
- export default class IconFontDoc extends React.PureComponent{
9
- render(){
9
+ export default class IconFontDoc extends React.PureComponent {
10
+ render() {
10
11
  const array = iconFont.icon.split(', ');
11
12
  const icons = array.map((icon, index) =>
12
13
  <li key={index}>
13
- <Icon name={icon}/>
14
+ <Icon name={icon} />
14
15
  <span>{icon}</span>
15
16
  </li>
16
- );
17
- return(
18
- <section className="docs-page__container">
17
+ );
18
+ return (
19
+ <section className="docs-page__container">
19
20
  <h2 className="docs-page__h2 docs-page__text-align--center">Icon font</h2>
20
21
  <Markup.ReactMarkupCodePreview>{`
21
22
  <Icon name="photo" />
@@ -27,9 +28,9 @@ export default class IconFontDoc extends React.PureComponent{
27
28
 
28
29
  <h3 className="docs-page__h3">Props</h3>
29
30
  <PropsList>
30
- <Prop name='name' isRequered={false} type='string' default='/' description='Icon name value.' />
31
- <Prop name='type' isRequered={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.)' />
32
- <Prop name='size' isRequered={false} type='small | big' default='small' description='Specifies a small or big size of Icon.' />
31
+ <Prop name='name' isRequired={false} type='string' default='/' description='Icon name value.' />
32
+ <Prop name='type' isRequired={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.)' />
33
+ <Prop name='size' isRequired={false} type='small | big' default='small' description='Specifies a small or big size of Icon.' />
33
34
  </PropsList>
34
35
  </section>);
35
36
  }
@@ -59,10 +59,10 @@ export default class IconLabelDoc extends React.Component {
59
59
 
60
60
  <h3 className="docs-page__h3">Props</h3>
61
61
  <PropsList>
62
- <Prop name='text' isRequered={true} type='string' default='/' description='IconLabel text value.'/>
63
- <Prop name='type' isRequered={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.).'/>
64
- <Prop name='icon' isRequered={false} type='string' default='/' description='Icon class name without the icon- part.'/>
65
- <Prop name='style' isRequered={false} type='basic | translucent' default='basic' description='Defines the style of the label (basic or translucent).'/>
62
+ <Prop name='text' isRequired={true} type='string' default='/' description='IconLabel text value.'/>
63
+ <Prop name='type' isRequired={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.).'/>
64
+ <Prop name='icon' isRequired={false} type='string' default='/' description='Icon class name without the icon- part.'/>
65
+ <Prop name='style' isRequired={false} type='basic | translucent' default='basic' description='Defines the style of the label (basic or translucent).'/>
66
66
  </PropsList>
67
67
  </section>
68
68
  )
@@ -0,0 +1,65 @@
1
+ import * as React from "react";
2
+ import * as Markup from "../../js/react";
3
+ import { IconPicker, PropsList, Prop } from "../../../app-typescript";
4
+
5
+ const IconPickerDocs = () => {
6
+
7
+ const [value, setValue] = React.useState('amp');
8
+
9
+ return (
10
+ <section className="docs-page__container">
11
+ <h2 className="docs-page__h2">Icon Picker</h2>
12
+ <Markup.ReactMarkupCodePreview>{`
13
+ <IconPicker
14
+ label="Icon"
15
+ filterPlaceholder="Search..."
16
+ translateFunction={(text: string): string => text}
17
+ value={value}
18
+ onChange={(value) => {
19
+ setValue(value);
20
+ }}
21
+ />
22
+ `}
23
+ </Markup.ReactMarkupCodePreview>
24
+ <Markup.ReactMarkup>
25
+ <Markup.ReactMarkupPreview>
26
+ <IconPicker
27
+ label="Icon"
28
+ filterPlaceholder="Search..."
29
+ translateFunction={(text: string): string => text}
30
+ value={value}
31
+ onChange={(value) => {
32
+ setValue(value);
33
+ }}
34
+ />
35
+ </Markup.ReactMarkupPreview>
36
+ <Markup.ReactMarkupCode>{`
37
+
38
+ const [value, setValue] = React.useState("amp");
39
+ ...
40
+ <IconPicker
41
+ label="Icon"
42
+ filterPlaceholder="Search..."
43
+ translateFunction={(text: string): string => text}
44
+ value={value}
45
+ onChange={(value) => {
46
+ setValue(value);
47
+ }}
48
+ />
49
+ `}</Markup.ReactMarkupCode>
50
+ </Markup.ReactMarkup>
51
+
52
+ <h3 className="docs-page__h3">Props</h3>
53
+ <PropsList>
54
+ <Prop name='label' isRequired={false} type='string' default='Icon' description='Select label' />
55
+ <Prop name='filterPlaceholder' isRequired={false} type='string' default='Search...' description='Filter placeholder' />
56
+ <Prop name='translateFunction' isRequired={false} type='function' default='(text) => text' description='eg: gettext' />
57
+ <Prop name='value' isRequired={true} type='string' default='null' description='Current value' />
58
+ <Prop name='onChange' isRequired={true} type='Function' default='null' description='Callback onChange event ' />
59
+ </PropsList>
60
+
61
+ </section>
62
+ )
63
+ }
64
+
65
+ export default IconPickerDocs;
@@ -40,10 +40,15 @@ import GridListDoc from './GridList';
40
40
  import GridItemDoc from './GridItem';
41
41
  import ModalDoc from './Modal';
42
42
  import CarouselDoc from './Carousel';
43
+ import ToggleboxDocs from './Togglebox';
44
+ import ListItemsDoc from './ListItems';
45
+ import SelectGridDocs from './SelectGrid';
46
+ import IconPickerDocs from "./IconPicker";
43
47
 
44
48
  import * as Playgrounds from '../playgrounds/react-playgrounds/Index';
45
- import {SelectWithTemplateDocs} from './SelectWithTemplate';
46
- import {PopoverDoc} from './Popover';
49
+ import { SelectWithTemplateDocs } from './SelectWithTemplate';
50
+ import { PopoverDoc } from './Popover';
51
+ import { MenuDocs } from './Menu';
47
52
 
48
53
  const pages = {
49
54
  basicComponents: {
@@ -96,6 +101,9 @@ const pages = {
96
101
  },
97
102
  'carousel': {
98
103
  name: 'Carousel'
104
+ },
105
+ 'menu': {
106
+ name: 'Menu',
99
107
  }
100
108
  }
101
109
  },
@@ -130,6 +138,12 @@ const pages = {
130
138
  'grid-list': {
131
139
  name: 'Grid List'
132
140
  },
141
+ "togglebox": {
142
+ name: "Togglebox"
143
+ },
144
+ 'list-items': {
145
+ name: 'List items'
146
+ },
133
147
  }
134
148
  },
135
149
  formComponents: {
@@ -147,6 +161,9 @@ const pages = {
147
161
  'select': {
148
162
  name: 'Select',
149
163
  },
164
+ 'select-grid': {
165
+ name: 'Select Grid',
166
+ },
150
167
  'select-with-template': {
151
168
  name: 'Select with template',
152
169
  },
@@ -156,6 +173,9 @@ const pages = {
156
173
  'time-picker': {
157
174
  name: 'Time Picker',
158
175
  },
176
+ 'icon-picker': {
177
+ name: 'Icon Picker',
178
+ },
159
179
  'switch': {
160
180
  name: 'Switch'
161
181
  },
@@ -221,6 +241,11 @@ class ReactDoc extends React.Component {
221
241
  <Route path="/react/grid-item" component={GridItemDoc} />
222
242
  <Route path="/react/modal" component={ModalDoc} />
223
243
  <Route path="/react/carousel" component={CarouselDoc} />
244
+ <Route path="/react/menu" component={MenuDocs} />
245
+ <Route path="/react/togglebox" component={ToggleboxDocs} />
246
+ <Route path="/react/list-items" component={ListItemsDoc} />
247
+ <Route path="/react/select-grid" component={SelectGridDocs} />
248
+ <Route path="/react/icon-picker" component={IconPickerDocs} />
224
249
  <Route path="/" component={ReactDefault} />
225
250
  </Switch>
226
251
  </main>
@@ -33,7 +33,7 @@ export default class InputsDoc extends React.Component<{}, IState> {
33
33
  <p className='docs-page__paragraph'></p>
34
34
  <Markup.ReactMarkup>
35
35
  <Markup.ReactMarkupPreview>
36
- <div className='docs-page__content-row docs-page__content-row--no-margin'>
36
+ <div className='docs-page__content-row'>
37
37
  <div className='form__row'>
38
38
  <CheckGroup>
39
39
  <Checkbox checked={this.state.required} label={{text:'Required input'}} onChange={(value) => {this.setState({required: value})}} />
@@ -45,7 +45,7 @@ export default class InputsDoc extends React.Component<{}, IState> {
45
45
 
46
46
  <div className='form__row'>
47
47
  <Input label='Input label'
48
- value='This is some value'
48
+ value='This is the value'
49
49
  maxLength={30}
50
50
  error='This is error message'
51
51
  info='This is some hint message'
@@ -57,6 +57,23 @@ export default class InputsDoc extends React.Component<{}, IState> {
57
57
  </div>
58
58
  </div>
59
59
 
60
+ <div className='docs-page__content-row docs-page__content-row--no-margin'>
61
+ <p className="docs-page__paragraph">// Hidden label</p>
62
+ <div className='form__row'>
63
+ <Input label='Hidden input label'
64
+ value='Lorem ipsum input'
65
+ maxLength={30}
66
+ error='This is an error message'
67
+ info='This is a hint message'
68
+ inlineLabel={true}
69
+ labelHidden={true}
70
+ required={false}
71
+ disabled={false}
72
+ invalid={false}
73
+ onChange={(value) => {}} />
74
+ </div>
75
+ </div>
76
+
60
77
  </Markup.ReactMarkupPreview>
61
78
  <Markup.ReactMarkupCode>{`
62
79
  <Input label='Input label'
@@ -74,15 +91,16 @@ export default class InputsDoc extends React.Component<{}, IState> {
74
91
 
75
92
  <h3 className='docs-page__h3'>Props</h3>
76
93
  <PropsList>
77
- <Prop name='value' isRequered={false} type='string' default='/' description='Item value'/>
78
- <Prop name='label' isRequered={false} type='string' default='/' description='Input label'/>
79
- <Prop name='maxLength' isRequered={false} type='number' default='/' description='Sets max length for input text'/>
80
- <Prop name='info' isRequered={false} type='string' default='/' description='Hint text'/>
81
- <Prop name='error' isRequered={false} type='string' default='/' description='Error text'/>
82
- <Prop name='inlineLabel' isRequered={false} type='boolean' default='false' description='Position labels as inline'/>
83
- <Prop name='required' isRequered={false} type='boolean' default='false' description='Mark field as required'/>
84
- <Prop name='disabled' isRequered={false} type='boolean' default='false' description='Mark field as disabled'/>
85
- <Prop name='invalid' isRequered={false} type='boolean' default='false' description='Mark field as invalid'/>
94
+ <Prop name='value' isRequired={false} type='string' default='/' description='Item value'/>
95
+ <Prop name='label' isRequired={false} type='string' default='/' description='Input label'/>
96
+ <Prop name='maxLength' isRequired={false} type='number' default='/' description='Sets max length for input text'/>
97
+ <Prop name='info' isRequired={false} type='string' default='/' description='Hint text'/>
98
+ <Prop name='error' isRequired={false} type='string' default='/' description='Error text'/>
99
+ <Prop name='inlineLabel' isRequired={false} type='boolean' default='false' description='Position labels as inline'/>
100
+ <Prop name='labelHidden' isRequired={false} type='boolean' default='false' description='Hide the label. The label will still be accessible to screen-readers.'/>
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'/>
86
104
  </PropsList>
87
105
  </section>
88
106
  )
@@ -217,12 +217,12 @@ export default class LabelsDoc extends React.Component {
217
217
 
218
218
  <h3 className="docs-page__h3">Props</h3>
219
219
  <PropsList>
220
- <Prop name='text' isRequered={true} type='string' default='/' description='Label text value'/>
221
- <Prop name='type' isRequered={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.).'/>
222
- <Prop name='color' isRequered={false} type='string' default='/' description='Extended color palette from the framework (e.g. red--500); NOTE: The label can have either a Type or Color defined, not both at the same time.'/>
223
- <Prop name='size' isRequered={false} type='small | normal | large' default='normal' description='Specifies a small, normal or large label.'/>
224
- <Prop name='noTransform' isRequered={false} type='boolean' default='false' description='Transforms text to uppercase.'/>
225
- <Prop name='style' isRequered={false} type='filled | hollow | translucent' default='filled' description='Label may have one of these styles - filled (default), hollow or translucent.'/>
220
+ <Prop name='text' isRequired={true} type='string' default='/' description='Label text value'/>
221
+ <Prop name='type' isRequired={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.).'/>
222
+ <Prop name='color' isRequired={false} type='string' default='/' description='Extended color palette from the framework (e.g. red--500); NOTE: The label can have either a Type or Color defined, not both at the same time.'/>
223
+ <Prop name='size' isRequired={false} type='small | normal | large' default='normal' description='Specifies a small, normal or large label.'/>
224
+ <Prop name='noTransform' isRequired={false} type='boolean' default='false' description='Transforms text to uppercase.'/>
225
+ <Prop name='style' isRequired={false} type='filled | hollow | translucent' default='filled' description='Label may have one of these styles - filled (default), hollow or translucent.'/>
226
226
  </PropsList>
227
227
  </section>
228
228
  )
@@ -40,12 +40,12 @@ export default class LeftNavigationsDoc extends React.Component<{}> {
40
40
 
41
41
  <h3 className="docs-page__h3">Props</h3>
42
42
  <PropsList>
43
- <Prop name='groups' isRequered={true} type='Array<menugroup>' default='/' description='Array of groups'/>
44
- <Prop name='activeItemId' isRequered={true} type='string' default='/' description='Id of active item'/>
45
- <Prop name='menugroup label' isRequered={true} type='string' default='/' description='Menugroup label text value.'/>
46
- <Prop name='menugroup items' isRequered={true} type='Array<menuitem>' default='/' description='Array of items'/>
47
- <Prop name='menuitem id' isRequered={true} type='string' default='/' description='Menugroup id value'/>
48
- <Prop name='menuitem label' isRequered={true} type='string' default='/' description='Menugroup label text value.'/>
43
+ <Prop name='groups' isRequired={true} type='Array<menugroup>' default='/' description='Array of groups'/>
44
+ <Prop name='activeItemId' isRequired={true} type='string' default='/' description='Id of active item'/>
45
+ <Prop name='menugroup label' isRequired={true} type='string' default='/' description='Menugroup label text value.'/>
46
+ <Prop name='menugroup items' isRequired={true} type='Array<menuitem>' default='/' description='Array of items'/>
47
+ <Prop name='menuitem id' isRequired={true} type='string' default='/' description='Menugroup id value'/>
48
+ <Prop name='menuitem label' isRequired={true} type='string' default='/' description='Menugroup label text value.'/>
49
49
  </PropsList>
50
50
  </section>
51
51
  )
@@ -0,0 +1,34 @@
1
+ import * as React from "react";
2
+ import * as Markup from "../../js/react";
3
+ import { ListItemLoader, PropsList } from "../../../app-typescript";
4
+
5
+ export default class ListItemsDoc extends React.Component {
6
+ render() {
7
+ return (
8
+ <section className="docs-page__container">
9
+ <h2 className="docs-page__h2">List Items</h2>
10
+ <Markup.ReactMarkupCodePreview>{`
11
+ <ListItemLoader />
12
+ `}
13
+ </Markup.ReactMarkupCodePreview>
14
+ <h3 className="docs-page__h3 docs-page__h3--small-top-m">Loader type of list items</h3>
15
+ <p className="docs-page__paragraph">Basic layout structure for list elements. The content inside the elements serves just as an example.</p>
16
+ <Markup.ReactMarkup>
17
+ <Markup.ReactMarkupPreview>
18
+ <div className="docs-page__content-row">
19
+ <ListItemLoader />
20
+ </div>
21
+ </Markup.ReactMarkupPreview>
22
+ <Markup.ReactMarkupCode>{`
23
+ <ListItemLoader />
24
+ `}</Markup.ReactMarkupCode>
25
+ </Markup.ReactMarkup>
26
+
27
+ <h3 className="docs-page__h3">Props</h3>
28
+ <PropsList>
29
+
30
+ </PropsList>
31
+ </section>
32
+ )
33
+ }
34
+ }
@@ -0,0 +1,159 @@
1
+ import * as React from 'react';
2
+
3
+ import * as Markup from '../../js/react';
4
+
5
+ import {Button, Menu, Prop, PropsList} from '../../../app-typescript';
6
+ import {IMenuItem} from '../../../app-typescript/components/Menu';
7
+
8
+ const menuItems: Array<IMenuItem> = [
9
+ {
10
+ label: 'Edit',
11
+ icon: 'icon-pencil',
12
+ onClick: () => console.log('action: Edit'),
13
+ },
14
+ {
15
+ label: 'Edit in the new window',
16
+ icon: 'icon-pencil',
17
+ onClick: () => console.log('action: Edit in the new window'),
18
+ },
19
+ {
20
+ label: 'Translate',
21
+ icon: 'icon-globe',
22
+ children: [
23
+ {
24
+ label: 'German',
25
+ onClick: () => console.log('action: German'),
26
+ },
27
+ {
28
+ label: 'French',
29
+ onClick: () => console.log('action: French'),
30
+ },
31
+ ],
32
+ },
33
+ {
34
+ label: 'Export',
35
+ icon: 'icon-download',
36
+ disabled: true,
37
+ onClick: () => console.log('action: Export'),
38
+ },
39
+ {
40
+ label: 'Spike item',
41
+ icon: 'icon-trash',
42
+ onClick: () => console.log('action: Spike item'),
43
+ },
44
+ {separator: true},
45
+ {
46
+ label: 'Send to',
47
+ icon: 'icon-share-alt',
48
+ onClick: () => console.log('action: Send to'),
49
+ },
50
+ {
51
+ label: 'Export',
52
+ icon: 'icon-download',
53
+ onClick: () => console.log('action: Export'),
54
+ },
55
+ {
56
+ label: 'Spike item',
57
+ icon: 'icon-trash',
58
+ onClick: () => console.log('action: Spike item'),
59
+ },
60
+ ];
61
+
62
+ export class MenuDocs extends React.Component {
63
+ render() {
64
+ return (
65
+ <section className='docs-page__container'>
66
+
67
+ <h2 className='docs-page__h2'>Menu</h2>
68
+
69
+ <p className='docs-page__paragraph'></p>
70
+ <Markup.ReactMarkup>
71
+ <Markup.ReactMarkupPreview>
72
+ <div className='docs-page__content-row docs-page__content-row--no-margin'>
73
+ <div className='form__row'>
74
+ <Menu items={menuItems}>
75
+ {(toggle) => (
76
+ <Button
77
+ text="open menu"
78
+ onClick={(event) => {
79
+ toggle(event);
80
+ }}
81
+ />
82
+ )}
83
+ </Menu>
84
+ </div>
85
+ </div>
86
+
87
+ </Markup.ReactMarkupPreview>
88
+
89
+ <Markup.ReactMarkupCode>{`
90
+ const menuItems = [
91
+ {
92
+ label: 'Action 1',
93
+ icon: 'icon-globe',
94
+ children: [
95
+ {
96
+ label: 'Action item 2',
97
+ icon: 'icon-globe',
98
+ onClick: () => console.log('action: Action item 2'),
99
+ },
100
+ ],
101
+ },
102
+ ];
103
+
104
+ <Menu items={menuItems}>
105
+ {(toggle) => (
106
+ <Button
107
+ text="open menu"
108
+ onClick={(event) => {
109
+ toggle(event);
110
+ }}
111
+ />
112
+ )}
113
+ </Menu>
114
+ `}</Markup.ReactMarkupCode>
115
+ </Markup.ReactMarkup>
116
+
117
+ <h3 className="docs-page__h3">Props</h3>
118
+
119
+ <PropsList>
120
+ <Prop name='items' isRequired={true} type='array' default='' description='Array of objects. Allowed objects are: "Menu branch", "Menu leaf" or "Divider"'/>
121
+
122
+ <Prop
123
+ name='children'
124
+ isRequired={true}
125
+ type='function'
126
+ default=''
127
+ description='Will have `toggle` function as an argument. Has to return a JSX element that will act a trigger for the menu.'
128
+ />
129
+ </PropsList>
130
+
131
+ <p className='docs-page__paragraph'>Menu branch</p>
132
+ <PropsList>
133
+ <Prop name='label' isRequired={true} type='string' default='' description='Name for menu group'/>
134
+ <Prop name='icon' isRequired={false} type='string' default='' description='Available icons are listed in /#/react/icon-font'/>
135
+ <Prop
136
+ name='children'
137
+ isRequired={true}
138
+ type='array'
139
+ default=''
140
+ description='Array of objects. Allowed objects are: "Menu branch", "Menu leaf" or "Divider"'
141
+ />
142
+ </PropsList>
143
+
144
+ <p className='docs-page__paragraph'>Menu leaf</p>
145
+ <PropsList>
146
+ <Prop name='label' isRequired={true} type='string' default='' description='Name for menu item'/>
147
+ <Prop name='icon' isRequired={false} type='string' default='' description='Available icons are listed in /#/react/icon-font'/>
148
+ <Prop name='onClick' isRequired={true} type='function' default='' description=''/>
149
+ <Prop name='disabled' isRequired={false} type='boolean' default='' description=''/>
150
+ </PropsList>
151
+
152
+ <p className='docs-page__paragraph'>Menu separator</p>
153
+ <PropsList>
154
+ <Prop name='separator' isRequired={true} type='boolean' default='' description='Adds a separator between items.'/>
155
+ </PropsList>
156
+ </section>
157
+ )
158
+ }
159
+ }
@@ -72,15 +72,15 @@ export default class ModalDoc extends React.Component<{}, IState> {
72
72
 
73
73
  <h3 className="docs-page__h3">Props</h3>
74
74
  <PropsList>
75
- <Prop name='id' isRequered={false} type='string' default='null' description='Unique identifier of the element' />
76
- <Prop name='className' isRequered={false} type='string' default='null' description='Style class of the component' />
77
- <Prop name='theme' isRequered={false} type='light | dark' default='light' description='Item style' />
78
- <Prop name='visible' isRequered={true} type='boolean' default='false' description='Specifies the visibility of the dialog' />
79
- <Prop name='headerTemplate' isRequered={false} type='element' default='null' description='Label of header' />
80
- <Prop name='footerTemplate' isRequered={false} type='element' default='null' description='Label of footer' />
81
- <Prop name='closeOnEscape' isRequered={false} type='boolean' default='null' description='An array of objects to display' />
82
- <Prop name='onShow' isRequered={false} type='function' default='null' description='Callback to invoke after modal is opened' />
83
- <Prop name='onHide' isRequered={true} type='function' default='null' description='Callback to invoke after modal is closed' />
75
+ <Prop name='id' isRequired={false} type='string' default='null' description='Unique identifier of the element' />
76
+ <Prop name='className' isRequired={false} type='string' default='null' description='Style class of the component' />
77
+ <Prop name='theme' isRequired={false} type='light | dark' default='light' description='Item style' />
78
+ <Prop name='visible' isRequired={true} type='boolean' default='false' description='Specifies the visibility of the dialog' />
79
+ <Prop name='headerTemplate' isRequired={false} type='element' default='null' description='Label of header' />
80
+ <Prop name='footerTemplate' isRequired={false} type='element' default='null' description='Label of footer' />
81
+ <Prop name='closeOnEscape' isRequired={false} type='boolean' default='null' description='An array of objects to display' />
82
+ <Prop name='onShow' isRequired={false} type='function' default='null' description='Callback to invoke after modal is opened' />
83
+ <Prop name='onHide' isRequired={true} type='function' default='null' description='Callback to invoke after modal is closed' />
84
84
  </PropsList>
85
85
  </section>
86
86
  )
@@ -59,13 +59,13 @@ export default class NavButtonsDoc extends React.Component {
59
59
 
60
60
  <h3 className="docs-page__h3">Props</h3>
61
61
  <PropsList>
62
- <Prop name='icon' isRequered={false} type='string' default='/' description='Icon class name without the icon- part.' />
63
- <Prop name='text' isRequered={false} type='string' default='/' description='Defines the value for aria-label, for screen-readers accessibility.' />
64
- <Prop name='iconSize' isRequered={false} type='small | big' default='small' description='Specifies a small or big button' />
65
- <Prop name='type' isRequered={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.).' />
66
- <Prop name='state' isRequered={false} type='normal | active' default='normal' description='Defines the optional state of the button (e.g. active)' />
67
- <Prop name='theme' isRequered={false} type='light | dark' default='light' description='Styles nav button for diffrent background.' />
68
- <Prop name='value' isRequered={false} type='button | submit | reset' default='button' description='Specifies a value of nav button' />
62
+ <Prop name='icon' isRequired={false} type='string' default='/' description='Icon class name without the icon- part.' />
63
+ <Prop name='text' isRequired={false} type='string' default='/' description='Defines the value for aria-label, for screen-readers accessibility.' />
64
+ <Prop name='iconSize' isRequired={false} type='small | big' default='small' description='Specifies a small or big button' />
65
+ <Prop name='type' isRequired={false} type='default | primary | success | warning | alert | highlight | sd-green' default='default' description='Default + semantic colour variations (e.g. primary, success etc.).' />
66
+ <Prop name='state' isRequired={false} type='normal | active' default='normal' description='Defines the optional state of the button (e.g. active)' />
67
+ <Prop name='theme' isRequired={false} type='light | dark' default='light' description='Styles nav button for diffrent background.' />
68
+ <Prop name='value' isRequired={false} type='button | submit | reset' default='button' description='Specifies a value of nav button' />
69
69
  </PropsList>
70
70
  </section>
71
71
  );