superdesk-ui-framework 3.0.1-beta.1 → 3.0.1-beta.2

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 (168) hide show
  1. package/app/fonts/sd_big-icons.eot +0 -0
  2. package/app/fonts/sd_big-icons.svg +55 -53
  3. package/app/fonts/sd_big-icons.ttf +0 -0
  4. package/app/fonts/sd_big-icons.woff +0 -0
  5. package/app/fonts/sd_icons.eot +0 -0
  6. package/app/fonts/sd_icons.svg +1 -0
  7. package/app/fonts/sd_icons.ttf +0 -0
  8. package/app/fonts/sd_icons.woff +0 -0
  9. package/app/img/dots.svg +3 -0
  10. package/app/styles/_accessibility.scss +3 -3
  11. package/app/styles/_big-icon-font.scss +60 -23
  12. package/app/styles/_boxed-list.scss +26 -3
  13. package/app/styles/_buttons.scss +4 -0
  14. package/app/styles/_helpers.scss +4 -3
  15. package/app/styles/_icon-font.scss +341 -307
  16. package/app/styles/_icon-labels.scss +66 -10
  17. package/app/styles/_table-list.scss +244 -0
  18. package/app/styles/app.scss +1 -0
  19. package/app/styles/components/_list-item.scss +24 -20
  20. package/app/styles/components/_sd-dropzone.scss +52 -16
  21. package/app/styles/components/_subnav.scss +87 -80
  22. package/app/styles/design-tokens/_design-tokens-general.scss +7 -0
  23. package/app/styles/design-tokens/_new-colors.scss +4 -2
  24. package/app/styles/form-elements/_inputs.scss +4 -0
  25. package/app/styles/grids/_grid-layout.scss +21 -7
  26. package/app/styles/layout/_container.scss +3 -0
  27. package/app/styles/layout/_editor.scss +108 -16
  28. package/app/styles/menus/_sd-sidebar-menu.scss +6 -0
  29. package/app/styles/primereact/_pr-dialog.scss +39 -7
  30. package/app-typescript/components/CreateButton.tsx +38 -0
  31. package/app-typescript/components/DropZone.tsx +4 -4
  32. package/app-typescript/components/Icon.tsx +3 -1
  33. package/app-typescript/components/IconLabel.tsx +8 -1
  34. package/app-typescript/components/Input.tsx +2 -0
  35. package/app-typescript/components/Layouts/AuthoringContainer.tsx +27 -0
  36. package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +2 -0
  37. package/app-typescript/components/Layouts/AuthoringMain.tsx +11 -7
  38. package/app-typescript/components/Layouts/AuthoringMainToolBar.tsx +7 -1
  39. package/app-typescript/components/Layouts/Container.tsx +1 -1
  40. package/app-typescript/components/Layouts/ContentSplitter.tsx +23 -0
  41. package/app-typescript/components/Layouts/Layout.tsx +33 -0
  42. package/app-typescript/components/Layouts/LayoutContainer.tsx +1 -4
  43. package/app-typescript/components/Layouts/MainPanel.tsx +10 -5
  44. package/app-typescript/components/Layouts/OverlayPanel.tsx +19 -0
  45. package/app-typescript/components/Layouts/Panel.tsx +1 -0
  46. package/app-typescript/components/Layouts/index.tsx +8 -2
  47. package/app-typescript/components/Lists/BoxedList.tsx +6 -2
  48. package/app-typescript/components/Lists/ContentList.tsx +100 -0
  49. package/app-typescript/components/Lists/TableList.tsx +208 -0
  50. package/app-typescript/components/Modal.tsx +27 -17
  51. package/app-typescript/components/Navigation/SideBarTabs.tsx +10 -0
  52. package/app-typescript/components/SearchBar.tsx +79 -0
  53. package/app-typescript/components/Select.tsx +2 -0
  54. package/app-typescript/components/SidebarMenu.tsx +68 -0
  55. package/app-typescript/components/Spinner.tsx +1 -1
  56. package/app-typescript/components/SwitchGroup.tsx +2 -1
  57. package/app-typescript/index.ts +3 -0
  58. package/dist/dots.svg +3 -0
  59. package/dist/examples.bundle.css +7871 -379
  60. package/dist/examples.bundle.js +29461 -15740
  61. package/dist/playgrounds/react-playgrounds/EditorTest.tsx +9 -4
  62. package/dist/playgrounds/react-playgrounds/Index.tsx +3 -1
  63. package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +13 -0
  64. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +466 -0
  65. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +1002 -0
  66. package/dist/playgrounds/react-playgrounds/TestGround.tsx +190 -182
  67. package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +4 -0
  68. package/dist/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +26 -0
  69. package/dist/playgrounds/react-playgrounds/components/ContentSplitter.tsx +22 -0
  70. package/dist/playgrounds/react-playgrounds/components/Index.tsx +6 -1
  71. package/dist/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -1
  72. package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +51 -9
  73. package/dist/react/Container.tsx +1 -1
  74. package/dist/react/ContentList.tsx +280 -0
  75. package/dist/react/CreateButton.tsx +71 -0
  76. package/dist/react/DropZone.tsx +14 -6
  77. package/dist/react/IconButtons.tsx +6 -6
  78. package/dist/react/IconLabels.tsx +24 -2
  79. package/dist/react/Index.tsx +15 -0
  80. package/dist/react/Inputs.tsx +32 -3
  81. package/dist/react/Modal.tsx +1 -0
  82. package/dist/react/TableList.tsx +268 -0
  83. package/dist/sd_big-icons.eot +0 -0
  84. package/dist/sd_big-icons.svg +55 -53
  85. package/dist/sd_big-icons.ttf +0 -0
  86. package/dist/sd_big-icons.woff +0 -0
  87. package/dist/sd_icons.eot +0 -0
  88. package/dist/sd_icons.svg +1 -0
  89. package/dist/sd_icons.ttf +0 -0
  90. package/dist/sd_icons.woff +0 -0
  91. package/dist/superdesk-ui.bundle.css +44994 -24931
  92. package/dist/superdesk-ui.bundle.js +2437 -1949
  93. package/dist/vendor.bundle.js +27 -27
  94. package/examples/css/docs-page.css +2 -3
  95. package/examples/index.js +8 -0
  96. package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +9 -4
  97. package/examples/pages/playgrounds/react-playgrounds/Index.tsx +3 -1
  98. package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +13 -0
  99. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +466 -0
  100. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +1002 -0
  101. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +190 -182
  102. package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +4 -0
  103. package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +26 -0
  104. package/examples/pages/playgrounds/react-playgrounds/components/ContentSplitter.tsx +22 -0
  105. package/examples/pages/playgrounds/react-playgrounds/components/Index.tsx +6 -1
  106. package/examples/pages/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -1
  107. package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +51 -9
  108. package/examples/pages/react/Container.tsx +1 -1
  109. package/examples/pages/react/ContentList.tsx +280 -0
  110. package/examples/pages/react/CreateButton.tsx +71 -0
  111. package/examples/pages/react/DropZone.tsx +14 -6
  112. package/examples/pages/react/IconButtons.tsx +6 -6
  113. package/examples/pages/react/IconLabels.tsx +24 -2
  114. package/examples/pages/react/Index.tsx +15 -0
  115. package/examples/pages/react/Inputs.tsx +32 -3
  116. package/examples/pages/react/Modal.tsx +1 -0
  117. package/examples/pages/react/TableList.tsx +268 -0
  118. package/package.json +2 -1
  119. package/react/components/CreateButton.d.ts +17 -0
  120. package/react/components/CreateButton.js +66 -0
  121. package/react/components/DropZone.d.ts +2 -2
  122. package/react/components/DropZone.js +2 -2
  123. package/react/components/Icon.d.ts +1 -0
  124. package/react/components/Icon.js +2 -1
  125. package/react/components/IconLabel.d.ts +2 -0
  126. package/react/components/IconLabel.js +6 -3
  127. package/react/components/Input.d.ts +1 -0
  128. package/react/components/Input.js +1 -0
  129. package/react/components/Layouts/AuthoringContainer.d.ts +11 -0
  130. package/react/components/Layouts/AuthoringContainer.js +58 -0
  131. package/react/components/Layouts/AuthoringInnerHeader.d.ts +1 -0
  132. package/react/components/Layouts/AuthoringInnerHeader.js +6 -3
  133. package/react/components/Layouts/AuthoringMain.d.ts +3 -1
  134. package/react/components/Layouts/AuthoringMain.js +2 -2
  135. package/react/components/Layouts/AuthoringMainToolBar.d.ts +1 -0
  136. package/react/components/Layouts/AuthoringMainToolBar.js +8 -1
  137. package/react/components/Layouts/Container.d.ts +1 -1
  138. package/react/components/Layouts/ContentSplitter.d.ts +10 -0
  139. package/react/components/Layouts/ContentSplitter.js +56 -0
  140. package/react/components/Layouts/Layout.d.ts +8 -0
  141. package/react/components/Layouts/Layout.js +35 -0
  142. package/react/components/Layouts/LayoutContainer.js +1 -1
  143. package/react/components/Layouts/MainPanel.d.ts +1 -0
  144. package/react/components/Layouts/MainPanel.js +11 -4
  145. package/react/components/Layouts/OverlayPanel.d.ts +8 -0
  146. package/react/components/Layouts/OverlayPanel.js +49 -0
  147. package/react/components/Layouts/Panel.d.ts +1 -0
  148. package/react/components/Layouts/index.d.ts +6 -2
  149. package/react/components/Layouts/index.js +12 -4
  150. package/react/components/Lists/BoxedList.d.ts +2 -0
  151. package/react/components/Lists/BoxedList.js +6 -4
  152. package/react/components/Modal.d.ts +2 -0
  153. package/react/components/Modal.js +11 -3
  154. package/react/components/Navigation/SideBarTabs.d.ts +1 -0
  155. package/react/components/Navigation/SideBarTabs.js +4 -0
  156. package/react/components/SearchBar.d.ts +23 -0
  157. package/react/components/SearchBar.js +87 -0
  158. package/react/components/Select.d.ts +1 -0
  159. package/react/components/Select.js +1 -0
  160. package/react/components/Spinner.js +1 -1
  161. package/react/components/SwitchGroup.d.ts +1 -0
  162. package/react/components/SwitchGroup.js +1 -1
  163. package/react/index.d.ts +2 -0
  164. package/react/index.js +5 -0
  165. package/sd_icons.eot +0 -0
  166. package/sd_icons.svg +189 -0
  167. package/sd_icons.ttf +0 -0
  168. package/sd_icons.woff +0 -0
@@ -1,6 +1,6 @@
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 } from '../../../../app-typescript/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 } from '../../../../app-typescript/index';
4
4
  import { Carousel } from '../../../../app-typescript/index';
5
5
  import * as GridElements from '../../../../app-typescript/components/GridItem';
6
6
 
@@ -16,12 +16,12 @@ interface IState {
16
16
  itemSelected1: boolean;
17
17
  itemSelected2: boolean;
18
18
  itemSelected3: boolean;
19
- value1: string;
20
- value2: string;
21
- value3: string;
22
- value4: string;
23
- value5: string;
24
- value6: string;
19
+ value1?: string;
20
+ value2?: string;
21
+ value3?: string;
22
+ value4?: string;
23
+ value5?: string;
24
+ value6?: string;
25
25
  selctedTheme: string;
26
26
  }
27
27
 
@@ -56,6 +56,188 @@ export class TestGround extends React.Component<IProps, IState> {
56
56
  <Components.Layout header='Testing Ground'>
57
57
  <Components.LayoutContainer>
58
58
  <Components.MainPanel>
59
+ <h3 className="docs-page__h3 sd-margin-y--0">Table list</h3>
60
+ <hr />
61
+ <ul className='table-list'>
62
+ <li className='table-list__item table-list__item--clickable table-list__item--draggable'>
63
+ <div className='table-list__item-content'>
64
+ <div className='table-list__item-content-block'>
65
+ <Label style='translucent' text='aacc' />
66
+ <Label style='translucent' type='primary' text='prlg' />
67
+ </div>
68
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
69
+ <span>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.</span>
70
+ </div>
71
+ <div className='table-list__item-content-block'>
72
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
73
+ </div>
74
+ </div>
75
+ <div className='table-list__slide-in-actions'>
76
+ <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />
77
+ </div>
78
+ </li>
79
+ <li className='table-list__item table-list__item--clickable table-list__item--draggable'>
80
+ <div className='table-list__item-content'>
81
+ <div className='table-list__item-content-block'>
82
+ <Label style='translucent' type='warning' text='pokr' />
83
+ <Label style='translucent' text='slika' />
84
+ </div>
85
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
86
+ <span>Nullam id dolor id nibh ultricies vehicula ut id elit.</span>
87
+ </div>
88
+ <div className='table-list__item-content-block'>
89
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
90
+ </div>
91
+ </div>
92
+ <div className='table-list__slide-in-actions'>
93
+ <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />
94
+ </div>
95
+ </li>
96
+ <li className='table-list__item table-list__item--clickable'>
97
+ <div className='table-list__item-content'>
98
+ <div className='table-list__item-content-block'>
99
+ <Label style='translucent' type='warning' text='pokr' />
100
+ <Label style='translucent' text='slika' />
101
+ </div>
102
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
103
+ <span>Nullam id dolor id nibh ultricies vehicula ut id elit.</span>
104
+ </div>
105
+ <div className='table-list__item-content-block'>
106
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
107
+ </div>
108
+ </div>
109
+ <div className='table-list__slide-in-actions'>
110
+ <IconButton icon='pencil' size='small' ariaValue='More actions' onClick={()=> false} />
111
+ <IconButton icon='trash' size='small' ariaValue='More actions' onClick={()=> false} />
112
+ </div>
113
+ </li>
114
+ <li className='table-list__item table-list__item--clickable table-list__item--selected'>
115
+ <div className='table-list__item-content'>
116
+ <div className='table-list__item-content-block'>
117
+ <Label style='translucent' type='warning' text='pokr' />
118
+ <Label style='translucent' text='slika' />
119
+ </div>
120
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
121
+ <span>Nullam id dolor id nibh ultricies vehicula ut id elit.</span>
122
+ </div>
123
+ <div className='table-list__item-content-block'>
124
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
125
+ </div>
126
+ </div>
127
+ <div className='table-list__slide-in-actions'>
128
+ <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />
129
+ </div>
130
+ </li>
131
+ <li className='table-list__item table-list__item--clickable'>
132
+ <div className='table-list__item-content'>
133
+ <div className='table-list__item-content-block'>
134
+ <Label style='translucent' type='warning' text='pokr' />
135
+ <Label style='translucent' text='slika' />
136
+ </div>
137
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
138
+ <span>Nullam id dolor id nibh ultricies vehicula ut id elit.</span>
139
+ </div>
140
+ <div className='table-list__item-content-block'>
141
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
142
+ </div>
143
+ </div>
144
+ <div className='table-list__slide-in-actions'>
145
+ <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />
146
+ </div>
147
+ </li>
148
+ </ul>
149
+
150
+ <h3 className="docs-page__h3 sd-margin-y--0 sd-margin-t--3">Table list with items between</h3>
151
+ <hr />
152
+ <ul className='table-list table-list--contained'>
153
+ <li className='table-list__item-container'>
154
+ <div className='table-list__item table-list__item--clickable table-list__item--draggable'>
155
+ <div className='table-list__item-content'>
156
+ <div className='table-list__item-content-block'>
157
+ <Label style='translucent' text='aacc' />
158
+ <Label style='translucent' type='primary' text='prlg' />
159
+ </div>
160
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
161
+ <span>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.</span>
162
+ </div>
163
+ <div className='table-list__item-content-block'>
164
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
165
+ </div>
166
+ </div>
167
+ <div className='table-list__slide-in-actions'>
168
+ <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />
169
+ </div>
170
+ </div>
171
+
172
+ <div className='table-list__add-bar-container'>
173
+ <Tooltip text='Add item' flow='top' appendToBody={true}>
174
+ <div className='table-list__add-bar'>
175
+ <Button type="primary" icon="plus-large" text="Add item" size="small" shape="round" iconOnly={true} onClick={()=> false} />
176
+ </div>
177
+ </Tooltip>
178
+ </div>
179
+ </li>
180
+
181
+ <li className='table-list__item-container'>
182
+ <div className='table-list__item table-list__item--clickable table-list__item--draggable'>
183
+ <div className='table-list__item-content'>
184
+ <div className='table-list__item-content-block'>
185
+ <Label style='translucent' type='warning' text='pokr' />
186
+ <Label style='translucent' text='slika' />
187
+ </div>
188
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
189
+ <span>Nullam id dolor id nibh ultricies vehicula ut id elit.</span>
190
+ </div>
191
+ <div className='table-list__item-content-block'>
192
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
193
+ </div>
194
+ </div>
195
+ <div className='table-list__slide-in-actions'>
196
+ <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />
197
+ </div>
198
+ </div>
199
+
200
+ <div className='table-list__add-bar-container'>
201
+ <Tooltip text='Add item' flow='top' appendToBody={true}>
202
+ <div className='table-list__add-bar'>
203
+ <Button type="primary" icon="plus-large" text="Add item" size="small" shape="round" iconOnly={true} onClick={()=> false} />
204
+ </div>
205
+ </Tooltip>
206
+ </div>
207
+ </li>
208
+
209
+ <li className='table-list__item-container'>
210
+ <div className='table-list__item table-list__item--clickable table-list__item--draggable'>
211
+ <div className='table-list__item-content'>
212
+ <div className='table-list__item-content-block'>
213
+ <Label style='translucent' type='warning' text='pokr' />
214
+ <Label style='translucent' text='slika' />
215
+ </div>
216
+ <div className='table-list__item-content-block table-list__item-content-block--center'>
217
+ <span>Nullam id dolor id nibh ultricies vehicula ut id elit.</span>
218
+ </div>
219
+ <div className='table-list__item-content-block'>
220
+ <IconLabel style='translucent' text='Label success' type='success' icon='time' />
221
+ </div>
222
+ </div>
223
+ <div className='table-list__slide-in-actions'>
224
+ <IconButton icon='pencil' size='small' ariaValue='More actions' onClick={()=> false} />
225
+ <IconButton icon='trash' size='small' ariaValue='More actions' onClick={()=> false} />
226
+ </div>
227
+ </div>
228
+
229
+ <div className='table-list__add-bar-container'>
230
+ <Tooltip text='Add item' flow='top' appendToBody={true}>
231
+ <div className='table-list__add-bar'>
232
+ <Button type="primary" icon="plus-large" text="Add item" size="small" shape="round" iconOnly={true} onClick={()=> false} />
233
+ </div>
234
+ </Tooltip>
235
+ </div>
236
+ </li>
237
+ </ul>
238
+
239
+ <hr /><hr />
240
+
59
241
  <h3 className="docs-page__h3 sd-margin-y--0">Checkbox</h3>
60
242
  <hr />
61
243
  <div className="sd-check__group-new sd-check__group-new--vertical">
@@ -166,183 +348,9 @@ export class TestGround extends React.Component<IProps, IState> {
166
348
  <div className="button-group button-group--comfort">
167
349
  <div className="color-swatch colour-test--1"></div>
168
350
  <div className="color-swatch colour-test--2"></div>
351
+ <Spinner />
169
352
  </div>
170
- {/* <hr />
171
- <div className="sd-theme-selector__list">
172
- <div className="sd-theme-selector__item">
173
- <figure className="sd-theme-selector__item-thumb" data-theme="light-ui">
174
- <svg viewBox="0 0 156 94" xmlns="http://www.w3.org/2000/svg">
175
- <g fill="none" fillRule="evenodd">
176
- <path d="m0 0h156v94h-156z" fill="var(--sd-colour-panel-bg--100)"/>
177
- <circle cx="144" cy="33" fill="var(--color-text-lighter)" r="4"/>
178
- <rect fill="var(--sd-colour-interactive)" height="15" rx="2" width="58" x="91" y="71"/>
179
- <g fill="var(--sd-colour-btn-bg-neutral)">
180
- <rect height="15" rx="2" width="58" x="29" y="52"/>
181
- <rect height="15" rx="2" width="58" x="29" y="71"/>
182
- <rect height="15" rx="2" width="58" x="91" y="52"/>
183
- </g>
184
- <g fill="#fff">
185
- <rect height="3" rx="1.5" width="9" x="99" y="77"/>
186
- <rect height="3" rx="1.5" width="11" x="130" y="77"/>
187
- <rect height="3" rx="1.5" width="18" x="110" y="77"/>
188
- </g>
189
- <g fill="var(--color-text-light)">
190
- <rect height="3" rx="1.5" width="9" x="37" y="58"/>
191
- <rect height="3" rx="1.5" width="11" x="68" y="58"/>
192
- <rect height="3" rx="1.5" width="18" x="48" y="58"/>
193
- <rect height="3" rx="1.5" width="9" x="37" y="77"/>
194
- <rect height="3" rx="1.5" width="11" x="68" y="77"/>
195
- <rect height="3" rx="1.5" width="18" x="48" y="77"/>
196
- <rect height="3" rx="1.5" width="9" x="99" y="58"/>
197
- <rect height="3" rx="1.5" width="11" x="130" y="58"/>
198
- <rect height="3" rx="1.5" width="18" x="110" y="58"/>
199
- </g>
200
- <g fill="var(--color-text)">
201
- <rect height="4" rx="2" width="11" x="29" y="31"/>
202
- <rect height="4" rx="2" width="14" x="70" y="31"/>
203
- <rect height="4" rx="2" width="23" x="43" y="31"/>
204
- </g>
205
- <path d="m0 22h22v72h-22z" fill="var(--sd-colour-sidebar-menu--00)"/>
206
- <circle cx="11" cy="52" fill="var(--sd-colour-interactive)" r="6"/>
207
- <g fill="var(--color-icon-default)" opacity=".75">
208
- <circle cx="11" cy="34" r="6"/>
209
- <circle cx="11" cy="70" r="6"/>
210
- </g>
211
- <path d="m0 0h156v22h-156z" fill="var(--sd-colour-top-menu)"/>
212
- <path d="m0 22h156v1h-156z" fill="var(--sd-colour--shadow-line)"/>
213
- <g fill="hsla(214, 13%, 65%, 1)" opacity="1">
214
- <rect height="4" rx="2" width="11" x="31" y="9"/>
215
- <rect height="4" rx="2" width="23" x="45" y="9"/>
216
- </g>
217
- <path d="m22 44h134v1h-134z" fill="var(--sd-colour-line--medium)"/>
218
- <path d="m0 0h22v22h-22z" fill="var(--sd-colour-top-menu__btn)"/>
219
- <path d="m15 13v1h-8v-1zm0-3v1h-8v-1zm0-3v1h-8v-1z" fill="#fff"/>
220
- </g>
221
- </svg>
222
- </figure>
223
- <div className="sd-theme-selector__item-action">
224
- <input type="radio" className="sd-theme-selector__input" id="id50" name="id5" />
225
- <span className="sd-radio-new"></span>
226
- <label className="sd-theme-selector__label" htmlFor="id50">Light</label>
227
- </div>
228
- </div>
229
-
230
- <div className="sd-theme-selector__item">
231
- <figure className="sd-theme-selector__item-thumb" data-theme="dark-ui">
232
- <svg viewBox="0 0 156 94" xmlns="http://www.w3.org/2000/svg">
233
- <g fill="none" fillRule="evenodd">
234
- <path d="m0 0h156v94h-156z" fill="var(--sd-colour-panel-bg--100)"/>
235
- <circle cx="144" cy="33" fill="var(--color-text-lighter)" r="4"/>
236
- <rect fill="var(--sd-colour-interactive)" height="15" rx="2" width="58" x="91" y="71"/>
237
- <g fill="var(--sd-colour-btn-bg-neutral)">
238
- <rect height="15" rx="2" width="58" x="29" y="52"/>
239
- <rect height="15" rx="2" width="58" x="29" y="71"/>
240
- <rect height="15" rx="2" width="58" x="91" y="52"/>
241
- </g>
242
- <g fill="#fff">
243
- <rect height="3" rx="1.5" width="9" x="99" y="77"/>
244
- <rect height="3" rx="1.5" width="11" x="130" y="77"/>
245
- <rect height="3" rx="1.5" width="18" x="110" y="77"/>
246
- </g>
247
- <g fill="var(--color-text-light)">
248
- <rect height="3" rx="1.5" width="9" x="37" y="58"/>
249
- <rect height="3" rx="1.5" width="11" x="68" y="58"/>
250
- <rect height="3" rx="1.5" width="18" x="48" y="58"/>
251
- <rect height="3" rx="1.5" width="9" x="37" y="77"/>
252
- <rect height="3" rx="1.5" width="11" x="68" y="77"/>
253
- <rect height="3" rx="1.5" width="18" x="48" y="77"/>
254
- <rect height="3" rx="1.5" width="9" x="99" y="58"/>
255
- <rect height="3" rx="1.5" width="11" x="130" y="58"/>
256
- <rect height="3" rx="1.5" width="18" x="110" y="58"/>
257
- </g>
258
- <g fill="var(--color-text)">
259
- <rect height="4" rx="2" width="11" x="29" y="31"/>
260
- <rect height="4" rx="2" width="14" x="70" y="31"/>
261
- <rect height="4" rx="2" width="23" x="43" y="31"/>
262
- </g>
263
- <path d="m0 22h22v72h-22z" fill="var(--sd-colour-sidebar-menu--00)"/>
264
- <circle cx="11" cy="52" fill="var(--sd-colour-interactive)" r="6"/>
265
- <g fill="var(--color-icon-default)" opacity=".75">
266
- <circle cx="11" cy="34" r="6"/>
267
- <circle cx="11" cy="70" r="6"/>
268
- </g>
269
- <path d="m0 0h156v22h-156z" fill="var(--sd-colour-top-menu)"/>
270
- <path d="m0 22h156v1h-156z" fill="var(--sd-colour--shadow-line)"/>
271
- <g fill="hsla(214, 13%, 65%, 1)" opacity="1">
272
- <rect height="4" rx="2" width="11" x="31" y="9"/>
273
- <rect height="4" rx="2" width="23" x="45" y="9"/>
274
- </g>
275
- <path d="m22 44h134v1h-134z" fill="var(--sd-colour-line--medium)"/>
276
- <path d="m0 0h22v22h-22z" fill="var(--sd-colour-top-menu__btn)"/>
277
- <path d="m15 13v1h-8v-1zm0-3v1h-8v-1zm0-3v1h-8v-1z" fill="#fff"/>
278
- </g>
279
- </svg>
280
- </figure>
281
- <div className="sd-theme-selector__item-action">
282
- <input type="radio" className="sd-theme-selector__input" id="id50" name="id5" />
283
- <span className="sd-radio-new"></span>
284
- <label className="sd-theme-selector__label" htmlFor="id50">Dark</label>
285
- </div>
286
- </div>
287
353
 
288
- <div className="sd-theme-selector__item">
289
- <figure className="sd-theme-selector__item-thumb" data-theme="accessible-light-ui">
290
- <svg viewBox="0 0 156 94" xmlns="http://www.w3.org/2000/svg">
291
- <g fill="none" fillRule="evenodd">
292
- <path d="m0 0h156v94h-156z" fill="var(--sd-colour-panel-bg--100)"/>
293
- <circle cx="144" cy="33" fill="var(--color-text-lighter)" r="4"/>
294
- <rect fill="var(--sd-colour-interactive)" height="15" rx="2" width="58" x="91" y="71"/>
295
- <g fill="var(--sd-colour-btn-bg-neutral)">
296
- <rect height="15" rx="2" width="58" x="29" y="52"/>
297
- <rect height="15" rx="2" width="58" x="29" y="71"/>
298
- <rect height="15" rx="2" width="58" x="91" y="52"/>
299
- </g>
300
- <g fill="#fff">
301
- <rect height="3" rx="1.5" width="9" x="99" y="77"/>
302
- <rect height="3" rx="1.5" width="11" x="130" y="77"/>
303
- <rect height="3" rx="1.5" width="18" x="110" y="77"/>
304
- </g>
305
- <g fill="var(--color-text-light)">
306
- <rect height="3" rx="1.5" width="9" x="37" y="58"/>
307
- <rect height="3" rx="1.5" width="11" x="68" y="58"/>
308
- <rect height="3" rx="1.5" width="18" x="48" y="58"/>
309
- <rect height="3" rx="1.5" width="9" x="37" y="77"/>
310
- <rect height="3" rx="1.5" width="11" x="68" y="77"/>
311
- <rect height="3" rx="1.5" width="18" x="48" y="77"/>
312
- <rect height="3" rx="1.5" width="9" x="99" y="58"/>
313
- <rect height="3" rx="1.5" width="11" x="130" y="58"/>
314
- <rect height="3" rx="1.5" width="18" x="110" y="58"/>
315
- </g>
316
- <g fill="var(--color-text)">
317
- <rect height="4" rx="2" width="11" x="29" y="31"/>
318
- <rect height="4" rx="2" width="14" x="70" y="31"/>
319
- <rect height="4" rx="2" width="23" x="43" y="31"/>
320
- </g>
321
- <path d="m0 22h22v72h-22z" fill="var(--sd-colour-sidebar-menu--00)"/>
322
- <circle cx="11" cy="52" fill="var(--sd-colour-interactive)" r="6"/>
323
- <g fill="var(--color-icon-default)" opacity=".75">
324
- <circle cx="11" cy="34" r="6"/>
325
- <circle cx="11" cy="70" r="6"/>
326
- </g>
327
- <path d="m0 0h156v22h-156z" fill="var(--sd-colour-top-menu)"/>
328
- <path d="m0 22h156v1h-156z" fill="var(--sd-colour--shadow-line)"/>
329
- <g fill="hsla(214, 13%, 65%, 1)" opacity="1">
330
- <rect height="4" rx="2" width="11" x="31" y="9"/>
331
- <rect height="4" rx="2" width="23" x="45" y="9"/>
332
- </g>
333
- <path d="m22 44h134v1h-134z" fill="var(--sd-colour-line--medium)"/>
334
- <path d="m0 0h22v22h-22z" fill="var(--sd-colour-top-menu__btn)"/>
335
- <path d="m15 13v1h-8v-1zm0-3v1h-8v-1zm0-3v1h-8v-1z" fill="#fff"/>
336
- </g>
337
- </svg>
338
- </figure>
339
- <div className="sd-theme-selector__item-action">
340
- <input type="radio" className="sd-theme-selector__input" id="id50" name="id5" />
341
- <span className="sd-radio-new"></span>
342
- <label className="sd-theme-selector__label" htmlFor="id50">High Contrast</label>
343
- </div>
344
- </div>
345
- </div> */}
346
354
  <hr />
347
355
  <Container className='sd-padding--4 sd-panel-bg--100 sd-radius--large'>
348
356
  <ThemeSelector size='small' options={[
@@ -141,6 +141,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
141
141
  <div className="form__item">
142
142
  <Input label='Title'
143
143
  error='This is error message'
144
+ type='text'
145
+ value='Title'
144
146
  inlineLabel={false}
145
147
  disabled={false}
146
148
  invalid={false}
@@ -167,6 +169,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
167
169
  <div className="form__item">
168
170
  <Input label='Keyword'
169
171
  error='This is error message'
172
+ type='text'
173
+ value='Keyword'
170
174
  inlineLabel={false}
171
175
  disabled={false}
172
176
  invalid={false}
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ interface IProps {
5
+ children?: React.ReactNode;
6
+ side?: 'left' | 'right';
7
+ background?: 'transparent' | 'light' | 'grey' | 'dark';
8
+ open?: boolean;
9
+ }
10
+
11
+ export class AuthoringContainer extends React.PureComponent<IProps> {
12
+ render() {
13
+ let classes = classNames('sd-content-wrapper__authoring-content-area', {
14
+ [`sd-content-wrapper__authoring-content-area--${this.props.side}`] : this.props.side,
15
+ [`sd-content-wrapper__authoring-content-area--${this.props.background}`]: this.props.background !== 'light' && this.props.background !== undefined,
16
+ 'open-editor': this.props.open,
17
+ });
18
+ return (
19
+ <div className={classes}>
20
+ <div className='sd-editor__container'>
21
+ {this.props.children}
22
+ </div>
23
+ </div>
24
+ );
25
+ }
26
+ }
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ interface IProps {
5
+ children?: React.ReactNode;
6
+ background?: 'transparent' | 'light' | 'grey' | 'dark';
7
+ visible?: boolean; // defaults to light (white)
8
+ }
9
+
10
+ export class ContentSplitter extends React.PureComponent<IProps> {
11
+ render() {
12
+ let classes = classNames('sd-content-wrapper__content-splitter', {
13
+ [`sd-content-wrapper__content-splitter--${this.props.background}`]: this.props.background !== 'light' && this.props.background !== undefined,
14
+ 'content-splitter--visible': this.props.visible,
15
+ });
16
+ return (
17
+ <div className={classes}>
18
+ {this.props.children}
19
+ </div>
20
+ );
21
+ }
22
+ }
@@ -1,9 +1,13 @@
1
1
  export { Layout } from './Layout';
2
+ export { LayoutContainer } from './LayoutContainer';
2
3
  export { HeaderPanel } from './HeaderPanel';
3
4
  export { MainPanel } from './MainPanel';
4
5
  export { OverlayPanel } from './OverlayPanel';
5
6
  export { RightPanel } from './RightPanel';
6
7
  export { LeftPanel } from './LeftPanel';
8
+ export { AuthoringContainer } from './AuthoringContainer';
9
+ export { ContentSplitter } from './ContentSplitter';
10
+
7
11
  export { SubNav } from './SubNav';
8
12
  export { GraphicButtonsGroup } from './GraphicButtonsGroup';
9
13
  export { GraphicButton } from './GraphicButton';
@@ -14,4 +18,5 @@ export { PanelHeader } from './PanelHeader';
14
18
  export { PanelFooter } from './PanelFooter';
15
19
  export { SearchBar } from './SearchBar';
16
20
  export { SidebarMenu } from './SidebarMenu';
17
- export { LayoutContainer } from './LayoutContainer';
21
+
22
+
@@ -1,13 +1,23 @@
1
1
  import * as React from 'react';
2
+ import classNames from 'classnames';
2
3
 
3
4
  interface IProps {
4
5
  children?: React.ReactNode;
6
+ className?: string;
7
+ padding?: 'small' | 'medium' | 'large' | 'none';
5
8
  }
6
9
 
7
10
  export class MainPanel extends React.PureComponent<IProps> {
11
+
8
12
  render() {
13
+ let classes = classNames('sd-main-content-grid__content', {
14
+ 'sd-padding--2': !this.props.padding || this.props.padding === 'small',
15
+ 'sd-padding--3': this.props.padding === 'medium',
16
+ 'sd-padding--4': this.props.padding === 'large',
17
+ 'sd-padding--0': this.props.padding === 'none',
18
+ }, this.props.className);
9
19
  return (
10
- <div className='sd-main-content-grid__content sd-padding--2'>
20
+ <div className={classes}>
11
21
  {this.props.children}
12
22
  </div>
13
23
  );
@@ -3,29 +3,71 @@ import classNames from 'classnames';
3
3
  import {Icon} from '../../../../../app-typescript/index';
4
4
 
5
5
  interface IProps {
6
+ value?: string | number;
6
7
  type?: 'expanded' | 'collapsed' | 'boxed';
7
8
  placeholder: string;
8
9
  focused? : boolean;
10
+ boxed?: boolean;
11
+ onSubmit?(): void;
9
12
  }
10
13
 
11
- export class SearchBar extends React.PureComponent<IProps> {
14
+ interface IState {
15
+ inputValue: any;
16
+ type: string;
17
+ focused: boolean;
18
+ boxed?: boolean;
19
+ }
20
+
21
+ export class SearchBar extends React.PureComponent<IProps, IState> {
22
+ private inputRef: any;
23
+ constructor(props) {
24
+ super(props);
25
+ this.state = {
26
+ inputValue: this.props.value ? this.props.value : '',
27
+ focused: this.props.focused ? this.props.focused : false,
28
+ type: this.props.type ? this.props.type : 'expanded',
29
+ boxed: this.props.boxed ? this.props.boxed : false,
30
+ }
31
+ this.inputRef = React.createRef();
32
+ }
33
+
34
+ componentDidUpdate(prevProps: any) {
35
+ if (prevProps.value !== this.props.value) {
36
+ this.setState({inputValue: this.props.value});
37
+ }
38
+ }
39
+
40
+ componentDidMount = () => {
41
+ document.addEventListener("mousedown", (event) => {
42
+ if (this.inputRef.current && !this.inputRef.current.contains(event.target)) {
43
+ this.setState({focused: false});
44
+ }
45
+ });
46
+ }
47
+
12
48
  render() {
13
49
  let classes = classNames('sd-searchbar', {
14
- [`sd-searchbar--${this.props.type}`] : this.props.type,
15
- 'sd-searchbar--expanded': this.props.type === 'expanded' || this.props.type === undefined,
16
- 'sd-searchbar--focused' : this.props.focused,
50
+ [`sd-searchbar--${this.state.type}`] : this.props.type,
51
+ 'sd-searchbar--expanded': this.state.type === 'expanded' || this.props.type === undefined,
52
+ 'sd-searchbar--focused' : this.state.focused,
53
+ 'sd-searchbar--boxed': this.state.boxed,
17
54
  });
18
55
  return (
19
- <div className={classes}>
56
+ <div className={classes} ref={this.inputRef}>
20
57
  <label className="sd-searchbar__icon"></label>
21
58
  <input id="search-input"
59
+ ref={(input: any) => (input && this.props.focused) && input.focus()}
22
60
  className="sd-searchbar__input"
23
61
  type="text"
24
- placeholder={this.props.placeholder} />
25
- <button className="sd-searchbar__cancel">
62
+ placeholder={this.props.placeholder}
63
+ value={this.state.inputValue}
64
+ onChange={(e) => this.setState({inputValue: e.target.value})}
65
+ onFocus={() => this.setState({focused: true})} />
66
+ {this.state.inputValue &&
67
+ <button className="sd-searchbar__cancel" onClick={() => this.setState({inputValue: ''})}>
26
68
  <Icon name='remove-sign' />
27
- </button>
28
- <button id="sd-searchbar__search-btn" className="sd-searchbar__search-btn">
69
+ </button>}
70
+ <button id="sd-searchbar__search-btn" className="sd-searchbar__search-btn" onSubmit={() => this.props.onSubmit}>
29
71
  <Icon name='chevron-right-thin' />
30
72
  </button>
31
73
  </div>
@@ -133,7 +133,7 @@ export default class ContainerDoc extends React.Component<IProps> {
133
133
  <PropsList>
134
134
  <Prop name='display' isRequired={false} type='flex | inline-flex | block' default='flex' description='Change the default display mode (flex).'/>
135
135
  <Prop name='direction' isRequired={false} type='row | column' default='row' description='Change the flex-direction property.'/>
136
- <Prop name='gap' isRequired={false} type='none | small | medium | large' default='none' description='Set the gap between elements inside the Container.'/>
136
+ <Prop name='gap' isRequired={false} type='none | x-small | small | medium | large' default='none' description='Set the gap between elements inside the Container.'/>
137
137
  <Prop name='theme' isRequired={false} type='light | dark' default='/' description='Choose the UI theme. It will inherit the default theme if not set. All items inside will inherit the theme of the Container if it is set.'/>
138
138
  <Prop name='className' isRequired={false} type='string' default='/' description='Add helper classes or custom CSS styles'/>
139
139
  </PropsList>