@progress/kendo-themes-html 5.0.0-next.5 → 5.0.0

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 (104) hide show
  1. package/lib/jsx-runtime.js +54 -3
  2. package/package.json +8 -8
  3. package/src/autocomplete/README.md +15 -9
  4. package/src/autocomplete/autocomplete.jsx +17 -12
  5. package/src/avatar/README.md +21 -0
  6. package/src/avatar/avatar.jsx +110 -0
  7. package/src/avatar/index.js +1 -0
  8. package/src/button/README.md +8 -8
  9. package/src/button/button.jsx +44 -26
  10. package/src/checkbox/README.md +8 -8
  11. package/src/checkbox/checkbox.jsx +5 -5
  12. package/src/chip/README.md +47 -0
  13. package/src/chip/chip-actions.jsx +80 -0
  14. package/src/chip/chip-avatar.jsx +13 -0
  15. package/src/chip/chip-list.jsx +84 -0
  16. package/src/chip/chip.jsx +180 -0
  17. package/src/chip/index.js +4 -0
  18. package/src/colorpicker/README.md +24 -15
  19. package/src/colorpicker/color-preview.jsx +33 -22
  20. package/src/colorpicker/colorpicker.jsx +14 -16
  21. package/src/combobox/README.md +15 -9
  22. package/src/combobox/combobox.jsx +20 -17
  23. package/src/{component.js → component/component.jsx} +4 -2
  24. package/src/component/index.js +1 -0
  25. package/src/dateinput/README.md +48 -0
  26. package/src/dateinput/dateinput.jsx +168 -0
  27. package/src/dateinput/index.js +1 -0
  28. package/src/datepicker/README.md +36 -0
  29. package/src/datepicker/datepicker.jsx +168 -0
  30. package/src/datepicker/index.js +1 -0
  31. package/src/datetimepicker/README.md +36 -0
  32. package/src/datetimepicker/datetimepicker.jsx +168 -0
  33. package/src/datetimepicker/index.js +1 -0
  34. package/src/dropdownlist/README.md +23 -14
  35. package/src/dropdownlist/dropdownlist.jsx +26 -18
  36. package/src/fab/README.md +19 -0
  37. package/src/fab/fab.jsx +150 -0
  38. package/src/fab/index.js +1 -0
  39. package/src/icon/icon.jsx +1 -1
  40. package/src/index.js +51 -5
  41. package/src/input/index.js +3 -0
  42. package/src/input/input-clear-value.jsx +31 -0
  43. package/src/input/input-inner-input.jsx +1 -1
  44. package/src/input/input-inner-span.jsx +11 -10
  45. package/src/input/input-inner-textarea.jsx +1 -1
  46. package/src/input/input-loading-icon.jsx +28 -0
  47. package/src/input/input-prefix.jsx +1 -1
  48. package/src/input/input-suffix.jsx +1 -1
  49. package/src/input/input-validation-icon.jsx +37 -0
  50. package/src/input/input.jsx +6 -4
  51. package/src/input/picker.jsx +6 -6
  52. package/src/list/README.md +107 -0
  53. package/src/list/index.js +5 -0
  54. package/src/list/list-content.jsx +95 -0
  55. package/src/list/list-group-item.jsx +66 -0
  56. package/src/list/list-header.jsx +67 -0
  57. package/src/list/list-item.jsx +117 -0
  58. package/src/list/list.jsx +182 -0
  59. package/src/maskedtextbox/README.md +15 -9
  60. package/src/maskedtextbox/maskedtextbox.jsx +29 -19
  61. package/src/menu/README.md +40 -0
  62. package/src/menu/index.js +3 -0
  63. package/src/menu/menu-item-content.jsx +48 -0
  64. package/src/menu/menu-item.jsx +174 -0
  65. package/src/menu/menu-list.jsx +74 -0
  66. package/src/menubutton/README.md +60 -0
  67. package/src/menubutton/index.js +1 -0
  68. package/src/menubutton/menubutton.jsx +161 -0
  69. package/src/multiselect/README.md +37 -0
  70. package/src/multiselect/index.js +2 -0
  71. package/src/multiselect/multiselect-chip-list.jsx +55 -0
  72. package/src/multiselect/multiselect.jsx +189 -0
  73. package/src/nodata/index.js +1 -0
  74. package/src/nodata/nodata.jsx +64 -0
  75. package/src/numerictextbox/README.md +15 -9
  76. package/src/numerictextbox/numerictextbox.jsx +25 -16
  77. package/src/popup/README.md +15 -0
  78. package/src/popup/index.js +1 -0
  79. package/src/popup/popup.jsx +80 -0
  80. package/src/radio/README.md +7 -7
  81. package/src/radio/radio.jsx +8 -4
  82. package/src/searchbar/searchbar.jsx +1 -1
  83. package/src/searchbox/README.md +16 -12
  84. package/src/searchbox/searchbox.jsx +23 -14
  85. package/src/spinbutton/spinbutton.jsx +9 -3
  86. package/src/splitbutton/README.md +76 -0
  87. package/src/splitbutton/index.js +1 -0
  88. package/src/splitbutton/splitbutton.jsx +176 -0
  89. package/src/switch/README.md +3 -3
  90. package/src/switch/switch.jsx +6 -6
  91. package/src/textarea/README.md +17 -11
  92. package/src/textarea/textarea.jsx +4 -4
  93. package/src/textbox/README.md +15 -9
  94. package/src/textbox/textbox.jsx +21 -4
  95. package/src/timepicker/README.md +36 -0
  96. package/src/timepicker/index.js +1 -0
  97. package/src/timepicker/timepicker.jsx +168 -0
  98. package/src/treeview/README.md +0 -0
  99. package/src/treeview/index.js +4 -0
  100. package/src/treeview/treeview-group.jsx +70 -0
  101. package/src/treeview/treeview-item.jsx +142 -0
  102. package/src/treeview/treeview-leaf.jsx +99 -0
  103. package/src/treeview/treeview.jsx +125 -0
  104. package/utils/styles.js +23 -5
@@ -1,6 +1,6 @@
1
- import { Component, globalDefaultProps } from '../component';
2
- import { IconStatic } from '../icon/index';
1
+ import { Component, globalDefaultProps } from '../component/index';
3
2
  import { InputStatic, InputInnerInputStatic } from '../input/index';
3
+ import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
4
4
  import { SpinButtonStatic } from '../spinbutton/index';
5
5
 
6
6
  class NumericTextbox extends Component {
@@ -45,7 +45,7 @@ function NumericTextboxStatic(props) {
45
45
  htmlAttributes.fillMode = fillMode;
46
46
  htmlAttributes.hover = hover;
47
47
  htmlAttributes.focus = focus;
48
- htmlAttributes.valid = invalid;
48
+ htmlAttributes.valid = valid;
49
49
  htmlAttributes.invalid = invalid;
50
50
  htmlAttributes.required = required;
51
51
  htmlAttributes.disabled = disabled;
@@ -75,17 +75,15 @@ function NumericTextboxStatic(props) {
75
75
  'k-widget',
76
76
  'k-numerictextbox',
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-numeric-wrap',
84
- {
85
- 'k-state-hover': hover === true,
86
- 'k-state-focused': focus === true,
87
- 'k-state-invalid': invalid === true
88
- }
86
+ 'k-numeric-wrap'
89
87
  ];
90
88
 
91
89
  let legacyInputClasses = [
@@ -97,7 +95,9 @@ function NumericTextboxStatic(props) {
97
95
  <InputStatic className={legacyClasses} {...htmlAttributes}>
98
96
  <span className={legacyWrapClasses}>
99
97
  <input type={type} className={legacyInputClasses} {...inputAttributes} />
100
- {invalid && <IconStatic name="warning" />}
98
+ <InputValidationIconStatic {...props} />
99
+ <InputLoadingIconStatic {...props} />
100
+ <InputClearValueStatic {...props} />
101
101
  {showSpinButton === true && <SpinButtonStatic />}
102
102
  </span>
103
103
  </InputStatic>
@@ -107,9 +107,10 @@ function NumericTextboxStatic(props) {
107
107
  return (
108
108
  <InputStatic className={numericClasses} {...ariaAttr} {...htmlAttributes}>
109
109
  <InputInnerInputStatic {...inputAttributes} />
110
- {valid && <IconStatic className="k-input-icon" name="check" />}
111
- {invalid && <IconStatic className="k-input-icon" name="warning" />}
112
- {showSpinButton === true && <SpinButtonStatic className="k-input-spinner" />}
110
+ <InputValidationIconStatic {...props} />
111
+ <InputLoadingIconStatic {...props} />
112
+ <InputClearValueStatic {...props} />
113
+ {showSpinButton === true && <SpinButtonStatic className="k-input-spinner" size={size} fillMode={fillMode} />}
113
114
  </InputStatic>
114
115
  );
115
116
  }
@@ -123,6 +124,10 @@ NumericTextboxStatic.defaultProps = {
123
124
 
124
125
  showSpinButton: true,
125
126
 
127
+ showValidationIcon: true,
128
+ showLoadingIcon: true,
129
+ showClearButton: true,
130
+
126
131
  size: 'medium',
127
132
  rounded: 'medium',
128
133
 
@@ -137,10 +142,14 @@ NumericTextboxStatic.propTypes = {
137
142
 
138
143
  showSpinButton: typeof true,
139
144
 
140
- size: typeof [ 'none', 'small', 'medium', 'large' ],
141
- rounded: typeof [ 'none', 'small', 'medium', 'large', 'pill' ],
145
+ showValidationIcon: typeof true,
146
+ showLoadingIcon: typeof true,
147
+ showClearButton: typeof true,
148
+
149
+ size: typeof [ null, 'small', 'medium', 'large' ],
150
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
142
151
 
143
- fillMode: typeof [ 'none', 'solid', 'flat', 'outline' ],
152
+ fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
144
153
 
145
154
  hover: typeof false,
146
155
  focus: typeof false,
@@ -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' ],
73
+
74
+ aria: typeof false,
75
+ legacy: typeof false,
76
+
77
+ htmlAttributes: typeof []
78
+ };
79
+
80
+ export { Popup, PopupStatic };
@@ -6,15 +6,15 @@
6
6
  <input type="radio"
7
7
  class="
8
8
  k-radio
9
- k-radio-${size}
10
- k-rounded-${rounded}
9
+ k-radio-{size}
10
+ k-rounded-{rounded}
11
11
 
12
- ${checked && 'k-checked'}
12
+ {checked && 'k-checked'}
13
13
 
14
- ${valid && 'k-valid'}
15
- ${invalid && 'k-invalid'}
16
- ${required && 'k-required'}
17
- ${disabled && 'k-disabled'}
14
+ {valid && 'k-valid'}
15
+ {invalid && 'k-invalid'}
16
+ {required && 'k-required'}
17
+ {disabled && 'k-disabled'}
18
18
  "
19
19
  disabled={disabled}
20
20
  />
@@ -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() {
@@ -62,10 +62,14 @@ function RadioStatic(props) {
62
62
  }
63
63
  ];
64
64
 
65
- return <input type="radio" className={legacyClasses} {...ariaAttr} {...htmlAttributes}/>;
65
+ return (
66
+ <span className="k-radio-wrap"><input type="radio" className={legacyClasses} {...ariaAttr} {...htmlAttributes}/></span>
67
+ );
66
68
  }
67
69
 
68
- return <input type="radio" className={radioClasses} {...ariaAttr} {...htmlAttributes}/>;
70
+ return (
71
+ <span className="k-radio-wrap"><input type="radio" className={radioClasses} {...ariaAttr} {...htmlAttributes}/></span>
72
+ );
69
73
  }
70
74
 
71
75
  RadioStatic.defaultProps = {
@@ -86,7 +90,7 @@ RadioStatic.propTypes = {
86
90
 
87
91
  checked: typeof false,
88
92
 
89
- size: typeof [ 'none', 'small', 'medium', 'large' ],
93
+ size: typeof [ null, 'small', 'medium', 'large' ],
90
94
 
91
95
  hover: typeof false,
92
96
  focus: typeof false,
@@ -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 {
@@ -2,25 +2,29 @@
2
2
  <!-- default rendering -->
3
3
  <span class="k-searchbox k-input k-input-md k-rounded-md k-input-solid">
4
4
  <input type="text" class="k-input-inner" value="..." placeholder="..." />
5
- <span class="k-input-icon k-icon k-i-search"></span>
6
5
  </span>
7
6
 
8
7
  <!-- canonical rendering -->
9
8
  <span class="
10
9
  k-searchbox
11
10
  k-input
12
- k-input-${size}
13
- k-rounded-${rounded}
14
- k-input-${fillMode}
11
+ k-input-{size}
12
+ k-rounded-{rounded}
13
+ k-input-{fillMode}
15
14
 
16
- ${valid && 'k-valid'}
17
- ${invalid && 'k-invalid'}
18
- ${required && 'k-required'}
19
- ${disabled && 'k-disabled'}
15
+ {valid && 'k-valid'}
16
+ {invalid && 'k-invalid'}
17
+ {loading && 'k-loading'}
18
+ {required && 'k-required'}
19
+ {disabled && 'k-disabled'}
20
20
  ">
21
- {showIcon && iconPosition === 'leading' && <span class="k-input-icon k-icon k-i-{iconName}"></span>}
22
- <input type={type} class="k-input-inner" value={value} placeholder={placeholder} disabled={disabled} />}
23
- {text !== '' <span class="k-clear-value"></span>}
24
- {showIcon && iconPosition === 'trailing' && <span class="k-input-icon k-icon k-i-{iconName}"></span>}
21
+ {showInputIcon && inputIconName !== '' && <span class="k-input-icon k-i-icon k-i-{inputIconName}"></span>}
22
+ {inputPrefix && <span class="k-input-prefix">...</span>}
23
+ <input type={type} class="k-input-inner" value={value} placeholder={placeholder} disabled={disabled} />
24
+ {inputPrefix && <span class="k-input-suffix">...</span>}
25
+ {showValidationIcon && valid && <span class="k-validation-icon k-icon k-i-check"></span>}
26
+ {showValidationIcon && invalid && <span class="k-validation-icon k-icon k-i-warning"></span>}
27
+ {showLoadingIcon && loading && <span class="k-icon k-i-loading"></span>}
28
+ {showClearValue && text !== '' && <span class="k-clear-value"><span class="k-icon k-i-x"></span></span>}
25
29
  </span>
26
30
  ```
@@ -1,5 +1,6 @@
1
- import { globalDefaultProps } from '../component';
1
+ import { globalDefaultProps } from '../component/index';
2
2
  import { Input, InputStatic, InputInnerInputStatic } from '../input/index';
3
+ import { InputValidationIconStatic, InputLoadingIconStatic, InputClearValueStatic } from '../input/index';
3
4
  import { IconStatic } from '../icon/index';
4
5
 
5
6
  class Searchbox extends Input {
@@ -19,7 +20,6 @@ function SearchboxInner(props) {
19
20
  autocomplete,
20
21
 
21
22
  showIcon,
22
- iconPosition,
23
23
  iconName,
24
24
 
25
25
  prefix,
@@ -87,22 +87,24 @@ function SearchboxInner(props) {
87
87
 
88
88
  return (
89
89
  <InputStatic className={legacyClasses} {...htmlAttributes}>
90
- {prefix}
91
- {showIcon && iconPosition === 'leading' && <IconStatic name={iconName} className="k-input-icon" />}
90
+ {showIcon && <IconStatic name={iconName} className="k-input-icon" />}
92
91
  <input type={type} className="k-input" {...inputAttributes} />
93
- {showIcon && iconPosition === 'trailing' && <IconStatic name={iconName} className="k-input-icon" />}
94
- {suffix}
92
+ <InputValidationIconStatic {...props} />
93
+ <InputLoadingIconStatic {...props} />
94
+ <InputClearValueStatic {...props} />
95
95
  </InputStatic>
96
96
  );
97
97
  }
98
98
 
99
99
  return (
100
100
  <InputStatic className={searchBoxClasses} {...ariaAttr} {...htmlAttributes}>
101
+ {showIcon && <IconStatic name={iconName} className="k-input-icon" />}
101
102
  {prefix}
102
- {showIcon && iconPosition === 'leading' && <IconStatic name={iconName} className="k-input-icon" />}
103
103
  <InputInnerInputStatic {...inputAttributes} />
104
- {showIcon && iconPosition === 'trailing' && <IconStatic name={iconName} className="k-input-icon" />}
105
104
  {suffix}
105
+ <InputValidationIconStatic {...props} />
106
+ <InputLoadingIconStatic {...props} />
107
+ <InputClearValueStatic {...props} />
106
108
  </InputStatic>
107
109
  );
108
110
  }
@@ -112,13 +114,16 @@ SearchboxInner.defaultProps = {
112
114
 
113
115
  type: 'text',
114
116
  value: '',
115
- placeholder: 'Search...',
117
+ placeholder: '',
116
118
  autocomplete: 'off',
117
119
 
118
120
  showIcon: true,
119
- iconPosition: 'leading',
120
121
  iconName: 'search',
121
122
 
123
+ showValidationIcon: true,
124
+ showLoadingIcon: true,
125
+ showClearButton: true,
126
+
122
127
  size: 'medium',
123
128
  rounded: 'medium',
124
129
 
@@ -135,21 +140,25 @@ SearchboxInner.propTypes = {
135
140
  autocomplete: typeof [ 'on', 'off' ],
136
141
 
137
142
  showIcon: typeof true,
138
- iconPosition: typeof [ 'leading', 'trailing' ],
139
143
  iconName: typeof '',
140
144
 
145
+ showValidationIcon: typeof true,
146
+ showLoadingIcon: typeof true,
147
+ showClearButton: typeof true,
148
+
141
149
  prefix: typeof '#fragment',
142
150
  suffix: typeof '#fragment',
143
151
 
144
- size: typeof [ 'none', 'small', 'medium', 'large' ],
145
- rounded: typeof [ 'none', 'small', 'medium', 'large', 'pill' ],
152
+ size: typeof [ null, 'small', 'medium', 'large' ],
153
+ rounded: typeof [ null, 'small', 'medium', 'large', 'full' ],
146
154
 
147
- fillMode: typeof [ 'none', 'solid', 'flat', 'outline' ],
155
+ fillMode: typeof [ null, 'solid', 'flat', 'outline' ],
148
156
 
149
157
  hover: typeof false,
150
158
  focus: typeof false,
151
159
  valid: typeof false,
152
160
  invalid: typeof false,
161
+ loading: typeof false,
153
162
  required: typeof false,
154
163
  disabled: typeof false,
155
164
 
@@ -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
 
@@ -13,6 +13,9 @@ function SpinButtonStatic(props) {
13
13
  const {
14
14
  className: ownClassName,
15
15
 
16
+ size,
17
+ fillMode,
18
+
16
19
  aria,
17
20
  legacy,
18
21
 
@@ -43,8 +46,8 @@ function SpinButtonStatic(props) {
43
46
 
44
47
  return (
45
48
  <span className={spinButtonClasses} {...ariaAttr} {...htmlAttributes}>
46
- <ButtonStatic size="none" rounded="none" className="k-spinner-increase" icon="arrow-n" />
47
- <ButtonStatic size="none" rounded="none" className="k-spinner-decrease" icon="arrow-s" />
49
+ <ButtonStatic className="k-spinner-increase" icon="arrow-n" shape={null} rounded={null} size={size} fillMode={fillMode} />
50
+ <ButtonStatic className="k-spinner-decrease" icon="arrow-s" shape={null} rounded={null} size={size} fillMode={fillMode} />
48
51
  </span>
49
52
  );
50
53
  }
@@ -56,6 +59,9 @@ SpinButtonStatic.defaultProps = {
56
59
  SpinButtonStatic.propTypes = {
57
60
  className: typeof '',
58
61
 
62
+ size: typeof '',
63
+ fillMode: typeof '',
64
+
59
65
  aria: typeof false,
60
66
  legacy: typeof false,
61
67
 
@@ -0,0 +1,76 @@
1
+ ```html
2
+ <!-- default rendering -->
3
+ <div class="k-split-button k-button-group k-rounded-md">
4
+ <button
5
+ class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base"
6
+ type="button"
7
+ >
8
+ <span className="k-button-text">Text</span>
9
+ </button>
10
+ <button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button">
11
+ <span class="k-icon k-i-arrow-s"></span>
12
+ </button>
13
+ </div>
14
+
15
+ <!-- canonical rendering -->
16
+ <div class="k-split-button k-button-group k-rounded-${rounded}">
17
+ <button class="
18
+ k-button
19
+ ${text === '' && icon !== '' && 'k-icon-button'}
20
+ k-button-${size}
21
+ k-button-${shape}
22
+ k-rounded-${rounded}
23
+ k-button-${fillMode}
24
+ k-button-${fillMode}-${themeColor}
25
+ k-${state}
26
+ ${disabled && 'k-disabled'}
27
+ " type={type} disabled={disabled}>
28
+ {icon !== '' && <span class="k-button-icon k-icon k-i-${icon}"></span>}
29
+ {text !== '' && <span class="k-button-text">Text</span>}
30
+ </button>
31
+ <button class="
32
+ k-button
33
+ k-icon-button
34
+ k-button-${size}
35
+ k-button-${shape}
36
+ k-rounded-${rounded}
37
+ k-button-${fillMode}
38
+ k-button-${fillMode}-${themeColor}
39
+ k-${state}
40
+ ${disabled && 'k-disabled'}
41
+ " type={type} disabled={disabled}>
42
+ <span class="k-icon k-i-${arrowIconName}"></span>
43
+ </button>
44
+ </div>
45
+
46
+ <!-- popup menu items default rendering -->
47
+ <div class="k-animation-container k-animation-container-fixed k-animation-container-shown">
48
+ <div class="k-popup k-menu-popup">
49
+ <ul class="k-group k-menu-group k-reset k-menu-group-md">
50
+ <li class="k-item k-menu-item">
51
+ <span class="k-link k-menu-link">
52
+ <span class="k-menu-link-text">Text</span>
53
+ </span>
54
+ </li>
55
+ </ul>
56
+ </div>
57
+ </div>
58
+
59
+ <!-- popup menu items canonical rendering -->
60
+ <div class="k-animation-container k-animation-container-fixed k-animation-container-shown">
61
+ <div class="k-popup k-menu-popup">
62
+ <ul class="k-group k-menu-group k-reset k-menu-group-${size}">
63
+ <li class="k-item k-menu-item">
64
+ <span class="k-link k-menu-link k-${state}">
65
+ {icon !== '' && <span class="k-icon k-i-${icon}"></span>}
66
+ {text !== '' && <span class="k-menu-link-text">Text</span>}
67
+ {hasChildren ?
68
+ <span class="k-menu-expand-arrow k-icon k-i-${arrowIconName || 'arrow-60-right'}"></span> :
69
+ <span class="k-menu-expand-arrow k-icon k-i-none"></span>
70
+ }
71
+ </span>
72
+ </li>
73
+ </ul>
74
+ </div>
75
+ </div>
76
+ ```
@@ -0,0 +1 @@
1
+ export * from './splitbutton.jsx';