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

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 (52) hide show
  1. package/lib/jsx-runtime.js +21 -1
  2. package/package.json +7 -7
  3. package/src/autocomplete/autocomplete.jsx +2 -2
  4. package/src/avatar/README.md +1 -1
  5. package/src/avatar/avatar.jsx +17 -20
  6. package/src/button/button.jsx +2 -2
  7. package/src/checkbox/checkbox.jsx +2 -2
  8. package/src/chip/README.md +47 -0
  9. package/src/chip/chip-actions.jsx +80 -0
  10. package/src/chip/chip-avatar.jsx +13 -0
  11. package/src/chip/chip-list.jsx +84 -0
  12. package/src/chip/chip.jsx +180 -0
  13. package/src/chip/index.js +4 -0
  14. package/src/colorpicker/README.md +24 -15
  15. package/src/colorpicker/color-preview.jsx +27 -20
  16. package/src/colorpicker/colorpicker.jsx +5 -7
  17. package/src/combobox/combobox.jsx +5 -7
  18. package/src/dateinput/dateinput.jsx +5 -7
  19. package/src/datepicker/datepicker.jsx +5 -7
  20. package/src/datetimepicker/datetimepicker.jsx +5 -7
  21. package/src/dropdownlist/dropdownlist.jsx +5 -7
  22. package/src/fab/README.md +19 -0
  23. package/src/fab/fab.jsx +154 -0
  24. package/src/fab/index.js +1 -0
  25. package/src/index.js +4 -3
  26. package/src/input/input.jsx +1 -1
  27. package/src/input/picker.jsx +3 -3
  28. package/src/list/README.md +14 -0
  29. package/src/list/list-content.jsx +18 -17
  30. package/src/list/list-header.jsx +2 -1
  31. package/src/maskedtextbox/maskedtextbox.jsx +8 -11
  32. package/src/menu/README.md +40 -0
  33. package/src/menu/index.js +3 -0
  34. package/src/menu/menu-item-content.jsx +48 -0
  35. package/src/menu/menu-item.jsx +174 -0
  36. package/src/menu/menu-list.jsx +74 -0
  37. package/src/numerictextbox/numerictextbox.jsx +5 -7
  38. package/src/popup/popup.jsx +1 -1
  39. package/src/radio/radio.jsx +6 -2
  40. package/src/searchbox/searchbox.jsx +1 -1
  41. package/src/switch/README.md +3 -3
  42. package/src/switch/switch.jsx +4 -4
  43. package/src/textarea/textarea.jsx +1 -1
  44. package/src/textbox/textbox.jsx +1 -1
  45. package/src/timepicker/timepicker.jsx +5 -7
  46. package/src/treeview/README.md +0 -0
  47. package/src/treeview/index.js +4 -0
  48. package/src/treeview/treeview-group.jsx +70 -0
  49. package/src/treeview/treeview-item.jsx +142 -0
  50. package/src/treeview/treeview-leaf.jsx +99 -0
  51. package/src/treeview/treeview.jsx +125 -0
  52. package/utils/styles.js +9 -0
@@ -39,28 +39,35 @@ function ColorPreviewStatic(props) {
39
39
 
40
40
  if (legacy) {
41
41
 
42
- let legacyClasses = [
43
- ownClassName,
44
- 'k-selected-color',
45
- {
46
- 'k-no-color': color === ''
47
- }
48
- ];
49
-
50
- let legacyStyles = {
51
- 'background-color': color
52
- };
53
-
54
- if (iconName === '') {
55
- return (
56
- <span className={legacyClasses} style={legacyStyles}></span>
57
- );
58
- }
42
+ // let legacyClasses = [
43
+ // ownClassName,
44
+ // 'k-selected-color',
45
+ // {
46
+ // 'k-no-color': color === ''
47
+ // }
48
+ // ];
49
+
50
+ // let legacyStyles = {
51
+ // 'background-color': color
52
+ // };
53
+
54
+ // if (iconName === '') {
55
+ // return (
56
+ // <span className={legacyClasses} style={legacyStyles}></span>
57
+ // );
58
+ // }
59
+
60
+ // return (
61
+ // <IconStatic className="k-tool-icon" name={iconName}>
62
+ // <span className={legacyClasses} style={legacyStyles}></span>
63
+ // </IconStatic>
64
+ // );
59
65
 
60
66
  return (
61
- <IconStatic className="k-tool-icon" name={iconName}>
62
- <span className={legacyClasses} style={legacyStyles}></span>
63
- </IconStatic>
67
+ <span className={colorPreviewClasses} {...ariaAttr} {...htmlAttributes}>
68
+ {iconName && <IconStatic name={iconName} className="k-color-preview-icon" />}
69
+ <span className="k-color-preview-mask" style={styles}></span>
70
+ </span>
64
71
  );
65
72
 
66
73
  }
@@ -67,17 +67,15 @@ function ColorpickerStatic(props) {
67
67
  'k-widget',
68
68
  'k-colorpicker',
69
69
  {
70
+ 'k-state-hover': hover === true,
71
+ 'k-state-focus': focus === true,
72
+ 'k-state-invalid': invalid === true,
70
73
  'k-state-disabled': disabled === true
71
74
  }
72
75
  ];
73
76
 
74
77
  let legacyWrapClasses = [
75
- 'k-picker-wrap',
76
- {
77
- 'k-state-hover': hover === true,
78
- 'k-state-focused': focus === true,
79
- 'k-state-invalid': invalid === true
80
- }
78
+ 'k-picker-wrap'
81
79
  ];
82
80
 
83
81
  return (
@@ -133,7 +131,7 @@ ColorpickerStatic.propTypes = {
133
131
  suffix: typeof '#fragment',
134
132
 
135
133
  size: typeof [ null, 'small', 'medium', 'large' ],
136
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
134
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
137
135
 
138
136
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
139
137
 
@@ -76,17 +76,15 @@ function ComboboxStatic(props) {
76
76
  'k-widget',
77
77
  'k-combobox',
78
78
  {
79
+ 'k-state-hover': hover === true,
80
+ 'k-state-focus': focus === true,
81
+ 'k-state-invalid': invalid === true,
79
82
  'k-state-disabled': disabled === true
80
83
  }
81
84
  ];
82
85
 
83
86
  let legacyWrapClasses = [
84
- 'k-dropdown-wrap',
85
- {
86
- 'k-state-hover': hover === true,
87
- 'k-state-focused': focus === true,
88
- 'k-state-invalid': invalid === true
89
- }
87
+ 'k-dropdown-wrap'
90
88
  ];
91
89
 
92
90
  return (
@@ -150,7 +148,7 @@ ComboboxStatic.propTypes = {
150
148
  suffix: typeof '#fragment',
151
149
 
152
150
  size: typeof [ null, 'small', 'medium', 'large' ],
153
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
151
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
154
152
 
155
153
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
156
154
 
@@ -75,17 +75,15 @@ function DateInputStatic(props) {
75
75
  'k-widget',
76
76
  'k-dateinput',
77
77
  {
78
+ 'k-state-hover': hover === true,
79
+ 'k-state-focus': focus === true,
80
+ 'k-state-invalid': invalid === true,
78
81
  'k-state-disabled': disabled === true
79
82
  }
80
83
  ];
81
84
 
82
85
  let legacyWrapClasses = [
83
- 'k-dateinput-wrap',
84
- {
85
- 'k-state-hover': hover === true,
86
- 'k-state-focused': focus === true,
87
- 'k-state-invalid': invalid === true
88
- }
86
+ 'k-dateinput-wrap'
89
87
  ];
90
88
 
91
89
  let legacyInputClasses = [
@@ -148,7 +146,7 @@ DateInputStatic.propTypes = {
148
146
  showClearButton: typeof true,
149
147
 
150
148
  size: typeof [ null, 'small', 'medium', 'large' ],
151
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
149
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
152
150
 
153
151
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
154
152
 
@@ -76,17 +76,15 @@ function DatePickerStatic(props) {
76
76
  'k-widget',
77
77
  'k-datepicker',
78
78
  {
79
+ 'k-state-hover': hover === true,
80
+ 'k-state-focus': focus === true,
81
+ 'k-state-invalid': invalid === true,
79
82
  'k-state-disabled': disabled === true
80
83
  }
81
84
  ];
82
85
 
83
86
  let legacyWrapClasses = [
84
- 'k-picker-wrap',
85
- {
86
- 'k-state-hover': hover === true,
87
- 'k-state-focused': focus === true,
88
- 'k-state-invalid': invalid === true
89
- }
87
+ 'k-picker-wrap'
90
88
  ];
91
89
 
92
90
  return (
@@ -150,7 +148,7 @@ DatePickerStatic.propTypes = {
150
148
  suffix: typeof '#fragment',
151
149
 
152
150
  size: typeof [ null, 'small', 'medium', 'large' ],
153
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
151
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
154
152
 
155
153
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
156
154
 
@@ -76,17 +76,15 @@ function DateTimePickerStatic(props) {
76
76
  'k-widget',
77
77
  'k-datetimepicker',
78
78
  {
79
+ 'k-state-hover': hover === true,
80
+ 'k-state-focus': focus === true,
81
+ 'k-state-invalid': invalid === true,
79
82
  'k-state-disabled': disabled === true
80
83
  }
81
84
  ];
82
85
 
83
86
  let legacyWrapClasses = [
84
- 'k-picker-wrap',
85
- {
86
- 'k-state-hover': hover === true,
87
- 'k-state-focused': focus === true,
88
- 'k-state-invalid': invalid === true
89
- }
87
+ 'k-picker-wrap'
90
88
  ];
91
89
 
92
90
  return (
@@ -150,7 +148,7 @@ DateTimePickerStatic.propTypes = {
150
148
  suffix: typeof '#fragment',
151
149
 
152
150
  size: typeof [ null, 'small', 'medium', 'large' ],
153
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
151
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
154
152
 
155
153
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
156
154
 
@@ -88,17 +88,15 @@ function DropdownListStatic(props) {
88
88
  'k-widget',
89
89
  'k-dropdown',
90
90
  {
91
+ 'k-state-hover': hover === true,
92
+ 'k-state-focus': focus === true,
93
+ 'k-state-invalid': invalid === true,
91
94
  'k-state-disabled': disabled === true
92
95
  }
93
96
  ];
94
97
 
95
98
  let legacyWrapClasses = [
96
- 'k-dropdown-wrap',
97
- {
98
- 'k-state-hover': hover === true,
99
- 'k-state-focused': focus === true,
100
- 'k-state-invalid': invalid === true
101
- }
99
+ 'k-dropdown-wrap'
102
100
  ];
103
101
 
104
102
  return (
@@ -172,7 +170,7 @@ DropdownListStatic.propTypes = {
172
170
  suffix: typeof '#fragment',
173
171
 
174
172
  size: typeof [ null, 'small', 'medium', 'large' ],
175
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
173
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
176
174
 
177
175
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
178
176
 
@@ -0,0 +1,19 @@
1
+ ```html
2
+ <!-- default rendering -->
3
+ <button type="button" class="k-fab k-fab-rectangle k-fab-md k-rounded-full k-fab-solid k-fab-solid-primary">
4
+ <span class="k-fab-icon k-icon k-i-plus"></span>
5
+ <span class="k-fab-text">Create</span>
6
+ </button>
7
+
8
+ <!-- canonical rendering -->
9
+ <button class="
10
+ k-fab
11
+ k-fab-{size}
12
+ k-fab-{rounded}
13
+ k-fab-{fillMode}
14
+ k-fab-{fillMode}-{themeColor}
15
+ ">
16
+ {icon !== '' && <span class="k-fab-icon k-icon k-i-{icon}"></span>}
17
+ {text !== '' && <span class="k-fab-text">{text}</span>}
18
+ </button>
19
+ ```
@@ -0,0 +1,154 @@
1
+ import * as styles from '../../utils/styles';
2
+ import { Component, globalDefaultProps } from '../component/index';
3
+ import { IconStatic } from '../icon/index';
4
+
5
+ class Fab extends Component {
6
+
7
+ init() {
8
+ this._props.text = this.element.innerHTML;
9
+ }
10
+
11
+ render() {
12
+ return <FabStatic {...this.props} />;
13
+ }
14
+ }
15
+
16
+ function FabStatic(props) {
17
+ const {
18
+ className: ownClassName,
19
+
20
+ text,
21
+ type,
22
+
23
+ size,
24
+ rounded,
25
+ shape,
26
+
27
+ fillMode,
28
+ themeColor,
29
+
30
+ icon,
31
+
32
+ position,
33
+
34
+ hover,
35
+ focus,
36
+ active,
37
+ selected,
38
+ disabled,
39
+
40
+ aria,
41
+ legacy,
42
+
43
+ ...htmlAttributes
44
+ } = props;
45
+
46
+ let buttonClasses = [
47
+ ownClassName,
48
+ 'k-fab',
49
+ styles.positionClass( position, 'k'),
50
+ styles.shapeClass( shape, 'k-fab' ),
51
+ styles.sizeClass( size, 'k-fab' ),
52
+ styles.roundedClass( rounded ),
53
+ styles.fillModeClass( fillMode, 'k-fab' ),
54
+ styles.themeColorClass( fillMode, themeColor, 'k-fab' ),
55
+ {
56
+ 'k-hover': hover === true,
57
+ 'k-focus': focus === true,
58
+ 'k-active': active === true,
59
+ 'k-selected': selected === true,
60
+ 'k-disabled': disabled === true
61
+ }
62
+ ];
63
+
64
+ // Augment attributes
65
+ htmlAttributes.disabled = disabled;
66
+
67
+ let ariaAttr = aria
68
+ ? {}
69
+ : {};
70
+
71
+ if (legacy) {
72
+ let legacyClasses = [
73
+ ownClassName,
74
+ 'k-fab',
75
+ `k-fab-${themeColor}`,
76
+ {
77
+ 'k-fab-rectangle': rounded === null,
78
+ 'k-fab-rounded': rounded !== 'full' && rounded !== null,
79
+ 'k-fab-pill': rounded === 'full'
80
+ },
81
+ {
82
+ 'k-state-hover': hover === true,
83
+ 'k-state-focus': focus === true,
84
+ 'k-state-active': active === true,
85
+ 'k-state-selected': selected === true,
86
+ 'k-state-disabled': disabled === true
87
+ },
88
+ styles.positionClass( position, 'k'),
89
+ styles.sizeClass( size, 'k-fab' )
90
+ ];
91
+
92
+ return (
93
+ <button type={type} className={legacyClasses} {...ariaAttr} {...htmlAttributes}>
94
+ <IconStatic className="k-fab-icon" name={icon} />
95
+ {text && <span className="k-fab-text">{text}</span>}
96
+ </button>
97
+ );
98
+ }
99
+
100
+ return (
101
+ <button type={type} className={buttonClasses} {...ariaAttr} {...htmlAttributes}>
102
+ <IconStatic className="k-fab-icon" name={icon} />
103
+ {text && <span className="k-fab-text">{text}</span>}
104
+ </button>
105
+ );
106
+ }
107
+
108
+ FabStatic.defaultProps = {
109
+ ...globalDefaultProps,
110
+
111
+ text: '',
112
+ icon: '',
113
+
114
+ className: '',
115
+ type: 'button',
116
+
117
+ size: 'medium',
118
+ rounded: 'full',
119
+ shape: 'rectangle',
120
+
121
+ position: null,
122
+
123
+ fillMode: 'solid',
124
+ themeColor: 'primary'
125
+ };
126
+
127
+ FabStatic.propTypes = {
128
+ text: typeof '',
129
+ icon: typeof '',
130
+
131
+ type: typeof [ 'button', 'submit', 'reset' ],
132
+
133
+ size: typeof [ null, 'small', 'medium', 'large' ],
134
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
135
+ shape: typeof [ null, 'rectangle', 'square' ],
136
+ fillMode: typeof [ null, 'solid' ],
137
+ themeColor: typeof [ null, 'primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse' ],
138
+
139
+ position: typeof [ null, 'top-start', 'top-center', 'top-end', 'middle-start', 'middle-end', 'bottom-start', 'bottom-center', 'bottom-end' ],
140
+
141
+ hover: typeof false,
142
+ focus: typeof false,
143
+ active: typeof false,
144
+ selected: typeof false,
145
+ disabled: typeof false,
146
+
147
+ aria: typeof false,
148
+ legacy: typeof false,
149
+
150
+ className: typeof '',
151
+ htmlAttributes: typeof []
152
+ };
153
+
154
+ export { Fab, FabStatic };
@@ -0,0 +1 @@
1
+ export * from './fab.jsx';
package/src/index.js CHANGED
@@ -31,7 +31,7 @@ export * from './nodata/index';
31
31
  // Indicators
32
32
  export * from './avatar/index';
33
33
  // export * from './badge/index';
34
- // export * from './chip/index';
34
+ export * from './chip/index';
35
35
  // export * from './color-preview/index';
36
36
  // export * from './loader/index';
37
37
  // export * from './skeleton/index';
@@ -69,8 +69,8 @@ export * from './switch/index';
69
69
 
70
70
  // Command interfaces
71
71
  // export * from './action-buttons/index';
72
- // export * from './fab/index';
73
- // export * from './menu/index';
72
+ export * from './fab/index';
73
+ export * from './menu/index';
74
74
  // export * from './toolbar/index';
75
75
 
76
76
  // Popups and modals
@@ -89,6 +89,7 @@ export * from './switch/index';
89
89
  // export * from './pager/index';
90
90
  // export * from './stepper/index';
91
91
  // export * from './tabstrip/index';
92
+ export * from './treeview/index';
92
93
  // export * from './wizard/index';
93
94
 
94
95
  // Layout & containers
@@ -127,7 +127,7 @@ InputStatic.propTypes = {
127
127
  suffix: typeof '#fragment',
128
128
 
129
129
  size: typeof [ null, 'small', 'medium', 'large' ],
130
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
130
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
131
131
 
132
132
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
133
133
 
@@ -62,9 +62,9 @@ function PickerStatic(props) {
62
62
  let pickerClasses = [
63
63
  ownClassName,
64
64
  'k-picker',
65
- styles.sizeClass( size, 'k-input' ),
65
+ styles.sizeClass( size, 'k-picker' ),
66
66
  styles.roundedClass( rounded ),
67
- styles.fillModeClass( fillMode, 'k-input' ),
67
+ styles.fillModeClass( fillMode, 'k-picker' ),
68
68
  {
69
69
  'k-hover': hover === true,
70
70
  'k-focus': focus === true,
@@ -125,7 +125,7 @@ PickerStatic.propTypes = {
125
125
  suffix: typeof '#fragment',
126
126
 
127
127
  size: typeof [ null, 'small', 'medium', 'large' ],
128
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
128
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
129
129
 
130
130
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
131
131
 
@@ -90,4 +90,18 @@
90
90
  </ul>
91
91
  </div>
92
92
  </div>
93
+
94
+ <!-- filter -->
95
+ <div class="k-list-filter">
96
+ <span class="k-searchbox k-input k-input-md k-rounded-md k-input-solid" type="text" autocomplete="off">
97
+ <span class="k-input-icon k-icon k-i-search"></span>
98
+ <input type="text" class="k-input-inner" placeholder="Filter..." autocomplete="off">
99
+ </span>
100
+ </div>
101
+
102
+ <!-- no data template -->
103
+ <div class="k-list k-list-md">
104
+ <div class="k-no-data">No data found.</div>
105
+ </div>
93
106
  ```
107
+
@@ -25,32 +25,33 @@ function ListContentStatic(props) {
25
25
  'k-list-content'
26
26
  ];
27
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
28
  let listULClasses = [
38
29
  'k-list-ul'
39
30
  ];
40
31
 
41
- let legacyListULClasses = [
42
- 'k-list',
43
- 'k-reset',
44
- {
45
- 'k-virtual-list': virtualization === true
46
- }
47
- ];
48
-
49
32
  let ariaAttr = aria
50
33
  ? {}
51
34
  : {};
52
35
 
53
36
  if (legacy) {
37
+
38
+ let legacyListContentClasses = [
39
+ ownClassName,
40
+ 'k-list-content',
41
+ {
42
+ 'k-list-scroller': virtualization === false || virtualization === undefined,
43
+ 'k-virtual-content': virtualization === true
44
+ }
45
+ ];
46
+
47
+ let legacyListULClasses = [
48
+ 'k-list',
49
+ 'k-reset',
50
+ {
51
+ 'k-virtual-list': virtualization === true
52
+ }
53
+ ];
54
+
54
55
  return (
55
56
  <div className={legacyListContentClasses} {...ariaAttr} {...htmlAttributes}>
56
57
  <ul className={legacyListULClasses}>
@@ -20,7 +20,8 @@ function ListHeaderStatic(props) {
20
20
 
21
21
  let listHeaderClasses = [
22
22
  ownClassName,
23
- 'k-list-header'
23
+ // 'k-list-header',
24
+ 'k-list-group-sticky-header'
24
25
  ];
25
26
 
26
27
  let legacyListHeaderClasses = [
@@ -71,23 +71,20 @@ function MaskedTextboxStatic(props) {
71
71
  ownClassName,
72
72
  'k-widget',
73
73
  'k-maskedtextbox',
74
- {
75
- 'k-state-disabled': disabled === true
76
- }
77
- ];
78
-
79
- let legacyInputClasses = [
80
- 'k-textbox',
81
74
  {
82
75
  'k-state-hover': hover === true,
83
- 'k-state-focused': focus === true,
84
- 'k-state-invalid': invalid === true
76
+ 'k-state-focus': focus === true,
77
+ 'k-state-invalid': invalid === true,
78
+ 'k-state-disabled': disabled === true
85
79
  }
86
80
  ];
87
81
 
88
82
  return (
89
83
  <InputStatic className={legacyClasses} {...htmlAttributes}>
90
- <input type={type} className={legacyInputClasses} {...inputAttributes} />
84
+ <input type={type} className="k-input" {...inputAttributes} />
85
+ <InputValidationIconStatic {...props} />
86
+ <InputLoadingIconStatic {...props} />
87
+ <InputClearValueStatic {...props} />
91
88
  </InputStatic>
92
89
  );
93
90
  }
@@ -133,7 +130,7 @@ MaskedTextboxStatic.propTypes = {
133
130
  showClearButton: typeof true,
134
131
 
135
132
  size: typeof [ null, 'small', 'medium', 'large' ],
136
- rounded: typeof [ null, 'small', 'medium', 'large', 'pill' ],
133
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
137
134
 
138
135
  fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
139
136
 
@@ -0,0 +1,40 @@
1
+ ```html
2
+ <!-- default rendering -->
3
+ <ul class="k-group k-menu-group k-reset"></ul>
4
+
5
+ <!-- canonical rendering -->
6
+ <ul class="
7
+ k-group k-menu-group k-reset
8
+ k-menulist-{size}
9
+ "
10
+ ></ul>
11
+ ```
12
+
13
+ ```html
14
+ <!-- default rendering -->
15
+ <li class="k-item k-menu-item">
16
+ <span class="k-link k-menu-link">
17
+ {icon !== '' && <span class="k-icon k-i-{icon}"></span>}
18
+ {text !== '' && <span class="k-menu-link-text">Text</span>}
19
+ <span className="k-menu-expand-arrow k-icon k-i-{arrowIconName || 'none'}"></span>
20
+ </span>
21
+ </li>
22
+
23
+ <!-- canonical rendering -->
24
+ <li class="
25
+ k-item
26
+ k-menu-item
27
+ {hover && 'k-hover'}
28
+ {focus && 'k-focus'}
29
+ {active && 'k-active'}
30
+ {disabled && 'k-disabled'}
31
+ " disabled={disabled}>
32
+ <span class="k-link k-menu-link">
33
+ {icon !== '' && <span class="k-icon k-i-{icon}"></span>}
34
+ {text !== '' && <span class="k-menu-link-text">Text</span>}
35
+ {showArrow && <span className="k-menu-expand-arrow">
36
+ <span className="k-icon k-i-{arrowIconName || 'none'}"></span>
37
+ </span>}
38
+ </span>
39
+ </li>
40
+ ```
@@ -0,0 +1,3 @@
1
+ export * from './menu-list.jsx';
2
+ export * from './menu-item.jsx';
3
+ export * from './menu-item-content.jsx';