@progress/kendo-themes-html 4.43.1-dev.0 → 4.43.1-dev.1

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 (46) hide show
  1. package/lib/jsx-runtime.js +7 -0
  2. package/package.json +2 -2
  3. package/src/autocomplete/autocomplete.jsx +1 -1
  4. package/src/avatar/avatar.jsx +1 -1
  5. package/src/button/button.jsx +1 -1
  6. package/src/checkbox/checkbox.jsx +1 -1
  7. package/src/colorpicker/color-preview.jsx +1 -1
  8. package/src/colorpicker/colorpicker.jsx +1 -1
  9. package/src/combobox/combobox.jsx +1 -1
  10. package/src/{component.js → component/component.jsx} +4 -2
  11. package/src/component/index.js +1 -0
  12. package/src/dateinput/dateinput.jsx +1 -1
  13. package/src/datepicker/datepicker.jsx +1 -1
  14. package/src/datetimepicker/datetimepicker.jsx +1 -1
  15. package/src/dropdownlist/dropdownlist.jsx +1 -1
  16. package/src/icon/icon.jsx +1 -1
  17. package/src/index.js +42 -3
  18. package/src/input/input-inner-input.jsx +1 -1
  19. package/src/input/input-inner-span.jsx +1 -1
  20. package/src/input/input-inner-textarea.jsx +1 -1
  21. package/src/input/input-prefix.jsx +1 -1
  22. package/src/input/input-suffix.jsx +1 -1
  23. package/src/input/input.jsx +1 -1
  24. package/src/input/picker.jsx +1 -1
  25. package/src/list/README.md +93 -0
  26. package/src/list/index.js +5 -0
  27. package/src/list/list-content.jsx +94 -0
  28. package/src/list/list-group-item.jsx +66 -0
  29. package/src/list/list-header.jsx +66 -0
  30. package/src/list/list-item.jsx +117 -0
  31. package/src/list/list.jsx +182 -0
  32. package/src/maskedtextbox/maskedtextbox.jsx +1 -1
  33. package/src/nodata/index.js +1 -0
  34. package/src/nodata/nodata.jsx +64 -0
  35. package/src/numerictextbox/numerictextbox.jsx +1 -1
  36. package/src/popup/README.md +15 -0
  37. package/src/popup/index.js +1 -0
  38. package/src/popup/popup.jsx +80 -0
  39. package/src/radio/radio.jsx +1 -1
  40. package/src/searchbar/searchbar.jsx +1 -1
  41. package/src/searchbox/searchbox.jsx +1 -1
  42. package/src/spinbutton/spinbutton.jsx +1 -1
  43. package/src/switch/switch.jsx +1 -1
  44. package/src/textarea/textarea.jsx +1 -1
  45. package/src/textbox/textbox.jsx +1 -1
  46. package/src/timepicker/timepicker.jsx +1 -1
@@ -31,6 +31,8 @@ const attrMap = {
31
31
  showclearbutton: 'showClearButton',
32
32
  clearbutton: 'clearButton',
33
33
 
34
+ showcheckbox: 'showCheckbox',
35
+
34
36
  // Switch
35
37
  onlabel: 'onLabel',
36
38
  offlabel: 'offLabel',
@@ -63,6 +65,11 @@ const booleanAttr = new Set([
63
65
  'showClearButton',
64
66
  'showSpinButton',
65
67
 
68
+ 'showCheckbox',
69
+
70
+ 'virtualization',
71
+ 'root',
72
+
66
73
  'aria'
67
74
  ]);
68
75
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-themes-html",
3
3
  "description": "A collection of HTML helpers used for developing Kendo UI themes",
4
- "version": "4.43.1-dev.0",
4
+ "version": "4.43.1-dev.1",
5
5
  "author": "Progress",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
@@ -42,5 +42,5 @@
42
42
  "@rollup/plugin-node-resolve": "^13.0.6",
43
43
  "rollup": "^2.59.0"
44
44
  },
45
- "gitHead": "e315a28dad00d287edbdf58668becda3d815504f"
45
+ "gitHead": "9dcefebd634a5d866712324f22b0e903deaf7158"
46
46
  }
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class Avatar extends Component {
5
5
  render() {
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
  import { IconStatic } from '../icon/index';
4
4
 
5
5
  class Button extends Component {
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class Checkbox extends Component {
5
5
  render() {
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
  import { IconStatic } from '../icon/index';
3
3
 
4
4
  class ColorPreview extends Component {
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Picker, PickerStatic, InputInnerSpanStatic } from '../input/index';
3
3
  import { ColorPreviewStatic } from './color-preview.jsx';
4
4
  import { ButtonStatic } from '../button/index';
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { ButtonStatic } from '../button/index';
@@ -1,9 +1,11 @@
1
- import { isFunction } from '../utils/object';
2
- import { renderDOM, htmlToProps } from '../lib/jsx-runtime';
1
+ import { isFunction } from '../../utils/object';
2
+ import { renderDOM, htmlToProps } from '../../lib/jsx-runtime';
3
3
 
4
4
  const globalDefaultProps = {
5
5
  legacy: true,
6
6
 
7
+ framework: 'universal',
8
+
7
9
  className: '',
8
10
 
9
11
  aria: false,
@@ -0,0 +1 @@
1
+ export * from './component.jsx';
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
  import { InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { SpinButtonStatic } from '../spinbutton/index';
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { ButtonStatic } from '../button/index';
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { ButtonStatic } from '../button/index';
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Picker, PickerStatic, InputInnerSpanStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { ButtonStatic } from '../button/index';
package/src/icon/icon.jsx CHANGED
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
 
3
3
  class Icon extends Component {
4
4
  render() {
package/src/index.js CHANGED
@@ -16,7 +16,7 @@ export function init() {
16
16
  window.addEventListener('DOMContentLoaded', init);
17
17
 
18
18
  // Dependencies
19
- export * from './component';
19
+ export * from './component/index';
20
20
 
21
21
  // Generic content
22
22
  export * from './icon/index';
@@ -24,9 +24,17 @@ export * from './icon/index';
24
24
  // Primitive components
25
25
  export * from './input/index';
26
26
  // export * from './picker/index';
27
- // export * from './popup/index';
28
- // export * from './list/index';
27
+ export * from './popup/index';
28
+ export * from './list/index';
29
+ export * from './nodata/index';
30
+
31
+ // Indicators
29
32
  export * from './avatar/index';
33
+ // export * from './badge/index';
34
+ // export * from './chip/index';
35
+ // export * from './color-preview/index';
36
+ // export * from './loader/index';
37
+ // export * from './skeleton/index';
30
38
 
31
39
  // Native forms
32
40
  export * from './button/index';
@@ -58,3 +66,34 @@ export * from './searchbox/index';
58
66
  export * from './switch/index';
59
67
  // export * from './upload/index';
60
68
  // export * from './dropzone/index';
69
+
70
+ // Command interfaces
71
+ // export * from './action-buttons/index';
72
+ // export * from './fab/index';
73
+ // export * from './menu/index';
74
+ // export * from './toolbar/index';
75
+
76
+ // Popups and modals
77
+ // export * from './action-sheet/index';
78
+ // export * from './dialog/index';
79
+ // export * from './drawer/index';
80
+ // export * from './notification/index';
81
+ // export * from './popover/index';
82
+ // export * from './tooltip/index';
83
+ // export * from './window/index';
84
+
85
+ // Navigation
86
+ // export * from './appbar/index';
87
+ // export * from './bottom-nav/index';
88
+ // export * from './breadcrumb/index';
89
+ // export * from './pager/index';
90
+ // export * from './stepper/index';
91
+ // export * from './tabstrip/index';
92
+ // export * from './wizard/index';
93
+
94
+ // Layout & containers
95
+ // export * from './card/index';
96
+ // export * from './expander/index';
97
+ // export * from './panelbar/index';
98
+ // export * from './splitter/index';
99
+ // export * from './tile-layout/index';
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
 
3
3
  class InputInnerInput extends Component {
4
4
  render() {
@@ -1,5 +1,5 @@
1
1
  import { IconStatic } from '../icon/index';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class InputInnerSpan extends Component {
5
5
  render() {
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
 
3
3
  class InputInnerTextarea extends Component {
4
4
  render() {
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
 
3
3
  class InputPrefix extends Component {
4
4
  render() {
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
 
3
3
  class InputSuffix extends Component {
4
4
  render() {
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class Input extends Component {
5
5
 
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class Picker extends Component {
5
5
 
@@ -0,0 +1,93 @@
1
+ ```html
2
+ <!-- jquery / react / vue rendering -->
3
+ <div class="k-list k-list-md">
4
+ <div class="k-list-header"><span class="k-list-header-text">Group 1</span></div>
5
+ <div class="k-list-content">
6
+ <ul class="k-list-ul">
7
+ <li class="k-list-item">
8
+ <span class="k-list-item-text">Item 1.1</span>
9
+ </li>
10
+ <li class="k-list-item">
11
+ <span class="k-list-item-text">Item 1.2</span>
12
+ </li>
13
+ <li class="k-list-item k-first">
14
+ <span class="k-list-item-text">Item 2.1</span>
15
+ <span class="k-list-group-label">Group 2</span>
16
+ </li>
17
+ <li class="k-list-item">
18
+ <span class="k-list-item-text">Item 2.2</span>
19
+ </li>
20
+ </ul>
21
+ </div>
22
+ </div>
23
+
24
+ <!-- jquery / react / vue rendering w/ virtualization -->
25
+ <div class="k-list k-virtual-list k-list-md">
26
+ <div class="k-list-header"><span class="k-list-header-text">Group 1</span></div>
27
+ <div class="k-list-content">
28
+ <ul class="k-list-ul">
29
+ <li class="k-list-item">
30
+ <span class="k-list-item-text">Item 1.1</span>
31
+ </li>
32
+ <li class="k-list-item">
33
+ <span class="k-list-item-text">Item 1.2</span>
34
+ </li>
35
+ <li class="k-list-item k-first">
36
+ <span class="k-list-item-text">Item 2.1</span>
37
+ <span class="k-list-group-label">Group 2</span>
38
+ </li>
39
+ <li class="k-list-item">
40
+ <span class="k-list-item-text">Item 2.2</span>
41
+ </li>
42
+ </ul>
43
+ </div>
44
+ </div>
45
+
46
+ <!-- angular / blazor rendering -->
47
+ <div class="k-list k-list-md">
48
+ <div class="k-list-header"><span class="k-list-header-text">Group 1</span></div>
49
+ <div class="k-list-content">
50
+ <ul class="k-list-ul">
51
+ <li class="k-list-item">
52
+ <span class="k-list-item-text">Item 1.1</span>
53
+ </li>
54
+ <li class="k-list-item">
55
+ <span class="k-list-item-text">Item 1.2</span>
56
+ </li>
57
+ <li class="k-list-group-item">
58
+ <span class="k-list-item-text">Group 2</span>
59
+ </li>
60
+ <li class="k-list-item">
61
+ <span class="k-list-item-text">Item 2.1</span>
62
+ </li>
63
+ <li class="k-list-item">
64
+ <span class="k-list-item-text">Item 2.2</span>
65
+ </li>
66
+ </ul>
67
+ </div>
68
+ </div>
69
+
70
+ <!-- angular / blazor rendering w/ virtualization -->
71
+ <div class="k-list k-virtual-list k-list-md">
72
+ <div class="k-list-header"><span class="k-list-header-text">Group 1</span></div>
73
+ <div class="k-list-content">
74
+ <ul class="k-list-ul">
75
+ <li class="k-list-item">
76
+ <span class="k-list-item-text">Item 1.1</span>
77
+ </li>
78
+ <li class="k-list-item">
79
+ <span class="k-list-item-text">Item 1.2</span>
80
+ </li>
81
+ <li class="k-list-group-item">
82
+ <span class="k-list-item-text">Group 2</span>
83
+ </li>
84
+ <li class="k-list-item">
85
+ <span class="k-list-item-text">Item 2.1</span>
86
+ </li>
87
+ <li class="k-list-item">
88
+ <span class="k-list-item-text">Item 2.2</span>
89
+ </li>
90
+ </ul>
91
+ </div>
92
+ </div>
93
+ ```
@@ -0,0 +1,5 @@
1
+ export * from './list.jsx';
2
+ export * from './list-header.jsx';
3
+ export * from './list-content.jsx';
4
+ export * from './list-item.jsx';
5
+ export * from './list-group-item.jsx';
@@ -0,0 +1,94 @@
1
+ import { Component, globalDefaultProps } from '../component/index';
2
+
3
+ class ListContent extends Component {
4
+ render() {
5
+ return <ListContentStatic {...this.props} />;
6
+ }
7
+ }
8
+
9
+ function ListContentStatic(props) {
10
+ const {
11
+ className: ownClassName,
12
+
13
+ children,
14
+
15
+ virtualization,
16
+
17
+ aria,
18
+ legacy,
19
+
20
+ ...htmlAttributes
21
+ } = props;
22
+
23
+ let listContentClasses = [
24
+ ownClassName,
25
+ 'k-list-content'
26
+ ];
27
+
28
+ let legacyListContentClasses = [
29
+ ownClassName,
30
+ 'k-list-content',
31
+ {
32
+ 'k-list-scroller': virtualization === false,
33
+ 'k-virtual-content': virtualization === true
34
+ }
35
+ ];
36
+
37
+ let listULClasses = [
38
+ 'k-list-ul'
39
+ ];
40
+
41
+ let legacyListULClasses = [
42
+ 'k-list',
43
+ 'k-reset',
44
+ {
45
+ 'k-virtual-list': virtualization === true
46
+ }
47
+ ];
48
+
49
+ let ariaAttr = aria
50
+ ? {}
51
+ : {};
52
+
53
+ if (legacy) {
54
+ return (
55
+ <div className={legacyListContentClasses} {...ariaAttr} {...htmlAttributes}>
56
+ <ul className={legacyListULClasses}>
57
+ {children}
58
+ </ul>
59
+ { virtualization && <div className="k-height-container"><div></div></div> }
60
+ </div>
61
+ );
62
+ }
63
+
64
+ return (
65
+ <div className={listContentClasses} {...ariaAttr} {...htmlAttributes}>
66
+ <ul className={listULClasses}>
67
+ {children}
68
+ </ul>
69
+ { virtualization && <div className="k-height-container"><div></div></div> }
70
+ </div>
71
+ );
72
+ }
73
+
74
+ ListContentStatic.defaultProps = {
75
+ ...globalDefaultProps,
76
+
77
+ children: [],
78
+
79
+ virtualization: false
80
+ };
81
+
82
+ ListContentStatic.propTypes = {
83
+ children: typeof [],
84
+ className: typeof '',
85
+
86
+ virtualization: typeof false,
87
+
88
+ aria: typeof false,
89
+ legacy: typeof false,
90
+
91
+ htmlAttributes: typeof []
92
+ };
93
+
94
+ export { ListContent, ListContentStatic };
@@ -0,0 +1,66 @@
1
+ import { Component, globalDefaultProps } from '../component/index';
2
+
3
+ class ListGroupItem extends Component {
4
+ render() {
5
+ return <ListGroupItemStatic {...this.props} />;
6
+ }
7
+ }
8
+
9
+ function ListGroupItemStatic(props) {
10
+ const {
11
+ className: ownClassName,
12
+
13
+ children,
14
+
15
+ aria,
16
+ legacy,
17
+
18
+ ...htmlAttributes
19
+ } = props;
20
+
21
+ let listGroupItemClasses = [
22
+ ownClassName,
23
+ 'k-list-group-item'
24
+ ];
25
+
26
+ let legacyListGroupItemClasses = [
27
+ ownClassName,
28
+ 'k-group-header'
29
+ ];
30
+
31
+ let ariaAttr = aria
32
+ ? {}
33
+ : {};
34
+
35
+ if (legacy) {
36
+ return (
37
+ <li className={legacyListGroupItemClasses} {...ariaAttr} {...htmlAttributes}>
38
+ {children}
39
+ </li>
40
+ );
41
+ }
42
+
43
+ return (
44
+ <li className={listGroupItemClasses} {...ariaAttr} {...htmlAttributes}>
45
+ <span className="k-list-item-text">{children}</span>
46
+ </li>
47
+ );
48
+ }
49
+
50
+ ListGroupItemStatic.defaultProps = {
51
+ ...globalDefaultProps,
52
+
53
+ children: []
54
+ };
55
+
56
+ ListGroupItemStatic.propTypes = {
57
+ children: typeof [],
58
+ className: typeof '',
59
+
60
+ aria: typeof false,
61
+ legacy: typeof false,
62
+
63
+ htmlAttributes: typeof []
64
+ };
65
+
66
+ export { ListGroupItem, ListGroupItemStatic };
@@ -0,0 +1,66 @@
1
+ import { Component, globalDefaultProps } from '../component/index';
2
+
3
+ class ListHeader extends Component {
4
+ render() {
5
+ return <ListHeaderStatic {...this.props} />;
6
+ }
7
+ }
8
+
9
+ function ListHeaderStatic(props) {
10
+ const {
11
+ className: ownClassName,
12
+
13
+ children,
14
+
15
+ aria,
16
+ legacy,
17
+
18
+ ...htmlAttributes
19
+ } = props;
20
+
21
+ let listHeaderClasses = [
22
+ ownClassName,
23
+ 'k-list-header'
24
+ ];
25
+
26
+ let legacyListHeaderClasses = [
27
+ ownClassName,
28
+ 'k-group-header'
29
+ ];
30
+
31
+ let ariaAttr = aria
32
+ ? {}
33
+ : {};
34
+
35
+ if (legacy) {
36
+ return (
37
+ <div className={legacyListHeaderClasses} {...ariaAttr} {...htmlAttributes}>
38
+ {children}
39
+ </div>
40
+ );
41
+ }
42
+
43
+ return (
44
+ <div className={listHeaderClasses} {...ariaAttr} {...htmlAttributes}>
45
+ <div className="k-list-header-text">{children}</div>
46
+ </div>
47
+ );
48
+ }
49
+
50
+ ListHeaderStatic.defaultProps = {
51
+ ...globalDefaultProps,
52
+
53
+ children: []
54
+ };
55
+
56
+ ListHeaderStatic.propTypes = {
57
+ children: typeof [],
58
+ className: typeof '',
59
+
60
+ aria: typeof false,
61
+ legacy: typeof false,
62
+
63
+ htmlAttributes: typeof []
64
+ };
65
+
66
+ export { ListHeader, ListHeaderStatic };
@@ -0,0 +1,117 @@
1
+ import { Component, globalDefaultProps } from '../component/index';
2
+ import { CheckboxStatic } from '../checkbox/index';
3
+ import { IconStatic } from '../icon/index';
4
+
5
+ class ListItem extends Component {
6
+ render() {
7
+ return <ListItemStatic {...this.props} />;
8
+ }
9
+ }
10
+
11
+ function ListItemStatic(props) {
12
+ const {
13
+ className: ownClassName,
14
+ children,
15
+
16
+ groupLabel,
17
+
18
+ showIcon,
19
+ iconName,
20
+ showCheckbox,
21
+ checked,
22
+
23
+ hover,
24
+ focus,
25
+ selected,
26
+ disabled,
27
+
28
+ aria,
29
+ legacy,
30
+
31
+ ...htmlAttributes
32
+ } = props;
33
+
34
+ let listItemClasses = [
35
+ ownClassName,
36
+ 'k-list-item',
37
+ {
38
+ 'k-hover': hover === true,
39
+ 'k-focus': focus === true,
40
+ 'k-selected': selected === true,
41
+ 'k-disabled': disabled === true
42
+ }
43
+ ];
44
+
45
+
46
+ let legacyListItemClasses = [
47
+ ownClassName,
48
+ 'k-item',
49
+ {
50
+ 'k-state-hover': hover === true,
51
+ 'k-state-focused': focus === true,
52
+ 'k-state-selected': selected === true,
53
+ 'k-state-disabled': disabled === true
54
+ }
55
+ ];
56
+
57
+ let ariaAttr = aria
58
+ ? {}
59
+ : {};
60
+
61
+ if (legacy) {
62
+ return (
63
+ <li className={legacyListItemClasses} {...ariaAttr} {...htmlAttributes}>
64
+ {showCheckbox && <CheckboxStatic checked={checked} />}
65
+ {showIcon && <IconStatic name={iconName} />}
66
+ <span className="k-list-item-text">{children}</span>
67
+ {groupLabel !== '' && <div className="k-group">{groupLabel}</div>}
68
+ </li>
69
+ );
70
+ }
71
+
72
+ return (
73
+ <li className={listItemClasses} {...ariaAttr} {...htmlAttributes}>
74
+ {showCheckbox && <CheckboxStatic checked={checked} />}
75
+ {showIcon && <IconStatic name={iconName} />}
76
+ <span className="k-list-item-text">{children}</span>
77
+ {groupLabel !== '' && <div className="k-list-item-group-label">{groupLabel}</div>}
78
+ </li>
79
+ );
80
+ }
81
+
82
+ ListItemStatic.defaultProps = {
83
+ ...globalDefaultProps,
84
+
85
+ children: [],
86
+
87
+ groupLabel: '',
88
+
89
+ showIcon: false,
90
+ iconName: '',
91
+ showCheckbox: false,
92
+ checked: false,
93
+ };
94
+
95
+ ListItemStatic.propTypes = {
96
+ children: typeof [],
97
+ className: typeof '',
98
+
99
+ groupLabel: typeof '',
100
+
101
+ showIcon: typeof false,
102
+ iconName: typeof '',
103
+ showCheckbox: typeof false,
104
+ checked: typeof false,
105
+
106
+ hover: typeof false,
107
+ focus: typeof false,
108
+ selected: typeof false,
109
+ disabled: typeof false,
110
+
111
+ aria: typeof false,
112
+ legacy: typeof false,
113
+
114
+ htmlAttributes: typeof []
115
+ };
116
+
117
+ export { ListItem, ListItemStatic };
@@ -0,0 +1,182 @@
1
+ import * as styles from '../../utils/styles';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
+ import { ListHeaderStatic } from './list-header.jsx';
4
+ import { ListContentStatic } from './list-content.jsx';
5
+ import { ListGroupItemStatic } from './list-group-item.jsx';
6
+ import { ListItemStatic } from './list-item.jsx';
7
+ import { NoDataStatic } from '../nodata/index';
8
+
9
+ class List extends Component {
10
+
11
+ _transformChildrenUniversal() {
12
+ let virtualization = this._props.virtualization;
13
+ let children = this._props.children;
14
+ let listHeader;
15
+ let listContent;
16
+ let listChildren = [];
17
+ let newChildren = [];
18
+
19
+ children.forEach( child => {
20
+ if ( child.type === 'OPTGROUP') {
21
+ if (child.props.root === true) {
22
+ listHeader = <ListHeaderStatic {...child.props}>{child.props.label}</ListHeaderStatic>;
23
+
24
+ child.props.children.forEach( optChild => {
25
+ listChildren.push( <ListItemStatic {...optChild.props} /> );
26
+ });
27
+ } else {
28
+ child.props.children.forEach( ( optChild, index ) => {
29
+ let groupLabel = '';
30
+
31
+ if ( index === 0 ) {
32
+ groupLabel = child.props.label;
33
+ optChild.props.className = [ optChild.props.className, 'k-first' ];
34
+ }
35
+ listChildren.push( <ListItemStatic {...optChild.props} groupLabel={groupLabel} /> );
36
+ });
37
+ }
38
+ } else if ( child.type === 'OPTION' ) {
39
+ listChildren.push( <ListItemStatic {...child.props} /> );
40
+ }
41
+ });
42
+
43
+ listContent = <ListContentStatic virtualization={virtualization}>{listChildren}</ListContentStatic>;
44
+
45
+ newChildren.push( listHeader );
46
+ newChildren.push( listContent );
47
+
48
+ this._props.children = newChildren;
49
+ }
50
+
51
+ _transformChildrenAngular() {
52
+ let virtualization = this._props.virtualization;
53
+ let children = this._props.children;
54
+ let listHeader;
55
+ let listContent;
56
+ let listChildren = [];
57
+ let newChildren = [];
58
+
59
+ children.forEach( child => {
60
+ if ( child.type === 'OPTGROUP') {
61
+ if (child.props.root === true) {
62
+ listHeader = <ListHeaderStatic {...child.props}>{child.props.label}</ListHeaderStatic>;
63
+
64
+ child.props.children.forEach( optChild => {
65
+ listChildren.push( <ListItemStatic {...optChild.props} /> );
66
+ });
67
+ } else {
68
+ listChildren.push( <ListGroupItemStatic {...child.props}>{child.props.label}</ListGroupItemStatic> );
69
+
70
+ child.props.children.forEach( optChild => {
71
+ listChildren.push( <ListItemStatic {...optChild.props} /> );
72
+ });
73
+ }
74
+ } else if ( child.type === 'OPTION' ) {
75
+ listChildren.push( <ListItemStatic {...child.props} /> );
76
+ }
77
+ });
78
+
79
+ listContent = <ListContentStatic virtualization={virtualization}>{listChildren}</ListContentStatic>;
80
+
81
+ newChildren.push( listHeader );
82
+ newChildren.push( listContent );
83
+
84
+ this._props.children = newChildren;
85
+ }
86
+
87
+ init() {
88
+ let framework = this._props.framework;
89
+
90
+ if ( this._props.children.length === 0 ) {
91
+ this._props.children.push( <NoDataStatic /> );
92
+ return;
93
+ }
94
+
95
+ if ( framework === 'angular' || framework === 'blazor' ) {
96
+ this._transformChildrenAngular();
97
+ return;
98
+ }
99
+
100
+ this._transformChildrenUniversal();
101
+ }
102
+
103
+ render() {
104
+ return <ListStatic {...this.props} />;
105
+ }
106
+ }
107
+
108
+ function ListStatic(props) {
109
+ const {
110
+ className: ownClassName,
111
+ children,
112
+
113
+ size,
114
+
115
+ virtualization,
116
+
117
+ aria,
118
+ legacy,
119
+
120
+ ...htmlAttributes
121
+ } = props;
122
+
123
+ let listClasses = [
124
+ ownClassName,
125
+ 'k-list',
126
+ styles.sizeClass( size, 'k-list' ),
127
+ {
128
+ 'k-virtual-list': virtualization === true
129
+ }
130
+ ];
131
+
132
+
133
+ let legacyListClasses = [
134
+ ownClassName,
135
+ 'k-list-container'
136
+ ];
137
+
138
+ let ariaAttr = aria
139
+ ? {}
140
+ : {};
141
+
142
+ if (legacy) {
143
+ return (
144
+ <div className={legacyListClasses} {...ariaAttr} {...htmlAttributes}>
145
+ {children}
146
+ </div>
147
+ );
148
+ }
149
+
150
+ return (
151
+ <div className={listClasses} {...ariaAttr} {...htmlAttributes}>
152
+ {children}
153
+ </div>
154
+ );
155
+ }
156
+
157
+ ListStatic.defaultProps = {
158
+ ...globalDefaultProps,
159
+
160
+ children: [],
161
+
162
+ size: 'medium',
163
+
164
+ virtualization: false
165
+ };
166
+
167
+ ListStatic.propTypes = {
168
+ framework: typeof [ 'universal', 'angular' ],
169
+ children: typeof [],
170
+ className: typeof '',
171
+
172
+ size: typeof [ null, 'small', 'medium', 'large' ],
173
+
174
+ virtualization: typeof false,
175
+
176
+ aria: typeof false,
177
+ legacy: typeof false,
178
+
179
+ htmlAttributes: typeof []
180
+ };
181
+
182
+ export { List, ListStatic };
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
  import { InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
 
@@ -0,0 +1 @@
1
+ export * from './nodata.jsx';
@@ -0,0 +1,64 @@
1
+ import { Component, globalDefaultProps } from '../component/index';
2
+
3
+ class NoData extends Component {
4
+ render() {
5
+ return <NoDataStatic {...this.props} />;
6
+ }
7
+ }
8
+
9
+ function NoDataStatic(props) {
10
+
11
+ const {
12
+ className: ownClassName,
13
+ // eslint-disable-next-line no-unused-vars
14
+ children,
15
+
16
+ aria,
17
+ legacy,
18
+
19
+ ...htmlAttributes
20
+ } = props;
21
+
22
+ let noDataClasses = [
23
+ ownClassName,
24
+ 'k-no-data'
25
+ ];
26
+
27
+ let ariaAttr = aria
28
+ ? {}
29
+ : {};
30
+
31
+ if (legacy) {
32
+
33
+ let legacyClasses = [
34
+ ownClassName,
35
+ 'k-nodata'
36
+ ];
37
+
38
+ return (
39
+ <div className={legacyClasses} {...ariaAttr} {...htmlAttributes}>No data found.</div>
40
+ );
41
+ }
42
+
43
+ return (
44
+ <div className={noDataClasses} {...ariaAttr} {...htmlAttributes}>No data found.</div>
45
+ );
46
+ }
47
+
48
+ NoDataStatic.defaultProps = {
49
+ ...globalDefaultProps,
50
+
51
+ children: []
52
+ };
53
+
54
+ NoDataStatic.propTypes = {
55
+ children: typeof [],
56
+ className: typeof '',
57
+
58
+ aria: typeof false,
59
+ legacy: typeof false,
60
+
61
+ htmlAttributes: typeof []
62
+ };
63
+
64
+ export { NoData, NoDataStatic };
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
  import { InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { SpinButtonStatic } from '../spinbutton/index';
@@ -0,0 +1,15 @@
1
+ ```html
2
+ <!-- default rendering -->
3
+ <div class="k-popup k-popup-md k-rounded-md">
4
+ ...
5
+ </div>
6
+
7
+ <!-- canonical rendering -->
8
+ <div class="
9
+ k-popup
10
+ k-popup-{size}
11
+ k-rounded-{rounded}
12
+ ">
13
+ ...
14
+ </div>
15
+ ```
@@ -0,0 +1 @@
1
+ export * from './popup.jsx';
@@ -0,0 +1,80 @@
1
+ import * as styles from '../../utils/styles';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
+
4
+ class Popup extends Component {
5
+ render() {
6
+ return <PopupStatic {...this.props} />;
7
+ }
8
+ }
9
+
10
+ function PopupStatic(props) {
11
+
12
+ const {
13
+ className: ownClassName,
14
+
15
+ children,
16
+
17
+ size,
18
+ rounded,
19
+
20
+ aria,
21
+ legacy,
22
+
23
+ ...htmlAttributes
24
+ } = props;
25
+
26
+ let PopupClasses = [
27
+ ownClassName,
28
+ 'k-popup',
29
+ styles.sizeClass( size, 'k-popup' ),
30
+ styles.roundedClass( rounded )
31
+ ];
32
+
33
+ let ariaAttr = aria
34
+ ? {}
35
+ : {};
36
+
37
+ if (legacy) {
38
+
39
+ let legacyClasses = [
40
+ ownClassName,
41
+ 'k-popup'
42
+ ];
43
+
44
+ return (
45
+ <div className={legacyClasses} {...htmlAttributes}>
46
+ {children}
47
+ </div>
48
+ );
49
+ }
50
+
51
+ return (
52
+ <div className={PopupClasses} {...ariaAttr} {...htmlAttributes}>
53
+ {children}
54
+ </div>
55
+ );
56
+ }
57
+
58
+ PopupStatic.defaultProps = {
59
+ ...globalDefaultProps,
60
+
61
+ children: [],
62
+
63
+ size: 'medium',
64
+ rounded: 'medium'
65
+ };
66
+
67
+ PopupStatic.propTypes = {
68
+ children: typeof [],
69
+ className: typeof '',
70
+
71
+ size: typeof [ null, 'small', 'medium', 'large' ],
72
+ rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
73
+
74
+ aria: typeof false,
75
+ legacy: typeof false,
76
+
77
+ htmlAttributes: typeof []
78
+ };
79
+
80
+ export { Popup, PopupStatic };
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class Radio extends Component {
5
5
  render() {
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
  import { InputStatic } from '../input/index';
3
3
 
4
4
  class Searchbar extends Component {
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { IconStatic } from '../icon/index';
@@ -1,4 +1,4 @@
1
- import { Component, globalDefaultProps } from '../component';
1
+ import { Component, globalDefaultProps } from '../component/index';
2
2
  import { IconStatic } from '../icon/index';
3
3
  import { ButtonStatic } from '../button/index';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as styles from '../../utils/styles';
2
- import { Component, globalDefaultProps } from '../component';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
3
 
4
4
  class Switch extends Component {
5
5
  render() {
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerTextareaStatic } from '../input/index';
3
3
 
4
4
  class Textarea extends Input {
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
 
@@ -1,4 +1,4 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
3
  import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { ButtonStatic } from '../button/index';