@progress/kendo-react-inputs 5.6.0-dev.202208251227 → 5.7.0-sig.202208281415

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 (785) hide show
  1. package/api.json +71211 -0
  2. package/dist/cdn/js/kendo-react-inputs.js +1 -1
  3. package/dist/es/main.d.ts +2 -0
  4. package/dist/es/main.js +2 -0
  5. package/dist/es/messages/index.d.ts +15 -0
  6. package/dist/es/messages/index.js +15 -0
  7. package/dist/es/package-metadata.js +1 -1
  8. package/dist/es/signature/Signature.d.ts +14 -0
  9. package/dist/es/signature/Signature.js +346 -0
  10. package/dist/es/signature/interfaces/SignatureBlurEvent.d.ts +7 -0
  11. package/dist/es/signature/interfaces/SignatureBlurEvent.js +1 -0
  12. package/dist/es/signature/interfaces/SignatureChangeEvent.d.ts +11 -0
  13. package/dist/es/signature/interfaces/SignatureChangeEvent.js +1 -0
  14. package/dist/es/signature/interfaces/SignatureCloseEvent.d.ts +7 -0
  15. package/dist/es/signature/interfaces/SignatureCloseEvent.js +1 -0
  16. package/dist/es/signature/interfaces/SignatureFocusEvent.d.ts +7 -0
  17. package/dist/es/signature/interfaces/SignatureFocusEvent.js +1 -0
  18. package/dist/es/signature/interfaces/SignatureHandle.d.ts +34 -0
  19. package/dist/es/signature/interfaces/SignatureHandle.js +1 -0
  20. package/dist/es/signature/interfaces/SignatureOpenEvent.d.ts +7 -0
  21. package/dist/es/signature/interfaces/SignatureOpenEvent.js +1 -0
  22. package/dist/es/signature/interfaces/SignatureProps.d.ts +192 -0
  23. package/dist/es/signature/interfaces/SignatureProps.js +1 -0
  24. package/dist/es/signature/interfaces/index.d.ts +7 -0
  25. package/dist/es/signature/interfaces/index.js +1 -0
  26. package/dist/es/signature/utils/index.d.ts +4 -0
  27. package/dist/es/signature/utils/index.js +10 -0
  28. package/dist/npm/main.d.ts +2 -0
  29. package/dist/npm/main.js +2 -0
  30. package/dist/npm/messages/index.d.ts +15 -0
  31. package/dist/npm/messages/index.js +16 -1
  32. package/dist/npm/package-metadata.js +1 -1
  33. package/dist/npm/signature/Signature.d.ts +14 -0
  34. package/dist/npm/signature/Signature.js +349 -0
  35. package/dist/npm/signature/interfaces/SignatureBlurEvent.d.ts +7 -0
  36. package/dist/npm/signature/interfaces/SignatureBlurEvent.js +2 -0
  37. package/dist/npm/signature/interfaces/SignatureChangeEvent.d.ts +11 -0
  38. package/dist/npm/signature/interfaces/SignatureChangeEvent.js +2 -0
  39. package/dist/npm/signature/interfaces/SignatureCloseEvent.d.ts +7 -0
  40. package/dist/npm/signature/interfaces/SignatureCloseEvent.js +2 -0
  41. package/dist/npm/signature/interfaces/SignatureFocusEvent.d.ts +7 -0
  42. package/dist/npm/signature/interfaces/SignatureFocusEvent.js +2 -0
  43. package/dist/npm/signature/interfaces/SignatureHandle.d.ts +34 -0
  44. package/dist/npm/signature/interfaces/SignatureHandle.js +2 -0
  45. package/dist/npm/signature/interfaces/SignatureOpenEvent.d.ts +7 -0
  46. package/dist/npm/signature/interfaces/SignatureOpenEvent.js +2 -0
  47. package/dist/npm/signature/interfaces/SignatureProps.d.ts +192 -0
  48. package/dist/npm/signature/interfaces/SignatureProps.js +2 -0
  49. package/dist/npm/signature/interfaces/SignatureState.d.ts +15 -0
  50. package/dist/npm/signature/interfaces/SignatureState.js +2 -0
  51. package/dist/npm/signature/interfaces/index.d.ts +7 -0
  52. package/dist/npm/signature/interfaces/index.js +2 -0
  53. package/dist/npm/signature/utils/index.d.ts +4 -0
  54. package/dist/npm/signature/utils/index.js +14 -0
  55. package/dist/systemjs/kendo-react-inputs.js +1 -1
  56. package/docs/_meta.yml +3 -0
  57. package/docs/api/Checkbox.md +23 -0
  58. package/docs/api/CheckboxBlurEvent.md +132 -0
  59. package/docs/api/CheckboxChangeEvent.md +167 -0
  60. package/docs/api/CheckboxFocusEvent.md +132 -0
  61. package/docs/api/CheckboxHandle.md +167 -0
  62. package/docs/api/CheckboxProps.md +1068 -0
  63. package/docs/api/CheckboxPropsContext.md +17 -0
  64. package/docs/api/ColorGradient.md +27 -0
  65. package/docs/api/ColorGradientChangeEvent.md +167 -0
  66. package/docs/api/ColorGradientHandle.md +99 -0
  67. package/docs/api/ColorGradientProps.md +538 -0
  68. package/docs/api/ColorGradientPropsContext.md +17 -0
  69. package/docs/api/ColorPalette.md +26 -0
  70. package/docs/api/ColorPaletteChangeEvent.md +202 -0
  71. package/docs/api/ColorPaletteHandle.md +64 -0
  72. package/docs/api/ColorPaletteProps.md +542 -0
  73. package/docs/api/ColorPalettePropsContext.md +17 -0
  74. package/docs/api/ColorPicker.md +23 -0
  75. package/docs/api/ColorPickerActiveColorClick.md +132 -0
  76. package/docs/api/ColorPickerBlurEvent.md +97 -0
  77. package/docs/api/ColorPickerChangeEvent.md +132 -0
  78. package/docs/api/ColorPickerFocusEvent.md +97 -0
  79. package/docs/api/ColorPickerGradientSettings.md +102 -0
  80. package/docs/api/ColorPickerPaletteSettings.md +148 -0
  81. package/docs/api/ColorPickerPopupSettings.md +97 -0
  82. package/docs/api/ColorPickerProps.md +1078 -0
  83. package/docs/api/ColorPickerPropsContext.md +17 -0
  84. package/docs/api/ColorPickerView.md +19 -0
  85. package/docs/api/Direction.md +12 -0
  86. package/docs/api/FlatColorPicker.md +13 -0
  87. package/docs/api/FlatColorPickerHandle.md +127 -0
  88. package/docs/api/FlatColorPickerProps.md +412 -0
  89. package/docs/api/FormComponentValidity.md +428 -0
  90. package/docs/api/Input.md +17 -0
  91. package/docs/api/InputChangeEvent.md +167 -0
  92. package/docs/api/InputHandle.md +204 -0
  93. package/docs/api/InputProps.md +428 -0
  94. package/docs/api/InputPropsContext.md +17 -0
  95. package/docs/api/MaskedTextBox.md +17 -0
  96. package/docs/api/MaskedTextBoxChangeEvent.md +237 -0
  97. package/docs/api/MaskedTextBoxEvent.md +132 -0
  98. package/docs/api/MaskedTextBoxHandle.md +265 -0
  99. package/docs/api/MaskedTextBoxProps.md +1395 -0
  100. package/docs/api/MaskedTextBoxPropsContext.md +17 -0
  101. package/docs/api/NumericTextBox.md +13 -0
  102. package/docs/api/NumericTextBoxBlurEvent.md +132 -0
  103. package/docs/api/NumericTextBoxChangeEvent.md +167 -0
  104. package/docs/api/NumericTextBoxFocusEvent.md +132 -0
  105. package/docs/api/NumericTextBoxHandle.md +197 -0
  106. package/docs/api/NumericTextBoxProps.md +1471 -0
  107. package/docs/api/NumericTextBoxPropsContext.md +17 -0
  108. package/docs/api/RadioButton.md +17 -0
  109. package/docs/api/RadioButtonBlurEvent.md +132 -0
  110. package/docs/api/RadioButtonChangeEvent.md +167 -0
  111. package/docs/api/RadioButtonFocusEvent.md +132 -0
  112. package/docs/api/RadioButtonHandle.md +97 -0
  113. package/docs/api/RadioButtonProps.md +791 -0
  114. package/docs/api/RadioButtonPropsContext.md +17 -0
  115. package/docs/api/RadioGroup.md +17 -0
  116. package/docs/api/RadioGroupChangeEvent.md +167 -0
  117. package/docs/api/RadioGroupFocusEvent.md +132 -0
  118. package/docs/api/RadioGroupHandle.md +97 -0
  119. package/docs/api/RadioGroupProps.md +707 -0
  120. package/docs/api/RadioGroupPropsContext.md +17 -0
  121. package/docs/api/Range.md +13 -0
  122. package/docs/api/RangeSlider.md +17 -0
  123. package/docs/api/RangeSliderChangeEvent.md +132 -0
  124. package/docs/api/RangeSliderHandle.md +127 -0
  125. package/docs/api/RangeSliderProps.md +853 -0
  126. package/docs/api/RangeSliderPropsContext.md +17 -0
  127. package/docs/api/Rating.md +17 -0
  128. package/docs/api/RatingChangeEvent.md +132 -0
  129. package/docs/api/RatingFocusEvent.md +97 -0
  130. package/docs/api/RatingHandle.md +97 -0
  131. package/docs/api/RatingItem.md +13 -0
  132. package/docs/api/RatingItemFocusEvent.md +97 -0
  133. package/docs/api/RatingItemHandle.md +132 -0
  134. package/docs/api/RatingItemKeyboardEvent.md +97 -0
  135. package/docs/api/RatingItemMouseEvent.md +97 -0
  136. package/docs/api/RatingItemProps.md +941 -0
  137. package/docs/api/RatingKeyboardEvent.md +97 -0
  138. package/docs/api/RatingMouseEvent.md +97 -0
  139. package/docs/api/RatingProps.md +1308 -0
  140. package/docs/api/RatingPropsContext.md +17 -0
  141. package/docs/api/Signature.md +13 -0
  142. package/docs/api/SignatureBlurEvent.md +132 -0
  143. package/docs/api/SignatureChangeEvent.md +167 -0
  144. package/docs/api/SignatureCloseEvent.md +132 -0
  145. package/docs/api/SignatureFocusEvent.md +132 -0
  146. package/docs/api/SignatureHandle.md +162 -0
  147. package/docs/api/SignatureOpenEvent.md +132 -0
  148. package/docs/api/SignatureProps.md +1592 -0
  149. package/docs/api/SignaturePropsContext.md +17 -0
  150. package/docs/api/Slider.md +17 -0
  151. package/docs/api/SliderChangeEvent.md +167 -0
  152. package/docs/api/SliderHandle.md +99 -0
  153. package/docs/api/SliderLabel.md +62 -0
  154. package/docs/api/SliderLabelProps.md +171 -0
  155. package/docs/api/SliderProps.md +902 -0
  156. package/docs/api/SliderPropsContext.md +17 -0
  157. package/docs/api/Switch.md +17 -0
  158. package/docs/api/SwitchChangeEvent.md +167 -0
  159. package/docs/api/SwitchHandle.md +239 -0
  160. package/docs/api/SwitchProps.md +1081 -0
  161. package/docs/api/SwitchPropsContext.md +17 -0
  162. package/docs/api/TextArea.md +27 -0
  163. package/docs/api/TextAreaBlurEvent.md +132 -0
  164. package/docs/api/TextAreaChangeEvent.md +167 -0
  165. package/docs/api/TextAreaFocusEvent.md +132 -0
  166. package/docs/api/TextAreaProps.md +1082 -0
  167. package/docs/api/TextAreaPropsContext.md +17 -0
  168. package/docs/api/TileSize.md +18 -0
  169. package/docs/api/ToggleBaseProps.md +132 -0
  170. package/docs/api/_meta.yml +3 -0
  171. package/docs/api/index.md +425 -0
  172. package/docs/auto-imports.js +40 -0
  173. package/docs/checkbox/_meta.yml +3 -0
  174. package/docs/checkbox/accessibility.md +26 -0
  175. package/docs/checkbox/appearance.md +28 -0
  176. package/docs/checkbox/controlled.md +57 -0
  177. package/docs/checkbox/default-state.md +24 -0
  178. package/docs/checkbox/disabled.md +23 -0
  179. package/docs/checkbox/forms-support.md +90 -0
  180. package/docs/checkbox/index.md +46 -0
  181. package/docs/checkbox/keyboard-navigation.md +36 -0
  182. package/docs/checkbox/labels.md +36 -0
  183. package/docs/colorgradient/_meta.yml +3 -0
  184. package/docs/colorgradient/color-contrast.md +34 -0
  185. package/docs/colorgradient/controlled.md +32 -0
  186. package/docs/colorgradient/disabled.md +23 -0
  187. package/docs/colorgradient/index.md +42 -0
  188. package/docs/colorgradient/noopacity.md +28 -0
  189. package/docs/colorpalette/_meta.yml +3 -0
  190. package/docs/colorpalette/assets/demo-img.png +0 -0
  191. package/docs/colorpalette/controlled.md +32 -0
  192. package/docs/colorpalette/custom.md +23 -0
  193. package/docs/colorpalette/disabled.md +23 -0
  194. package/docs/colorpalette/events.md +27 -0
  195. package/docs/colorpalette/index.md +47 -0
  196. package/docs/colorpalette/keyboard-navigation.md +36 -0
  197. package/docs/colorpalette/presets.md +23 -0
  198. package/docs/colorpicker/_meta.yml +3 -0
  199. package/docs/colorpicker/appearance.md +30 -0
  200. package/docs/colorpicker/color-contrast.md +33 -0
  201. package/docs/colorpicker/combined-views.md +46 -0
  202. package/docs/colorpicker/controlled.md +57 -0
  203. package/docs/colorpicker/custom.md +67 -0
  204. package/docs/colorpicker/default-value.md +20 -0
  205. package/docs/colorpicker/disabled.md +20 -0
  206. package/docs/colorpicker/index.md +41 -0
  207. package/docs/colorpicker/keyboard-navigation.md +39 -0
  208. package/docs/custom-attributes.md +27 -0
  209. package/docs/examples/attribute/class/main.tsx +44 -0
  210. package/docs/examples/attribute/func/main.tsx +58 -0
  211. package/docs/examples/checkbox/appearance/func/main.tsx +33 -0
  212. package/docs/examples/checkbox/controlled/checked/class/main.tsx +32 -0
  213. package/docs/examples/checkbox/controlled/checked/func/main.tsx +29 -0
  214. package/docs/examples/checkbox/controlled/value/class/main.tsx +32 -0
  215. package/docs/examples/checkbox/controlled/value/func/main.tsx +28 -0
  216. package/docs/examples/checkbox/default/func/main.tsx +15 -0
  217. package/docs/examples/checkbox/disabled/func/main.tsx +19 -0
  218. package/docs/examples/checkbox/forms/basic/class/main.tsx +79 -0
  219. package/docs/examples/checkbox/forms/basic/func/main.tsx +71 -0
  220. package/docs/examples/checkbox/forms/custom-message/class/main.tsx +117 -0
  221. package/docs/examples/checkbox/forms/custom-message/func/main.tsx +124 -0
  222. package/docs/examples/checkbox/forms/disable-styles/class/main.tsx +126 -0
  223. package/docs/examples/checkbox/forms/disable-styles/func/main.tsx +125 -0
  224. package/docs/examples/checkbox/forms/kendo-react-form/func/main.tsx +137 -0
  225. package/docs/examples/checkbox/keyboard/class/main.tsx +32 -0
  226. package/docs/examples/checkbox/keyboard/func/main.tsx +27 -0
  227. package/docs/examples/checkbox/labels/custom/func/main.tsx +20 -0
  228. package/docs/examples/checkbox/labels/setup/func/main.tsx +20 -0
  229. package/docs/examples/checkbox/main/func/main.tsx +22 -0
  230. package/docs/examples/colorgradient/colorcontrast/class/main.tsx +48 -0
  231. package/docs/examples/colorgradient/colorcontrast/func/main.tsx +43 -0
  232. package/docs/examples/colorgradient/controlled/class/main.tsx +29 -0
  233. package/docs/examples/colorgradient/controlled/func/main.tsx +21 -0
  234. package/docs/examples/colorgradient/disabled/func/main.tsx +17 -0
  235. package/docs/examples/colorgradient/opacity/class/main.tsx +32 -0
  236. package/docs/examples/colorgradient/opacity/func/main.tsx +24 -0
  237. package/docs/examples/colorgradient/overview/class/main.tsx +42 -0
  238. package/docs/examples/colorgradient/overview/func/main.tsx +34 -0
  239. package/docs/examples/colorpalette/controlled/class/main.tsx +25 -0
  240. package/docs/examples/colorpalette/controlled/func/main.tsx +17 -0
  241. package/docs/examples/colorpalette/custom/func/main.tsx +13 -0
  242. package/docs/examples/colorpalette/disabled/func/main.tsx +13 -0
  243. package/docs/examples/colorpalette/keyboard/class/main.tsx +30 -0
  244. package/docs/examples/colorpalette/keyboard/func/main.tsx +30 -0
  245. package/docs/examples/colorpalette/overview/basic/class/main.tsx +55 -0
  246. package/docs/examples/colorpalette/overview/basic/class/styles.css +50 -0
  247. package/docs/examples/colorpalette/overview/basic/func/main.tsx +47 -0
  248. package/docs/examples/colorpalette/overview/basic/func/styles.css +50 -0
  249. package/docs/examples/colorpalette/overview/events/class/main.tsx +48 -0
  250. package/docs/examples/colorpalette/overview/events/func/main.tsx +40 -0
  251. package/docs/examples/colorpalette/presets/func/main.tsx +70 -0
  252. package/docs/examples/colorpicker/appearance/func/main.tsx +37 -0
  253. package/docs/examples/colorpicker/colorcontrast/class/main.tsx +50 -0
  254. package/docs/examples/colorpicker/colorcontrast/func/main.tsx +44 -0
  255. package/docs/examples/colorpicker/controlled/popup/class/main.tsx +39 -0
  256. package/docs/examples/colorpicker/controlled/popup/func/main.tsx +31 -0
  257. package/docs/examples/colorpicker/controlled/value/class/main.tsx +25 -0
  258. package/docs/examples/colorpicker/controlled/value/func/main.tsx +17 -0
  259. package/docs/examples/colorpicker/custom/custom-icons/func/main.tsx +18 -0
  260. package/docs/examples/colorpicker/custom/gradient/func/main.tsx +24 -0
  261. package/docs/examples/colorpicker/custom/kendo-icons/func/main.tsx +18 -0
  262. package/docs/examples/colorpicker/custom/palette/func/main.tsx +28 -0
  263. package/docs/examples/colorpicker/default/func/main.tsx +24 -0
  264. package/docs/examples/colorpicker/disabled/func/main.tsx +17 -0
  265. package/docs/examples/colorpicker/keyboard/class/main.tsx +30 -0
  266. package/docs/examples/colorpicker/keyboard/func/main.tsx +29 -0
  267. package/docs/examples/colorpicker/overview/func/main.tsx +24 -0
  268. package/docs/examples/colorpicker/view/combined/class/main.tsx +37 -0
  269. package/docs/examples/colorpicker/view/combined/func/main.tsx +27 -0
  270. package/docs/examples/colorpicker/view/popup/class/main.tsx +66 -0
  271. package/docs/examples/colorpicker/view/popup/func/main.tsx +55 -0
  272. package/docs/examples/flatcolorpicker/basic/func/main.tsx +13 -0
  273. package/docs/examples/flatcolorpicker/customization/footer/func/main.tsx +13 -0
  274. package/docs/examples/flatcolorpicker/customization/header/func/main.tsx +13 -0
  275. package/docs/examples/flatcolorpicker/disabled/func/main.tsx +13 -0
  276. package/docs/examples/get-started/func/main.tsx +14 -0
  277. package/docs/examples/globalization/func/main.tsx +47 -0
  278. package/docs/examples/input/counter/main.tsx +30 -0
  279. package/docs/examples/input/forms/basic/class/main.tsx +87 -0
  280. package/docs/examples/input/forms/basic/func/main.tsx +79 -0
  281. package/docs/examples/input/forms/custom-message/class/main.tsx +94 -0
  282. package/docs/examples/input/forms/custom-message/func/main.tsx +86 -0
  283. package/docs/examples/input/forms/disable-styles/class/main.tsx +115 -0
  284. package/docs/examples/input/forms/disable-styles/func/main.tsx +106 -0
  285. package/docs/examples/input/forms/override/class/main.tsx +111 -0
  286. package/docs/examples/input/forms/override/func/main.tsx +102 -0
  287. package/docs/examples/input/main/main.jsx +17 -0
  288. package/docs/examples/input/overview/func/main.tsx +88 -0
  289. package/docs/examples/label/class/main.tsx +69 -0
  290. package/docs/examples/label/func/main.tsx +65 -0
  291. package/docs/examples/maskedtextbox/appearance/func/main.tsx +41 -0
  292. package/docs/examples/maskedtextbox/disabled/func/main.tsx +24 -0
  293. package/docs/examples/maskedtextbox/forms/basic/class/main.tsx +78 -0
  294. package/docs/examples/maskedtextbox/forms/basic/func/main.tsx +70 -0
  295. package/docs/examples/maskedtextbox/forms/custom-message/class/main.tsx +81 -0
  296. package/docs/examples/maskedtextbox/forms/custom-message/func/main.tsx +73 -0
  297. package/docs/examples/maskedtextbox/forms/disable-styles/class/main.tsx +75 -0
  298. package/docs/examples/maskedtextbox/forms/disable-styles/func/main.tsx +67 -0
  299. package/docs/examples/maskedtextbox/forms/override/class/main.tsx +85 -0
  300. package/docs/examples/maskedtextbox/forms/override/func/main.tsx +75 -0
  301. package/docs/examples/maskedtextbox/mask/basic/func/main.tsx +19 -0
  302. package/docs/examples/maskedtextbox/mask/extend/func/main.tsx +35 -0
  303. package/docs/examples/maskedtextbox/overview/basic/func/main.tsx +18 -0
  304. package/docs/examples/maskedtextbox/readonly/func/main.tsx +20 -0
  305. package/docs/examples/maskedtextbox/valid/class/main.tsx +59 -0
  306. package/docs/examples/maskedtextbox/valid/func/main.tsx +51 -0
  307. package/docs/examples/maskedtextbox/value/class/main.tsx +37 -0
  308. package/docs/examples/maskedtextbox/value/func/main.tsx +29 -0
  309. package/docs/examples/numerictextbox/appearance/func/main.tsx +39 -0
  310. package/docs/examples/numerictextbox/formats/func/main.tsx +53 -0
  311. package/docs/examples/numerictextbox/forms/basic/class/main.tsx +75 -0
  312. package/docs/examples/numerictextbox/forms/basic/func/main.tsx +67 -0
  313. package/docs/examples/numerictextbox/forms/custom-message/class/main.tsx +82 -0
  314. package/docs/examples/numerictextbox/forms/custom-message/func/main.tsx +74 -0
  315. package/docs/examples/numerictextbox/forms/disable-styles/class/main.tsx +98 -0
  316. package/docs/examples/numerictextbox/forms/disable-styles/func/main.tsx +85 -0
  317. package/docs/examples/numerictextbox/forms/override/class/main.tsx +96 -0
  318. package/docs/examples/numerictextbox/forms/override/func/main.tsx +87 -0
  319. package/docs/examples/numerictextbox/forms/ref/class/main.tsx +44 -0
  320. package/docs/examples/numerictextbox/forms/ref/func/main.tsx +34 -0
  321. package/docs/examples/numerictextbox/keyboard/func/main.tsx +20 -0
  322. package/docs/examples/numerictextbox/overview/class/main.tsx +55 -0
  323. package/docs/examples/numerictextbox/overview/func/main.tsx +43 -0
  324. package/docs/examples/numerictextbox/spin/func/main.tsx +22 -0
  325. package/docs/examples/numerictextbox/step/func/main.tsx +21 -0
  326. package/docs/examples/overview/func/main.tsx +102 -0
  327. package/docs/examples/props-context/overview/class/grid-with-filtering.tsx +32 -0
  328. package/docs/examples/props-context/overview/class/main.tsx +26 -0
  329. package/docs/examples/props-context/overview/class/sample-products.ts +182 -0
  330. package/docs/examples/props-context/overview/func/grid-with-filtering.tsx +32 -0
  331. package/docs/examples/props-context/overview/func/main.tsx +24 -0
  332. package/docs/examples/props-context/overview/func/sample-products.ts +182 -0
  333. package/docs/examples/radiobutton/appearance/func/main.tsx +28 -0
  334. package/docs/examples/radiobutton/custom-labels/func/main.tsx +28 -0
  335. package/docs/examples/radiobutton/disabled/func/main.tsx +20 -0
  336. package/docs/examples/radiobutton/labels/func/main.tsx +20 -0
  337. package/docs/examples/radiobutton/overview/class/main.tsx +35 -0
  338. package/docs/examples/radiobutton/overview/func/main.tsx +30 -0
  339. package/docs/examples/radiogroup/controlled/class/main.tsx +49 -0
  340. package/docs/examples/radiogroup/controlled/func/main.tsx +40 -0
  341. package/docs/examples/radiogroup/default-state/func/main.tsx +19 -0
  342. package/docs/examples/radiogroup/forms/class/main.tsx +150 -0
  343. package/docs/examples/radiogroup/forms/func/main.tsx +146 -0
  344. package/docs/examples/radiogroup/keyboard/class/main.tsx +37 -0
  345. package/docs/examples/radiogroup/keyboard/func/main.tsx +31 -0
  346. package/docs/examples/radiogroup/layout/class/main.tsx +49 -0
  347. package/docs/examples/radiogroup/layout/func/main.tsx +43 -0
  348. package/docs/examples/radiogroup/overview/func/main.tsx +18 -0
  349. package/docs/examples/rangeslider/controlled/class/main.tsx +45 -0
  350. package/docs/examples/rangeslider/controlled/func/main.tsx +37 -0
  351. package/docs/examples/rangeslider/disabled/func/main.tsx +27 -0
  352. package/docs/examples/rangeslider/labels/func/main.tsx +26 -0
  353. package/docs/examples/rangeslider/orientation/func/main.tsx +27 -0
  354. package/docs/examples/rangeslider/overview/func/main.tsx +26 -0
  355. package/docs/examples/rating/controlled/class/main.tsx +29 -0
  356. package/docs/examples/rating/controlled/func/main.tsx +21 -0
  357. package/docs/examples/rating/disabled/func/main.tsx +18 -0
  358. package/docs/examples/rating/forms/class/main.tsx +85 -0
  359. package/docs/examples/rating/forms/func/main.tsx +79 -0
  360. package/docs/examples/rating/icon/func/main.tsx +15 -0
  361. package/docs/examples/rating/items/func/main.tsx +15 -0
  362. package/docs/examples/rating/label/class/main.tsx +33 -0
  363. package/docs/examples/rating/label/func/main.tsx +26 -0
  364. package/docs/examples/rating/navigation/func/main.tsx +15 -0
  365. package/docs/examples/rating/overview/func/main.tsx +12 -0
  366. package/docs/examples/rating/precision/func/main.tsx +27 -0
  367. package/docs/examples/rating/rating-item/advanced/class/main.tsx +82 -0
  368. package/docs/examples/rating/rating-item/advanced/func/main.tsx +76 -0
  369. package/docs/examples/rating/rating-item/overview/func/main.tsx +75 -0
  370. package/docs/examples/rating/readonly/func/main.tsx +18 -0
  371. package/docs/examples/rating/selection/func/main.tsx +25 -0
  372. package/docs/examples/rtl/func/main.tsx +99 -0
  373. package/docs/examples/shared/checkbox-style-configurator.tsx +69 -0
  374. package/docs/examples/shared/es.json +6 -0
  375. package/docs/examples/shared/radiobutton-style-configurator.tsx +47 -0
  376. package/docs/examples/shared/sample-signature.ts +2 -0
  377. package/docs/examples/shared/style-configurator.tsx +93 -0
  378. package/docs/examples/shared/switch-style-configurator.tsx +91 -0
  379. package/docs/examples/signature/appearance/all-options/func/main.tsx +89 -0
  380. package/docs/examples/signature/appearance/color/func/main.tsx +17 -0
  381. package/docs/examples/signature/appearance/stroke-width/func/main.tsx +16 -0
  382. package/docs/examples/signature/controlled/export-scale/func/main.tsx +34 -0
  383. package/docs/examples/signature/controlled/popup/func/main.tsx +28 -0
  384. package/docs/examples/signature/controlled/value/func/main.tsx +19 -0
  385. package/docs/examples/signature/disabled/func/main.tsx +17 -0
  386. package/docs/examples/signature/events/func/main.tsx +66 -0
  387. package/docs/examples/signature/forms/kendo/func/main.tsx +148 -0
  388. package/docs/examples/signature/overview/func/main.tsx +239 -0
  389. package/docs/examples/signature/overview/func/styles.css +56 -0
  390. package/docs/examples/signature/popup/disabled/func/main.tsx +14 -0
  391. package/docs/examples/signature/popup/scale/func/main.tsx +14 -0
  392. package/docs/examples/signature/readonly/func/main.tsx +17 -0
  393. package/docs/examples/signature/smooth/func/main.tsx +14 -0
  394. package/docs/examples/slider/buttons/func/main.tsx +18 -0
  395. package/docs/examples/slider/controlled/class/main.tsx +45 -0
  396. package/docs/examples/slider/controlled/func/main.tsx +36 -0
  397. package/docs/examples/slider/labels/class/main.tsx +44 -0
  398. package/docs/examples/slider/labels/func/main.tsx +35 -0
  399. package/docs/examples/slider/orientation/func/main.tsx +25 -0
  400. package/docs/examples/slider/overview/func/main.tsx +24 -0
  401. package/docs/examples/switch/appearance/func/main.tsx +38 -0
  402. package/docs/examples/switch/controlled/manual/class/main.tsx +40 -0
  403. package/docs/examples/switch/controlled/manual/func/main.tsx +33 -0
  404. package/docs/examples/switch/controlled/readonly/func/main.tsx +15 -0
  405. package/docs/examples/switch/default/func/main.tsx +15 -0
  406. package/docs/examples/switch/disabled/func/main.tsx +15 -0
  407. package/docs/examples/switch/forms/basic/class/main.tsx +81 -0
  408. package/docs/examples/switch/forms/basic/func/main.tsx +72 -0
  409. package/docs/examples/switch/forms/custom-message/class/main.tsx +108 -0
  410. package/docs/examples/switch/forms/custom-message/func/main.tsx +100 -0
  411. package/docs/examples/switch/forms/disable-styles/class/main.tsx +129 -0
  412. package/docs/examples/switch/forms/disable-styles/func/main.tsx +118 -0
  413. package/docs/examples/switch/forms/kendo-react-form/class/main.tsx +104 -0
  414. package/docs/examples/switch/forms/kendo-react-form/func/main.tsx +106 -0
  415. package/docs/examples/switch/keyboard/class/main.tsx +22 -0
  416. package/docs/examples/switch/keyboard/func/main.tsx +23 -0
  417. package/docs/examples/switch/labels/func/main.tsx +15 -0
  418. package/docs/examples/switch/overview/basic/func/main.tsx +15 -0
  419. package/docs/examples/textarea/appearance/func/main.tsx +39 -0
  420. package/docs/examples/textarea/auto-sizing/func/main.tsx +18 -0
  421. package/docs/examples/textarea/controlled/class/main.tsx +32 -0
  422. package/docs/examples/textarea/controlled/func/main.tsx +26 -0
  423. package/docs/examples/textarea/counter/class/main.tsx +38 -0
  424. package/docs/examples/textarea/counter/func/main.tsx +32 -0
  425. package/docs/examples/textarea/default-state/func/main.tsx +18 -0
  426. package/docs/examples/textarea/disabled/func/main.tsx +20 -0
  427. package/docs/examples/textarea/forms/kendo-react-form/class/main.tsx +152 -0
  428. package/docs/examples/textarea/forms/kendo-react-form/func/main.tsx +140 -0
  429. package/docs/examples/textarea/main/func/main.tsx +15 -0
  430. package/docs/examples/textarea/overview/class/main.tsx +103 -0
  431. package/docs/examples/textarea/overview/func/main.tsx +90 -0
  432. package/docs/examples/textarea/sizing/func/main.tsx +15 -0
  433. package/docs/examples/tsconfig.json +29 -0
  434. package/docs/flatcolorpicker/_meta.yml +3 -0
  435. package/docs/flatcolorpicker/customization.md +33 -0
  436. package/docs/flatcolorpicker/disabled.md +22 -0
  437. package/docs/flatcolorpicker/index.md +30 -0
  438. package/docs/floating-labels.md +35 -0
  439. package/docs/get-started.md +153 -0
  440. package/docs/globalization.md +67 -0
  441. package/docs/index.md +212 -0
  442. package/docs/input/_meta.yml +3 -0
  443. package/docs/input/counter.md +20 -0
  444. package/docs/input/forms.md +87 -0
  445. package/docs/input/index.md +40 -0
  446. package/docs/maskedtextbox/_meta.yml +3 -0
  447. package/docs/maskedtextbox/accessibility.md +22 -0
  448. package/docs/maskedtextbox/appearance.md +30 -0
  449. package/docs/maskedtextbox/disabled-state.md +20 -0
  450. package/docs/maskedtextbox/forms.md +87 -0
  451. package/docs/maskedtextbox/index.md +40 -0
  452. package/docs/maskedtextbox/masks.md +44 -0
  453. package/docs/maskedtextbox/readonly-state.md +20 -0
  454. package/docs/maskedtextbox/valid-state.md +25 -0
  455. package/docs/maskedtextbox/value.md +23 -0
  456. package/docs/numerictextbox/_meta.yml +3 -0
  457. package/docs/numerictextbox/accessibility.md +25 -0
  458. package/docs/numerictextbox/appearance.md +30 -0
  459. package/docs/numerictextbox/formats.md +25 -0
  460. package/docs/numerictextbox/forms.md +87 -0
  461. package/docs/numerictextbox/index.md +49 -0
  462. package/docs/numerictextbox/keyboard-navigation.md +26 -0
  463. package/docs/numerictextbox/predefined-step.md +20 -0
  464. package/docs/numerictextbox/ref.md +28 -0
  465. package/docs/numerictextbox/spin-buttons.md +20 -0
  466. package/docs/props-context.md +65 -0
  467. package/docs/radiobutton/_meta.yml +3 -0
  468. package/docs/radiobutton/appearance.md +26 -0
  469. package/docs/radiobutton/disabled.md +23 -0
  470. package/docs/radiobutton/index.md +47 -0
  471. package/docs/radiobutton/labels.md +36 -0
  472. package/docs/radiogroup/_meta.yml +3 -0
  473. package/docs/radiogroup/accessibility.md +25 -0
  474. package/docs/radiogroup/controlled_mode.md +34 -0
  475. package/docs/radiogroup/default_state.md +24 -0
  476. package/docs/radiogroup/forms_support.md +37 -0
  477. package/docs/radiogroup/index.md +41 -0
  478. package/docs/radiogroup/keyboard_navigation.md +37 -0
  479. package/docs/radiogroup/layout.md +29 -0
  480. package/docs/rangeslider/_meta.yml +3 -0
  481. package/docs/rangeslider/accessibility.md +26 -0
  482. package/docs/rangeslider/controlled.md +32 -0
  483. package/docs/rangeslider/disabled.md +23 -0
  484. package/docs/rangeslider/index.md +41 -0
  485. package/docs/rangeslider/keyboard-navigation.md +33 -0
  486. package/docs/rangeslider/orientation.md +24 -0
  487. package/docs/rangeslider/ticks.md +26 -0
  488. package/docs/rating/_meta.yml +3 -0
  489. package/docs/rating/accessibility.md +26 -0
  490. package/docs/rating/forms_support.md +39 -0
  491. package/docs/rating/functionality-and-features/_meta.yml +2 -0
  492. package/docs/rating/functionality-and-features/controlled.md +34 -0
  493. package/docs/rating/functionality-and-features/disabled.md +23 -0
  494. package/docs/rating/functionality-and-features/icon.md +27 -0
  495. package/docs/rating/functionality-and-features/items.md +24 -0
  496. package/docs/rating/functionality-and-features/label.md +28 -0
  497. package/docs/rating/functionality-and-features/precision.md +51 -0
  498. package/docs/rating/functionality-and-features/readonly.md +23 -0
  499. package/docs/rating/functionality-and-features/selection.md +23 -0
  500. package/docs/rating/index.md +45 -0
  501. package/docs/rating/item_custamization.md +45 -0
  502. package/docs/rating/keyboard-navigation.md +33 -0
  503. package/docs/signature/_meta.yml +3 -0
  504. package/docs/signature/appearance.md +96 -0
  505. package/docs/signature/controlled.md +60 -0
  506. package/docs/signature/disabled.md +21 -0
  507. package/docs/signature/events.md +20 -0
  508. package/docs/signature/forms.md +28 -0
  509. package/docs/signature/index.md +34 -0
  510. package/docs/signature/line-smoothing.md +16 -0
  511. package/docs/signature/popup.md +34 -0
  512. package/docs/signature/readonly.md +21 -0
  513. package/docs/slider/_meta.yml +3 -0
  514. package/docs/slider/accessibility.md +26 -0
  515. package/docs/slider/controlled.md +32 -0
  516. package/docs/slider/index.md +41 -0
  517. package/docs/slider/keyboard-navigation.md +33 -0
  518. package/docs/slider/orientation.md +24 -0
  519. package/docs/slider/side-buttons.md +24 -0
  520. package/docs/slider/ticks.md +31 -0
  521. package/docs/switch/_meta.yml +3 -0
  522. package/docs/switch/accessibility.md +17 -0
  523. package/docs/switch/appearance.md +30 -0
  524. package/docs/switch/controlled-switch.md +44 -0
  525. package/docs/switch/default-state.md +20 -0
  526. package/docs/switch/disabled-state.md +20 -0
  527. package/docs/switch/forms-support.md +78 -0
  528. package/docs/switch/index.md +44 -0
  529. package/docs/switch/keyboard-navigation.md +31 -0
  530. package/docs/switch/labels.md +29 -0
  531. package/docs/textarea/_meta.yml +3 -0
  532. package/docs/textarea/appearance.md +30 -0
  533. package/docs/textarea/controlled_mode.md +37 -0
  534. package/docs/textarea/counter.md +28 -0
  535. package/docs/textarea/default_state.md +25 -0
  536. package/docs/textarea/disabled.md +24 -0
  537. package/docs/textarea/forms_support.md +39 -0
  538. package/docs/textarea/index.md +51 -0
  539. package/docs/textarea/sizing.md +38 -0
  540. package/e2e/a11y.tests.ts +154 -0
  541. package/e2e/input.tests.ts +143 -0
  542. package/e2e/numeric.tests.ts +134 -0
  543. package/e2e/switch.tests.ts +122 -0
  544. package/examples/checkbox/checkbox.html +9 -0
  545. package/examples/checkbox/checkbox.tsx +292 -0
  546. package/examples/checkbox/checkboxForm.html +9 -0
  547. package/examples/checkbox/checkboxForm.tsx +81 -0
  548. package/examples/checkbox/checked-n-value.html +9 -0
  549. package/examples/checkbox/checked-n-value.tsx +115 -0
  550. package/examples/checkbox/controlled-mode.html +9 -0
  551. package/examples/checkbox/controlled-mode.tsx +69 -0
  552. package/examples/checkbox/form.html +9 -0
  553. package/examples/checkbox/form.tsx +78 -0
  554. package/examples/checkbox/formik.html +9 -0
  555. package/examples/checkbox/formik.tsx +89 -0
  556. package/examples/colors/colorContrast.html +12 -0
  557. package/examples/colors/colorContrast.tsx +52 -0
  558. package/examples/colors/colorGradient.html +9 -0
  559. package/examples/colors/colorGradient.tsx +37 -0
  560. package/examples/colors/colorPalette.html +9 -0
  561. package/examples/colors/colorPalette.tsx +29 -0
  562. package/examples/colors/colorPicker.html +22 -0
  563. package/examples/colors/colorPicker.tsx +58 -0
  564. package/examples/colors/colorPickerLocalization.html +9 -0
  565. package/examples/colors/colorPickerLocalization.tsx +31 -0
  566. package/examples/colors/flatColorPicker.html +12 -0
  567. package/examples/colors/flatColorPicker.tsx +21 -0
  568. package/examples/context/class/grid-with-filtering.tsx +32 -0
  569. package/examples/context/class/index.html +9 -0
  570. package/examples/context/class/index.tsx +28 -0
  571. package/examples/context/class/sample-products.tsx +182 -0
  572. package/examples/context/func/grid-with-filtering.tsx +32 -0
  573. package/examples/context/func/index.html +9 -0
  574. package/examples/context/func/index.tsx +26 -0
  575. package/examples/context/func/sample-products.tsx +182 -0
  576. package/examples/e2e/accessibility/CheckboxExample.tsx +26 -0
  577. package/examples/e2e/accessibility/ColorGradientExample.tsx +28 -0
  578. package/examples/e2e/accessibility/ColorPaletteExample.tsx +33 -0
  579. package/examples/e2e/accessibility/ColorPickerExample.tsx +21 -0
  580. package/examples/e2e/accessibility/InputExample.tsx +49 -0
  581. package/examples/e2e/accessibility/MaskedTextBoxExample.tsx +29 -0
  582. package/examples/e2e/accessibility/NumericTextBoxExample.tsx +24 -0
  583. package/examples/e2e/accessibility/RadioButtonExample.tsx +29 -0
  584. package/examples/e2e/accessibility/RangeSliderExample.tsx +26 -0
  585. package/examples/e2e/accessibility/RatingExample.tsx +13 -0
  586. package/examples/e2e/accessibility/SliderExample.tsx +19 -0
  587. package/examples/e2e/accessibility/SwitchExample.tsx +26 -0
  588. package/examples/e2e/accessibility/TextAreaExample.tsx +70 -0
  589. package/examples/e2e/accessibility/main.html +14 -0
  590. package/examples/e2e/accessibility/main.tsx +104 -0
  591. package/examples/e2e/input/input.html +9 -0
  592. package/examples/e2e/input/input.tsx +58 -0
  593. package/examples/e2e/numerictextbox/numericLabel.html +9 -0
  594. package/examples/e2e/numerictextbox/numericLabel.tsx +38 -0
  595. package/examples/e2e/switch/switch.html +16 -0
  596. package/examples/e2e/switch/switch.tsx +74 -0
  597. package/examples/focus/focus.html +9 -0
  598. package/examples/focus/focus.tsx +81 -0
  599. package/examples/input/inputFloatingLabels.html +9 -0
  600. package/examples/input/inputFloatingLabels.tsx +26 -0
  601. package/examples/input/inputForm.html +9 -0
  602. package/examples/input/inputForm.tsx +151 -0
  603. package/examples/maskedtextbox/basic.html +9 -0
  604. package/examples/maskedtextbox/basic.tsx +54 -0
  605. package/examples/maskedtextbox/ipmask.html +9 -0
  606. package/examples/maskedtextbox/ipmask.tsx +79 -0
  607. package/examples/messages/index.ts +4 -0
  608. package/examples/numerictextbox/newNumeric.html +9 -0
  609. package/examples/numerictextbox/newNumeric.tsx +149 -0
  610. package/examples/numerictextbox/numeric.html +9 -0
  611. package/examples/numerictextbox/numeric.tsx +247 -0
  612. package/examples/numerictextbox/numericApiExample.html +9 -0
  613. package/examples/numerictextbox/numericApiExample.tsx +25 -0
  614. package/examples/numerictextbox/numericForm.html +9 -0
  615. package/examples/numerictextbox/numericForm.tsx +89 -0
  616. package/examples/numerictextbox/roundingIssues.html +9 -0
  617. package/examples/numerictextbox/roundingIssues.tsx +51 -0
  618. package/examples/numerictextbox/test.html +9 -0
  619. package/examples/numerictextbox/test.tsx +165 -0
  620. package/examples/numerictextbox/testingBlurDisabled.html +9 -0
  621. package/examples/numerictextbox/testingBlurDisabled.tsx +167 -0
  622. package/examples/radio-group/customization/index.html +12 -0
  623. package/examples/radio-group/customization/index.tsx +32 -0
  624. package/examples/radioButton/accessibility.html +12 -0
  625. package/examples/radioButton/accessibility.tsx +81 -0
  626. package/examples/radioButton/html-forms.html +9 -0
  627. package/examples/radioButton/html-forms.tsx +63 -0
  628. package/examples/radioButton/kendo-react-form.html +12 -0
  629. package/examples/radioButton/kendo-react-form.tsx +80 -0
  630. package/examples/radioButton/radio.html +9 -0
  631. package/examples/radioButton/radio.tsx +45 -0
  632. package/examples/radioButton/standalone-radio.html +9 -0
  633. package/examples/radioButton/standalone-radio.tsx +76 -0
  634. package/examples/range-slider/form/index.html +9 -0
  635. package/examples/range-slider/form/index.tsx +57 -0
  636. package/examples/range-slider/index.html +9 -0
  637. package/examples/range-slider/index.tsx +147 -0
  638. package/examples/rating/index.html +9 -0
  639. package/examples/rating/index.tsx +158 -0
  640. package/examples/rtl/index.html +12 -0
  641. package/examples/rtl/index.tsx +29 -0
  642. package/examples/signature/basic.html +9 -0
  643. package/examples/signature/basic.tsx +72 -0
  644. package/examples/signature/forms-basic.html +9 -0
  645. package/examples/signature/forms-basic.tsx +72 -0
  646. package/examples/signature/forms.html +9 -0
  647. package/examples/signature/forms.tsx +90 -0
  648. package/examples/slider/slider.html +15 -0
  649. package/examples/slider/slider.tsx +99 -0
  650. package/examples/slider/vertical.html +15 -0
  651. package/examples/slider/vertical.tsx +28 -0
  652. package/examples/switch/switch.html +9 -0
  653. package/examples/switch/switch.tsx +44 -0
  654. package/examples/switch/switchDoubleEvent.html +9 -0
  655. package/examples/switch/switchDoubleEvent.tsx +25 -0
  656. package/examples/switch/switchForm.html +9 -0
  657. package/examples/switch/switchForm.tsx +138 -0
  658. package/examples/textarea/formik.html +12 -0
  659. package/examples/textarea/formik.tsx +84 -0
  660. package/examples/textarea/textarea.html +12 -0
  661. package/examples/textarea/textarea.tsx +96 -0
  662. package/gulpfile.js +7 -0
  663. package/package.json +19 -16
  664. package/src/checkbox/Checkbox.tsx +352 -0
  665. package/src/checkbox/interfaces/CheckboxBlurEvent.ts +7 -0
  666. package/src/checkbox/interfaces/CheckboxChangeEvent.ts +12 -0
  667. package/src/checkbox/interfaces/CheckboxFocusEvent.ts +7 -0
  668. package/src/checkbox/interfaces/CheckboxProps.ts +122 -0
  669. package/src/colors/ColorContrastLabels.tsx +83 -0
  670. package/src/colors/ColorContrastSvg.tsx +88 -0
  671. package/src/colors/ColorGradient.tsx +450 -0
  672. package/src/colors/ColorInput.tsx +192 -0
  673. package/src/colors/ColorPalette.tsx +329 -0
  674. package/src/colors/ColorPicker.tsx +387 -0
  675. package/src/colors/FlatColorPicker.tsx +258 -0
  676. package/src/colors/HexInput.tsx +67 -0
  677. package/src/colors/Picker.tsx +56 -0
  678. package/src/colors/interfaces/ColorGradientChangeEvent.ts +12 -0
  679. package/src/colors/interfaces/ColorGradientProps.ts +77 -0
  680. package/src/colors/interfaces/ColorPaletteChangeEvent.ts +16 -0
  681. package/src/colors/interfaces/ColorPaletteProps.ts +78 -0
  682. package/src/colors/interfaces/ColorPickerActiveColorClick.ts +17 -0
  683. package/src/colors/interfaces/ColorPickerBlurEvent.ts +13 -0
  684. package/src/colors/interfaces/ColorPickerChangeEvent.ts +17 -0
  685. package/src/colors/interfaces/ColorPickerFocusEvent.ts +13 -0
  686. package/src/colors/interfaces/ColorPickerGradientSettings.ts +19 -0
  687. package/src/colors/interfaces/ColorPickerPaletteSettings.ts +35 -0
  688. package/src/colors/interfaces/ColorPickerPopupSettings.ts +16 -0
  689. package/src/colors/interfaces/ColorPickerProps.ts +170 -0
  690. package/src/colors/interfaces/ColorPickerView.ts +10 -0
  691. package/src/colors/interfaces/PickerPopupSettings.ts +21 -0
  692. package/src/colors/interfaces/PickerProps.ts +51 -0
  693. package/src/colors/models/hsva.ts +9 -0
  694. package/src/colors/models/output-format.ts +4 -0
  695. package/src/colors/models/palette-presets.ts +54 -0
  696. package/src/colors/models/rgb.ts +8 -0
  697. package/src/colors/models/rgba.ts +9 -0
  698. package/src/colors/models/table-cell.ts +7 -0
  699. package/src/colors/models/tile-size.ts +8 -0
  700. package/src/colors/utils/color-cache.ts +71 -0
  701. package/src/colors/utils/color-palette.service.ts +79 -0
  702. package/src/colors/utils/color-parser.ts +158 -0
  703. package/src/colors/utils/misc.ts +23 -0
  704. package/src/colors/utils/svg-calc.ts +115 -0
  705. package/src/common/SliderTooltip.tsx +83 -0
  706. package/src/common/SwitchController.ts +130 -0
  707. package/src/common/SwitchModel.ts +12 -0
  708. package/src/input/Input.tsx +346 -0
  709. package/src/input/interfaces/InputChangeEvent.tsx +12 -0
  710. package/src/interfaces/Direction.ts +1 -0
  711. package/src/interfaces/ToggleBaseProps.ts +8 -0
  712. package/src/main.ts +57 -0
  713. package/src/maskedtextbox/MaskedTextBox.tsx +541 -0
  714. package/src/maskedtextbox/MaskedTextBoxProps.ts +215 -0
  715. package/src/maskedtextbox/masking.service.ts +230 -0
  716. package/src/maskedtextbox/parsing/combinators.ts +30 -0
  717. package/src/maskedtextbox/parsing/parsers.ts +179 -0
  718. package/src/maskedtextbox/parsing/result.ts +39 -0
  719. package/src/maskedtextbox/parsing/stream.ts +41 -0
  720. package/src/maskedtextbox/utils.ts +70 -0
  721. package/src/messages/index.ts +151 -0
  722. package/src/numerictextbox/NumericTextBox.tsx +626 -0
  723. package/src/numerictextbox/interfaces/NumericTextBoxBlurEvent.tsx +7 -0
  724. package/src/numerictextbox/interfaces/NumericTextBoxChangeEvent.tsx +12 -0
  725. package/src/numerictextbox/interfaces/NumericTextBoxFocusEvent.tsx +7 -0
  726. package/src/numerictextbox/interfaces/NumericTextBoxHandle.tsx +40 -0
  727. package/src/numerictextbox/interfaces/NumericTextBoxProps.tsx +180 -0
  728. package/src/numerictextbox/interfaces/NumericTextBoxState.tsx +15 -0
  729. package/src/numerictextbox/utils/index.tsx +744 -0
  730. package/src/package-metadata.ts +13 -0
  731. package/src/radiobutton/RadioButton.tsx +194 -0
  732. package/src/radiobutton/RadioGroup.tsx +190 -0
  733. package/src/radiobutton/interfaces/RadioButtonBlurEvent.ts +7 -0
  734. package/src/radiobutton/interfaces/RadioButtonChangeEvent.ts +12 -0
  735. package/src/radiobutton/interfaces/RadioButtonFocusEvent.ts +7 -0
  736. package/src/radiobutton/interfaces/RadioButtonProps.ts +102 -0
  737. package/src/radiobutton/interfaces/RadioGroupChangeEvent.ts +12 -0
  738. package/src/radiobutton/interfaces/RadioGroupFocusEvent.ts +7 -0
  739. package/src/radiobutton/interfaces/RadioGroupProps.ts +89 -0
  740. package/src/range-slider/RangeSlider.tsx +644 -0
  741. package/src/range-slider/range-raducer.tsx +153 -0
  742. package/src/rating/Rating.tsx +633 -0
  743. package/src/rating/RatingItem.tsx +268 -0
  744. package/src/rating/models/index.tsx +91 -0
  745. package/src/rating/rating-reducer.tsx +70 -0
  746. package/src/rating/utils/index.tsx +65 -0
  747. package/src/signature/Signature.tsx +488 -0
  748. package/src/signature/interfaces/SignatureBlurEvent.tsx +7 -0
  749. package/src/signature/interfaces/SignatureChangeEvent.tsx +12 -0
  750. package/src/signature/interfaces/SignatureCloseEvent.tsx +7 -0
  751. package/src/signature/interfaces/SignatureFocusEvent.tsx +7 -0
  752. package/src/signature/interfaces/SignatureHandle.tsx +35 -0
  753. package/src/signature/interfaces/SignatureOpenEvent.tsx +7 -0
  754. package/src/signature/interfaces/SignatureProps.tsx +227 -0
  755. package/src/signature/interfaces/index.ts +7 -0
  756. package/src/signature/utils/index.ts +11 -0
  757. package/src/slider/Slider.tsx +470 -0
  758. package/src/slider/SliderLabel.tsx +69 -0
  759. package/src/switch/Switch.tsx +559 -0
  760. package/src/textarea/TextArea.tsx +263 -0
  761. package/src/textarea/interfaces/TextAreaBlurEvent.ts +7 -0
  762. package/src/textarea/interfaces/TextAreaChangeEvent.ts +12 -0
  763. package/src/textarea/interfaces/TextAreaFocusEvent.ts +7 -0
  764. package/src/textarea/interfaces/TextAreaProps.tsx +131 -0
  765. package/src/utils.ts +16 -0
  766. package/test/Checkbox.tsx +252 -0
  767. package/test/ColorGradient.tsx +260 -0
  768. package/test/ColorPalette.tsx +440 -0
  769. package/test/ColorPicker.tsx +74 -0
  770. package/test/Input.tsx +255 -0
  771. package/test/NumericTextBox.tsx +984 -0
  772. package/test/RadioButton.tsx +176 -0
  773. package/test/RangeSlider.tsx +502 -0
  774. package/test/Rating.tsx +227 -0
  775. package/test/Slider.tsx +198 -0
  776. package/test/Switch.tsx +154 -0
  777. package/test/TextArea.tsx +216 -0
  778. package/test/maskedtextbox/component.tsx +424 -0
  779. package/test/maskedtextbox/masking.service.tsx +1345 -0
  780. package/test/maskedtextbox/parser.tsx +364 -0
  781. package/tsconfig.es.json +25 -0
  782. package/tsconfig.json +26 -0
  783. package/tsconfig.npm.json +25 -0
  784. package/LICENSE.md +0 -11
  785. package/NOTICE.txt +0 -111
@@ -0,0 +1,387 @@
1
+ import * as React from 'react';
2
+ import * as PropTypes from 'prop-types';
3
+
4
+ import { classNames, Keys, useDir, getTabIndex, createPropsContext, usePropsContext, kendoThemeMaps } from '@progress/kendo-react-common';
5
+ import { validatePackage } from '@progress/kendo-react-common';
6
+ import { packageMetadata } from '../package-metadata';
7
+ import { Picker } from './Picker';
8
+ import { ColorGradient } from './ColorGradient';
9
+ import { ColorPalette, DEFAULT_PRESET, DEFAULT_TILE_SIZE } from './ColorPalette';
10
+ import { ColorPickerProps } from './interfaces/ColorPickerProps';
11
+ import { ColorPickerBlurEvent } from './interfaces/ColorPickerBlurEvent';
12
+ import { ColorPickerChangeEvent } from './interfaces/ColorPickerChangeEvent';
13
+ import { ColorGradientChangeEvent } from './interfaces/ColorGradientChangeEvent';
14
+ import { ColorPaletteChangeEvent } from './interfaces/ColorPaletteChangeEvent';
15
+ import { ColorPickerView } from './interfaces/ColorPickerView';
16
+ import { Button } from '@progress/kendo-react-buttons';
17
+
18
+ import { messages, colorPickerDropdownButtonAriaLabel } from '../messages';
19
+ import { useLocalization } from '@progress/kendo-react-intl';
20
+
21
+ /**
22
+ * @hidden
23
+ */
24
+ export interface ColorPickerHandle {
25
+ element: HTMLSpanElement | null;
26
+ }
27
+
28
+ /**
29
+ * @hidden
30
+ */
31
+ const DEFAULT_GRADIENT_SETTINGS = {
32
+ opacity: true
33
+ };
34
+
35
+ /**
36
+ * @hidden
37
+ */
38
+ const DEFAULT_PALETTE_SETTINGS = {
39
+ palette: DEFAULT_PRESET,
40
+ tileSize: DEFAULT_TILE_SIZE
41
+ };
42
+
43
+ /**
44
+ * @hidden
45
+ */
46
+ const isControlled = (prop: any): boolean => {
47
+ return prop !== undefined;
48
+ };
49
+
50
+ /**
51
+ * Represents the PropsContext of the `ColorPicker` component.
52
+ * Used for global configuration of all `ColorPicker` instances.
53
+ *
54
+ * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.
55
+ */
56
+ export const ColorPickerPropsContext = createPropsContext<ColorPickerProps>();
57
+
58
+ /**
59
+ * Represents the [KendoReact ColorPicker component]({% slug overview_colorpicker %}).
60
+ *
61
+ * @example
62
+ * ```jsx
63
+ * class App extends React.Component {
64
+ * render() {
65
+ * return <ColorPicker />;
66
+ * }
67
+ * }
68
+ * ReactDOM.render(<App />, document.querySelector('my-app'));
69
+ * ```
70
+ */
71
+ export const ColorPicker = React.forwardRef<ColorPickerHandle | null, ColorPickerProps>((directProps, target) => {
72
+ validatePackage(packageMetadata);
73
+
74
+ const props = usePropsContext(ColorPickerPropsContext, directProps);
75
+
76
+ const localization = useLocalization();
77
+
78
+ const {
79
+ size = defaultProps.size,
80
+ rounded = defaultProps.rounded,
81
+ fillMode = defaultProps.fillMode,
82
+ popupSettings, gradientSettings, paletteSettings, valid,
83
+ disabled, tabIndex, view, icon, iconClassName, onChange, onFocus, onBlur,
84
+ onActiveColorClick
85
+ } = props;
86
+
87
+ const focusableElementRef = React.useRef<HTMLSpanElement>(null);
88
+ const gradientRef = React.useRef<ColorGradient>(null);
89
+ const paletteRef = React.useRef<ColorPalette>(null);
90
+ const blurTimeoutRef = React.useRef<any | undefined>();
91
+ const buttonRef = React.useRef<HTMLSpanElement>(null);
92
+
93
+ const focusElement = React.useCallback(
94
+ () => {
95
+ if (focusableElementRef.current) {
96
+ focusableElementRef.current.focus();
97
+ }
98
+ },
99
+ []
100
+ );
101
+
102
+ React.useImperativeHandle(target, () => ({
103
+ // we agreed that each element will have focus method exposed
104
+ element: focusableElementRef.current,
105
+ actionElement: buttonRef.current,
106
+ focus: focusElement
107
+ }));
108
+
109
+ const [focused, setFocused] = React.useState(false);
110
+ const [stateValue, setStateValue] = React.useState(props.defaultValue);
111
+ const [stateOpen, setStateOpen] = React.useState(false);
112
+ const isValueControlled = isControlled(props.value);
113
+ const isOpenControlled = isControlled(props.open);
114
+ const value = isValueControlled ? props.value : stateValue;
115
+ const open = isOpenControlled ? props.open! : stateOpen;
116
+
117
+ const setOpen = React.useCallback(
118
+ (nextOpen: boolean, isBlur?: boolean) => {
119
+ if (!isOpenControlled) {
120
+ if (!nextOpen && !isBlur && focusableElementRef && focusableElementRef.current) {
121
+ focusableElementRef.current.focus();
122
+ }
123
+
124
+ setStateOpen(nextOpen);
125
+ }
126
+ },
127
+ [isOpenControlled]
128
+ );
129
+
130
+ const onKeyDownHandler = React.useCallback(
131
+ (event: React.KeyboardEvent<HTMLSpanElement>) => {
132
+ const { altKey, keyCode } = event;
133
+
134
+ if (keyCode === Keys.esc) {
135
+ setOpen(false);
136
+ return;
137
+ }
138
+
139
+ if (keyCode === Keys.enter && !isOpenControlled) {
140
+ event.preventDefault();
141
+ event.stopPropagation();
142
+
143
+ setOpen(!open);
144
+ return;
145
+ }
146
+
147
+ if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {
148
+ event.preventDefault();
149
+ event.stopPropagation();
150
+
151
+ if (keyCode === Keys.up && focusableElementRef && focusableElementRef.current) {
152
+ focusableElementRef.current.focus();
153
+ setOpen(false);
154
+ }
155
+
156
+ if (keyCode === Keys.down) {
157
+ setOpen(true);
158
+ }
159
+ }
160
+ },
161
+ [open, isOpenControlled]
162
+ );
163
+
164
+ const onOpenHandler = React.useCallback(
165
+ () => {
166
+ // Skip content autofocus when in controlled mode
167
+ if (!isOpenControlled) {
168
+ if (gradientRef.current) {
169
+ gradientRef.current.focus();
170
+ } else if (paletteRef.current) {
171
+ paletteRef.current.focus();
172
+ }
173
+ }
174
+ },
175
+ [isOpenControlled]
176
+ );
177
+
178
+ const onClickHandler = React.useCallback(
179
+ () => {
180
+ setOpen(!open, true);
181
+ },
182
+ [open]
183
+ );
184
+
185
+ const onActiveColorClickHandler = React.useCallback(
186
+ (event: React.MouseEvent<HTMLSpanElement>) => {
187
+ if (onActiveColorClick) {
188
+ onActiveColorClick.call(undefined, {
189
+ syntheticEvent: event,
190
+ nativeEvent: event.nativeEvent,
191
+ value: value!
192
+ });
193
+ }
194
+ },
195
+ [onActiveColorClick, value]
196
+ );
197
+
198
+ const onFocusHandler = React.useCallback(
199
+ (event: React.FocusEvent<HTMLSpanElement>) => {
200
+ if (blurTimeoutRef.current) {
201
+ clearTimeout(blurTimeoutRef.current);
202
+ blurTimeoutRef.current = undefined;
203
+
204
+ // case where moving back to input from popup
205
+ // if (event.target === focusableElementRef.current) {
206
+ // setOpen(false); // in this case we should focus input on keydown
207
+ // }
208
+ } else {
209
+ setFocused(true);
210
+ }
211
+
212
+ if (onFocus) {
213
+ onFocus.call(undefined, {
214
+ nativeEvent: event.nativeEvent,
215
+ syntheticEvent: event
216
+ } as ColorPickerBlurEvent);
217
+ }
218
+ },
219
+ [onFocus]
220
+ );
221
+
222
+ const onBlurTimeout = React.useCallback(
223
+ () => {
224
+ setOpen(false, true);
225
+ setFocused(false);
226
+ blurTimeoutRef.current = undefined;
227
+ },
228
+ []
229
+ );
230
+
231
+ const onBlurHandler = React.useCallback(
232
+ (event: React.FocusEvent<HTMLSpanElement>) => {
233
+ clearTimeout(blurTimeoutRef.current);
234
+
235
+ blurTimeoutRef.current = window.setTimeout(onBlurTimeout);
236
+
237
+ if (onBlur) {
238
+ onBlur.call(undefined, {
239
+ nativeEvent: event.nativeEvent,
240
+ syntheticEvent: event
241
+ } as ColorPickerBlurEvent);
242
+ }
243
+ },
244
+ [onBlur]
245
+ );
246
+
247
+ const onChangeHandler = React.useCallback(
248
+ (event: ColorGradientChangeEvent | ColorPaletteChangeEvent, isPalette?: boolean) => {
249
+ const currentValue: string = isPalette ? (event as ColorPaletteChangeEvent).rgbaValue : event.value;
250
+
251
+ if (!isValueControlled) {
252
+ setStateValue(currentValue);
253
+ }
254
+
255
+ if (isPalette) {
256
+ setOpen(false);
257
+ }
258
+
259
+ if (onChange) {
260
+ onChange.call(undefined, {
261
+ value: currentValue,
262
+ nativeEvent: event.nativeEvent,
263
+ syntheticEvent: event.syntheticEvent
264
+ } as ColorPickerChangeEvent);
265
+ }
266
+ },
267
+ [isValueControlled, onChange]
268
+ );
269
+
270
+ const onPaletteChangeHandler = React.useCallback(
271
+ (event: ColorPaletteChangeEvent) => onChangeHandler(event, true),
272
+ [isControlled, onChangeHandler]
273
+ );
274
+
275
+ const dir = useDir(focusableElementRef, props.dir);
276
+ const isValid = valid !== false;
277
+
278
+ return (
279
+ <span
280
+ id={props.id}
281
+ aria-labelledby={props.ariaLabelledBy}
282
+ aria-describedby={props.ariaDescribedBy}
283
+ className={classNames(
284
+ 'k-colorpicker',
285
+ 'k-picker',
286
+ 'k-icon-picker', {
287
+ [`k-picker-${kendoThemeMaps.sizeMap[size!] || size}`]: size,
288
+ [`k-picker-${fillMode}`]: fillMode,
289
+ [`k-rounded-${kendoThemeMaps.roundedMap[rounded!] || rounded}`]: rounded,
290
+ 'k-invalid': !isValid,
291
+ 'k-disabled': disabled,
292
+ 'k-focus': focused
293
+ }
294
+ )}
295
+ ref={focusableElementRef}
296
+ tabIndex={getTabIndex(tabIndex, disabled)}
297
+ title={props.title}
298
+
299
+ onKeyDown={onKeyDownHandler}
300
+ onFocus={onFocusHandler}
301
+ onBlur={onBlurHandler}
302
+ dir={dir}
303
+ >
304
+ <Picker
305
+ dir={dir}
306
+ open={open}
307
+ onOpen={onOpenHandler}
308
+ popupAnchor={focusableElementRef.current || undefined}
309
+ popupSettings={{ ...popupSettings }}
310
+ input={
311
+ (
312
+ <span onClick={onActiveColorClickHandler} className={'k-input-inner'}>
313
+ <span className={
314
+ classNames(
315
+ 'k-value-icon',
316
+ 'k-color-preview', {
317
+ 'k-no-color': !value,
318
+ 'k-icon-color-preview': (icon || iconClassName)
319
+ }
320
+ )}
321
+ >
322
+ {(iconClassName || icon) && <span className={classNames('k-color-preview-icon', iconClassName, {
323
+ [`k-icon k-i-${icon}`]: (icon && !iconClassName)
324
+ })} />}
325
+ <span className="k-color-preview-mask" style={{ backgroundColor: value }}/>
326
+ </span>
327
+ </span>
328
+ )}
329
+ button={(
330
+ <Button
331
+ tabIndex={-1}
332
+ type="button"
333
+ onClick={onClickHandler}
334
+ className="k-input-button"
335
+ rounded={null}
336
+ icon={'arrow-s'}
337
+ aria-label={localization.toLanguageString(colorPickerDropdownButtonAriaLabel, messages[colorPickerDropdownButtonAriaLabel])}
338
+ />)}
339
+ content={(
340
+ <>
341
+ {(view === 'combo' || view === 'gradient') && (
342
+ <ColorGradient
343
+ {...gradientSettings}
344
+ tabIndex={0}
345
+ ref={gradientRef}
346
+ value={value}
347
+ onChange={onChangeHandler}
348
+ />)}
349
+ {(view === 'combo' || view === 'palette') && (
350
+ <ColorPalette
351
+ {...paletteSettings}
352
+ ref={paletteRef}
353
+ value={value}
354
+ onChange={onPaletteChangeHandler}
355
+ />)}
356
+ </>
357
+ )}
358
+ />
359
+ </span>
360
+ );
361
+ });
362
+
363
+ (ColorPicker as any).propTypes = {
364
+ value: PropTypes.string,
365
+ defaultValue: PropTypes.string,
366
+ disabled: PropTypes.bool,
367
+ view: PropTypes.oneOf<ColorPickerProps['view']>(['gradient', 'palette', 'combo']),
368
+ dir: PropTypes.string,
369
+ id: PropTypes.string,
370
+ ariaLabelledBy: PropTypes.string,
371
+ ariaDescribedBy: PropTypes.string,
372
+ size: PropTypes.oneOf<ColorPickerProps['size']>([null, 'small', 'medium', 'large']),
373
+ rounded: PropTypes.oneOf<ColorPickerProps['rounded']>([null, 'small', 'medium', 'large', 'full']),
374
+ fillMode: PropTypes.oneOf<ColorPickerProps['fillMode']>([null, 'solid', 'flat', 'outline'])
375
+ };
376
+
377
+ const defaultProps = {
378
+ size: 'medium' as ColorPickerProps['size'],
379
+ rounded: 'medium' as ColorPickerProps['rounded'],
380
+ fillMode: 'solid' as ColorPickerProps['fillMode'],
381
+ view: 'palette' as ColorPickerView,
382
+ gradientSettings: DEFAULT_GRADIENT_SETTINGS,
383
+ paletteSettings: DEFAULT_PALETTE_SETTINGS
384
+ };
385
+
386
+ ColorPicker.defaultProps = defaultProps;
387
+ ColorPicker.displayName = 'KendoColorPicker';
@@ -0,0 +1,258 @@
1
+ import * as React from 'react';
2
+ import * as PropTypes from 'prop-types';
3
+
4
+ import { classNames, validatePackage, getTabIndex } from '@progress/kendo-react-common';
5
+ import { ButtonGroup, Button } from '@progress/kendo-react-buttons';
6
+ import { ColorPalette, ColorGradient } from '../main';
7
+ import { packageMetadata } from '../package-metadata';
8
+
9
+ import { messages, flatColorPickerApplyBtn, flatColorPickerCancelBtn } from '../messages';
10
+
11
+ /**
12
+ * Represents the properties of [FlatColorPicker](% slug api_inputs_flatcolorpicker %) component.
13
+ */
14
+ export interface FlatColorPickerProps {
15
+ /**
16
+ * Sets the `id` property of the top `div` element of the FlatColorPicker.
17
+ */
18
+ id?: string;
19
+ /**
20
+ * Sets additional CSS styles to the FlatColorPicker.
21
+ */
22
+ style?: React.CSSProperties;
23
+ /**
24
+ * Sets additional classes to the FlatColorPicker.
25
+ */
26
+ className?: string;
27
+ /**
28
+ * Sets the color value.
29
+ */
30
+ value?: string;
31
+ /**
32
+ * Sets the `tabIndex` property of the FlatColorPicker.
33
+ */
34
+ tabIndex?: number;
35
+ /**
36
+ * Determines whether the FlatColorPicker is disabled.
37
+ */
38
+ disabled?: boolean;
39
+ /**
40
+ * Sets the FlatColorPicker view. The default is `ColorGradient`.
41
+ */
42
+ view?: 'ColorGradient' | 'ColorPalette' | undefined;
43
+ /**
44
+ * Sets custom header component.
45
+ */
46
+ header?: React.ComponentType;
47
+ /**
48
+ * Specifies whether clear button will be rendered in the header.
49
+ */
50
+ showClearButton?: boolean;
51
+ /**
52
+ * Specifies whether preview and revert color boxes will be rendered in the header.
53
+ */
54
+ showPreview?: boolean;
55
+ /**
56
+ * Specifies whether action buttons will be rendered in the footer.
57
+ */
58
+ showButtons?: boolean;
59
+ };
60
+
61
+ /**
62
+ * Represents the target (element and props) of the FlatColorPicker.
63
+ */
64
+ export interface FlatColorPickerHandle {
65
+ /**
66
+ * The current element or `null` if there is none.
67
+ */
68
+ element: HTMLDivElement | null;
69
+ /**
70
+ * The props values of the FlatColorPicker.
71
+ */
72
+ props: FlatColorPickerProps;
73
+ /**
74
+ * The focus event callback.
75
+ */
76
+ focus: () => void;
77
+ };
78
+
79
+ /**
80
+ * Represents the FlatColorPicker component.
81
+ */
82
+ export const FlatColorPicker = React.forwardRef<FlatColorPickerHandle | null, FlatColorPickerProps>((props, ref) => {
83
+ validatePackage(packageMetadata);
84
+
85
+ const target = React.useRef<FlatColorPickerHandle | null>(null);
86
+ const flatColorPickerRef = React.useRef<HTMLDivElement>(null);
87
+ const colorGradientRef = React.useRef(null);
88
+
89
+ const [colorGradientView, setColorGradientView] = React.useState<boolean>((props.view || 'ColorGradient') === 'ColorGradient');
90
+ const [colorValue, setColorValue] = React.useState('rgba(255, 255, 255, 1)');
91
+ const [prevColor, setPrevColor] = React.useState('rgba(255, 255, 255, 1)');
92
+
93
+ const focus = React.useCallback(
94
+ () => {
95
+ if (target.current) {
96
+ target.current.focus();
97
+ }
98
+ },
99
+ [target]
100
+ );
101
+
102
+ React.useImperativeHandle(target, () => ({
103
+ element: flatColorPickerRef.current,
104
+ focus,
105
+ props
106
+ }));
107
+
108
+ React.useImperativeHandle<FlatColorPickerHandle | null, FlatColorPickerHandle | null>(ref, () => target.current);
109
+
110
+ const handleViewChange = React.useCallback(
111
+ (viewType: any) => {
112
+ if ((viewType === 'ColorGradient' && !colorGradientView) || (viewType === 'ColorPalette' && colorGradientView)) {
113
+ setColorGradientView(!colorGradientView);
114
+ }
115
+ }, [colorGradientView]
116
+ );
117
+
118
+ const handleResetColor = React.useCallback(
119
+ () => {
120
+ setColorValue('rgba(255, 255, 255, 1)');
121
+ }, []
122
+ );
123
+
124
+ const handleColorChange = React.useCallback(
125
+ (event: any) => {
126
+ setColorValue(event.value);
127
+ }, []
128
+ );
129
+
130
+ const handleApplyBtnClick = React.useCallback(
131
+ () => {
132
+ setPrevColor(colorValue);
133
+ }, [colorValue]
134
+ );
135
+
136
+ const handleCancelBtnClick = React.useCallback(
137
+ () => {
138
+ setPrevColor('rgba(255, 255, 255, 1)');
139
+ }, []
140
+ );
141
+
142
+ const handlePrevColorClick = React.useCallback(
143
+ () => {
144
+ setColorValue(prevColor);
145
+ }, [prevColor]
146
+ );
147
+ const handleFocus = React.useCallback(
148
+ () => {
149
+ if (flatColorPickerRef.current) {
150
+ flatColorPickerRef.current.focus();
151
+ }
152
+ }, [flatColorPickerRef]
153
+ );
154
+
155
+ const handleFlatColorPickerBlur = React.useCallback(
156
+ () => {
157
+ setPrevColor(colorValue);
158
+ }, [colorValue]
159
+ );
160
+
161
+ return (
162
+ <div
163
+ id={props.id}
164
+ style={props.style}
165
+ ref={flatColorPickerRef}
166
+ tabIndex={getTabIndex(props.tabIndex, props.disabled)}
167
+ className={classNames(
168
+ 'k-flatcolorpicker k-coloreditor',
169
+ {
170
+ 'k-disabled': props.disabled
171
+ },
172
+ props.className
173
+ )}
174
+ onBlur={handleFlatColorPickerBlur}
175
+ >
176
+ <>
177
+ {props.header ||
178
+ <div className="k-coloreditor-header k-hstack">
179
+ <div className="k-coloreditor-header-actions k-hstack">
180
+ <ButtonGroup>
181
+ <Button
182
+ type="button"
183
+ togglable={true}
184
+ fillMode={'flat'}
185
+ selected={colorGradientView}
186
+ onClick={() => handleViewChange('ColorGradient')}
187
+ >
188
+ <span className="k-icon k-i-color-canvas" />
189
+ </Button>
190
+ <Button
191
+ type="button"
192
+ togglable={true}
193
+ fillMode={'flat'}
194
+ selected={!colorGradientView}
195
+ onClick={() => handleViewChange('ColorPalette')}
196
+ >
197
+ <span className="k-icon k-i-palette" />
198
+ </Button>
199
+ </ButtonGroup>
200
+ </div>
201
+ <div className="k-spacer" />
202
+ <div className="k-coloreditor-header-actions k-hstack">
203
+ {(props.showClearButton && defaultProps.showClearButton) &&
204
+ <Button type="button" fillMode={'flat'} onClick={handleResetColor}>
205
+ <span className="k-icon k-i-reset-color" />
206
+ </Button>
207
+ }
208
+ {(props.showPreview && defaultProps.showPreview) &&
209
+ <div className="k-coloreditor-preview k-vstack">
210
+ <span className="k-coloreditor-preview-color k-color-preview" style={{ background: colorValue }} />
211
+ <span className="k-coloreditor-current-color k-color-preview" style={{ background: prevColor }} onClick={handlePrevColorClick}/>
212
+ </div>
213
+ }
214
+ </div>
215
+ </div>
216
+ }
217
+
218
+ <div className="k-coloreditor-views k-vstack">
219
+ {colorGradientView
220
+ ? <ColorGradient ref={colorGradientRef} value={colorValue} onChange={handleColorChange} onFocus={handleFocus} />
221
+ : <ColorPalette value={colorValue} onChange={handleColorChange} onFocus={handleFocus} />
222
+ }
223
+ </div>
224
+ {(props.showButtons && defaultProps.showButtons) &&
225
+ <div className="k-coloreditor-footer k-actions k-actions-end">
226
+ <Button type="button" className="k-coloreditor-cancel" onClick={handleCancelBtnClick}>
227
+ {messages[flatColorPickerCancelBtn]}
228
+ </Button>
229
+ <Button type="button" className="k-coloreditor-apply k-primary" onClick={handleApplyBtnClick}>
230
+ {messages[flatColorPickerApplyBtn]}
231
+ </Button>
232
+ </div>
233
+ }
234
+ </>
235
+ </div>
236
+ );
237
+ });
238
+
239
+ const propTypes = {
240
+ id: PropTypes.string,
241
+ value: PropTypes.string,
242
+ view: PropTypes.string,
243
+ header: PropTypes.elementType,
244
+ showClearButton: PropTypes.bool,
245
+ showPreview: PropTypes.bool,
246
+ showButtons: PropTypes.bool
247
+ };
248
+
249
+ const defaultProps = {
250
+ showClearButton: true,
251
+ showPreview: true,
252
+ showButtons: true
253
+ };
254
+
255
+ FlatColorPicker.displayName = 'KendoFlatColorPicker';
256
+ // TODO: delete casting when @types/react is updated!
257
+ (FlatColorPicker as any).propTypes = propTypes;
258
+ FlatColorPicker.defaultProps = defaultProps;
@@ -0,0 +1,67 @@
1
+ import * as React from 'react';
2
+ import { parseColor } from './utils/color-parser';
3
+ import { isPresent } from './utils/misc';
4
+ import { Input } from '../input/Input';
5
+
6
+ /**
7
+ * @hidden
8
+ */
9
+ export interface HexInputProps {
10
+ hex: string;
11
+ onHexChange: any;
12
+ disabled?: boolean;
13
+ }
14
+
15
+ /**
16
+ * @hidden
17
+ */
18
+ export interface HexInputState {
19
+ originalHex: string;
20
+ hex: string;
21
+ }
22
+
23
+ /**
24
+ * @hidden
25
+ */
26
+ export default class HexInput extends React.Component<HexInputProps, HexInputState> {
27
+ constructor(props: HexInputProps) {
28
+ super(props);
29
+
30
+ this.state = { hex: this.props.hex, originalHex: this.props.hex };
31
+ }
32
+
33
+ render() {
34
+ return (
35
+ <Input
36
+ value={this.state.hex}
37
+ onChange={this.onChange}
38
+ onBlur={this.onBlur}
39
+ disabled={this.props.disabled}
40
+ />
41
+ );
42
+ }
43
+
44
+ static getDerivedStateFromProps(props: HexInputProps, state: HexInputState) {
45
+ if (props.hex !== state.originalHex) {
46
+ return { hex: props.hex, originalHex: props.hex };
47
+ }
48
+
49
+ return null;
50
+ }
51
+
52
+ private onChange = (event: any) => {
53
+ const hex = event.target.value;
54
+ const value = parseColor(hex, 'rgba');
55
+ this.setState({ hex });
56
+
57
+ if (isPresent(value)) {
58
+ this.props.onHexChange(hex, value, event);
59
+ }
60
+ };
61
+
62
+ private onBlur = () => {
63
+ if (!isPresent(parseColor(this.state.hex, 'rgba'))) {
64
+ this.setState({ hex: this.state.originalHex });
65
+ }
66
+ };
67
+ }