@progress/kendo-react-inputs 7.2.4-develop.3 → 7.2.4-develop.4

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 (205) hide show
  1. package/checkbox/Checkbox.js +8 -0
  2. package/checkbox/Checkbox.mjs +214 -0
  3. package/colors/ColorContrastLabels.js +8 -0
  4. package/colors/ColorContrastLabels.mjs +24 -0
  5. package/colors/ColorContrastSvg.js +8 -0
  6. package/colors/ColorContrastSvg.mjs +52 -0
  7. package/colors/ColorGradient.js +8 -0
  8. package/colors/ColorGradient.mjs +293 -0
  9. package/colors/ColorInput.js +8 -0
  10. package/colors/ColorInput.mjs +122 -0
  11. package/colors/ColorPalette.js +8 -0
  12. package/colors/ColorPalette.mjs +191 -0
  13. package/colors/ColorPicker.js +8 -0
  14. package/colors/ColorPicker.mjs +253 -0
  15. package/colors/FlatColorPicker.js +8 -0
  16. package/colors/FlatColorPicker.mjs +216 -0
  17. package/colors/HexInput.js +8 -0
  18. package/colors/HexInput.mjs +39 -0
  19. package/colors/Picker.js +8 -0
  20. package/colors/Picker.mjs +42 -0
  21. package/colors/models/palette-presets.js +8 -0
  22. package/colors/models/palette-presets.mjs +61 -0
  23. package/colors/utils/color-cache.js +8 -0
  24. package/colors/utils/color-cache.mjs +51 -0
  25. package/colors/utils/color-palette.service.js +8 -0
  26. package/colors/utils/color-palette.service.mjs +50 -0
  27. package/colors/utils/color-parser.js +8 -0
  28. package/colors/utils/color-parser.mjs +61 -0
  29. package/colors/utils/misc.js +8 -0
  30. package/colors/utils/misc.mjs +13 -0
  31. package/colors/utils/svg-calc.js +8 -0
  32. package/colors/utils/svg-calc.mjs +36 -0
  33. package/dist/cdn/js/kendo-react-inputs.js +8 -21
  34. package/index.d.mts +4275 -5
  35. package/index.d.ts +4275 -75
  36. package/index.js +8 -21
  37. package/index.mjs +97 -5042
  38. package/input/Input.js +8 -0
  39. package/input/Input.mjs +185 -0
  40. package/input/InputClearValue.js +8 -0
  41. package/input/InputClearValue.mjs +24 -0
  42. package/input/InputPrefix.js +8 -0
  43. package/input/InputPrefix.mjs +24 -0
  44. package/input/InputSeparator.js +8 -0
  45. package/input/InputSeparator.mjs +24 -0
  46. package/input/InputSuffix.js +8 -0
  47. package/input/InputSuffix.mjs +24 -0
  48. package/input/InputValidationIcon.js +8 -0
  49. package/input/InputValidationIcon.mjs +15 -0
  50. package/maskedtextbox/MaskedTextBox.js +8 -0
  51. package/maskedtextbox/MaskedTextBox.mjs +322 -0
  52. package/maskedtextbox/masking.service.js +8 -0
  53. package/maskedtextbox/masking.service.mjs +121 -0
  54. package/maskedtextbox/parsing/combinators.js +8 -0
  55. package/maskedtextbox/parsing/combinators.mjs +20 -0
  56. package/maskedtextbox/parsing/parsers.js +8 -0
  57. package/maskedtextbox/parsing/parsers.mjs +80 -0
  58. package/maskedtextbox/parsing/result.js +8 -0
  59. package/maskedtextbox/parsing/result.mjs +35 -0
  60. package/maskedtextbox/parsing/stream.js +8 -0
  61. package/maskedtextbox/parsing/stream.mjs +41 -0
  62. package/maskedtextbox/utils.js +8 -0
  63. package/maskedtextbox/utils.mjs +43 -0
  64. package/messages/index.js +8 -0
  65. package/messages/index.mjs +77 -0
  66. package/numerictextbox/NumericTextBox.js +8 -0
  67. package/numerictextbox/NumericTextBox.mjs +415 -0
  68. package/numerictextbox/utils/index.js +8 -0
  69. package/numerictextbox/utils/index.mjs +218 -0
  70. package/package-metadata.js +8 -0
  71. package/package-metadata.mjs +19 -0
  72. package/package.json +8 -8
  73. package/radiobutton/RadioButton.js +8 -0
  74. package/radiobutton/RadioButton.mjs +138 -0
  75. package/radiobutton/RadioGroup.js +8 -0
  76. package/radiobutton/RadioGroup.mjs +135 -0
  77. package/range-slider/RangeSlider.js +20 -0
  78. package/range-slider/RangeSlider.mjs +337 -0
  79. package/range-slider/range-raducer.js +8 -0
  80. package/range-slider/range-raducer.mjs +90 -0
  81. package/rating/Rating.js +12 -0
  82. package/rating/Rating.mjs +323 -0
  83. package/rating/RatingItem.js +8 -0
  84. package/rating/RatingItem.mjs +144 -0
  85. package/rating/rating-reducer.js +8 -0
  86. package/rating/rating-reducer.mjs +34 -0
  87. package/rating/utils/index.js +8 -0
  88. package/rating/utils/index.mjs +28 -0
  89. package/signature/Signature.js +8 -0
  90. package/signature/Signature.mjs +335 -0
  91. package/signature/utils/index.js +8 -0
  92. package/signature/utils/index.mjs +17 -0
  93. package/slider/Slider.js +8 -0
  94. package/slider/Slider.mjs +223 -0
  95. package/slider/SliderLabel.js +8 -0
  96. package/slider/SliderLabel.mjs +39 -0
  97. package/switch/Switch.js +8 -0
  98. package/switch/Switch.mjs +228 -0
  99. package/textarea/TextArea.js +8 -0
  100. package/textarea/TextArea.mjs +196 -0
  101. package/textbox/Textbox.js +8 -0
  102. package/textbox/Textbox.mjs +125 -0
  103. package/checkbox/Checkbox.d.ts +0 -36
  104. package/checkbox/interfaces/CheckboxBlurEvent.d.ts +0 -11
  105. package/checkbox/interfaces/CheckboxChangeEvent.d.ts +0 -15
  106. package/checkbox/interfaces/CheckboxFocusEvent.d.ts +0 -11
  107. package/checkbox/interfaces/CheckboxProps.d.ts +0 -126
  108. package/colors/ColorContrastLabels.d.ts +0 -19
  109. package/colors/ColorContrastSvg.d.ts +0 -22
  110. package/colors/ColorGradient.d.ts +0 -191
  111. package/colors/ColorInput.d.ts +0 -34
  112. package/colors/ColorPalette.d.ts +0 -127
  113. package/colors/ColorPicker.d.ts +0 -34
  114. package/colors/FlatColorPicker.d.ts +0 -139
  115. package/colors/HexInput.d.ts +0 -33
  116. package/colors/Picker.d.ts +0 -10
  117. package/colors/interfaces/ColorGradientChangeEvent.d.ts +0 -15
  118. package/colors/interfaces/ColorGradientProps.d.ts +0 -101
  119. package/colors/interfaces/ColorPaletteChangeEvent.d.ts +0 -19
  120. package/colors/interfaces/ColorPaletteProps.d.ts +0 -87
  121. package/colors/interfaces/ColorPickerActiveColorClick.d.ts +0 -21
  122. package/colors/interfaces/ColorPickerBlurEvent.d.ts +0 -17
  123. package/colors/interfaces/ColorPickerChangeEvent.d.ts +0 -21
  124. package/colors/interfaces/ColorPickerFocusEvent.d.ts +0 -17
  125. package/colors/interfaces/ColorPickerGradientSettings.d.ts +0 -22
  126. package/colors/interfaces/ColorPickerPaletteSettings.d.ts +0 -36
  127. package/colors/interfaces/ColorPickerPopupSettings.d.ts +0 -18
  128. package/colors/interfaces/ColorPickerProps.d.ts +0 -165
  129. package/colors/interfaces/ColorPickerView.d.ts +0 -14
  130. package/colors/interfaces/PickerPopupSettings.d.ts +0 -22
  131. package/colors/interfaces/PickerProps.d.ts +0 -46
  132. package/colors/models/hsva.d.ts +0 -13
  133. package/colors/models/output-format.d.ts +0 -8
  134. package/colors/models/palette-presets.d.ts +0 -57
  135. package/colors/models/rgb.d.ts +0 -12
  136. package/colors/models/rgba.d.ts +0 -13
  137. package/colors/models/table-cell.d.ts +0 -11
  138. package/colors/models/tile-size.d.ts +0 -15
  139. package/colors/utils/color-cache.d.ts +0 -34
  140. package/colors/utils/color-palette.service.d.ts +0 -16
  141. package/colors/utils/color-parser.d.ts +0 -69
  142. package/colors/utils/misc.d.ts +0 -19
  143. package/colors/utils/svg-calc.d.ts +0 -66
  144. package/input/Input.d.ts +0 -171
  145. package/input/InputClearValue.d.ts +0 -19
  146. package/input/InputPrefix.d.ts +0 -29
  147. package/input/InputSeparator.d.ts +0 -29
  148. package/input/InputSuffix.d.ts +0 -29
  149. package/input/InputValidationIcon.d.ts +0 -18
  150. package/input/interfaces/InputChangeEvent.d.ts +0 -15
  151. package/interfaces/Direction.d.ts +0 -5
  152. package/interfaces/ToggleBaseProps.d.ts +0 -12
  153. package/maskedtextbox/MaskedTextBox.d.ts +0 -238
  154. package/maskedtextbox/MaskedTextBoxProps.d.ts +0 -200
  155. package/maskedtextbox/masking.service.d.ts +0 -45
  156. package/maskedtextbox/parsing/combinators.d.ts +0 -13
  157. package/maskedtextbox/parsing/parsers.d.ts +0 -51
  158. package/maskedtextbox/parsing/result.d.ts +0 -27
  159. package/maskedtextbox/parsing/stream.d.ts +0 -26
  160. package/maskedtextbox/utils.d.ts +0 -20
  161. package/messages/index.d.ts +0 -169
  162. package/numerictextbox/NumericTextBox.d.ts +0 -18
  163. package/numerictextbox/interfaces/NumericTextBoxBlurEvent.d.ts +0 -11
  164. package/numerictextbox/interfaces/NumericTextBoxChangeEvent.d.ts +0 -15
  165. package/numerictextbox/interfaces/NumericTextBoxFocusEvent.d.ts +0 -11
  166. package/numerictextbox/interfaces/NumericTextBoxHandle.d.ts +0 -43
  167. package/numerictextbox/interfaces/NumericTextBoxProps.d.ts +0 -188
  168. package/numerictextbox/interfaces/NumericTextBoxState.d.ts +0 -19
  169. package/numerictextbox/utils/index.d.ts +0 -123
  170. package/package-metadata.d.ts +0 -9
  171. package/radiobutton/RadioButton.d.ts +0 -27
  172. package/radiobutton/RadioGroup.d.ts +0 -27
  173. package/radiobutton/interfaces/RadioButtonBlurEvent.d.ts +0 -11
  174. package/radiobutton/interfaces/RadioButtonChangeEvent.d.ts +0 -15
  175. package/radiobutton/interfaces/RadioButtonFocusEvent.d.ts +0 -11
  176. package/radiobutton/interfaces/RadioButtonProps.d.ts +0 -101
  177. package/radiobutton/interfaces/RadioGroupChangeEvent.d.ts +0 -15
  178. package/radiobutton/interfaces/RadioGroupFocusEvent.d.ts +0 -11
  179. package/radiobutton/interfaces/RadioGroupProps.d.ts +0 -90
  180. package/range-slider/RangeSlider.d.ts +0 -142
  181. package/range-slider/range-raducer.d.ts +0 -40
  182. package/rating/Rating.d.ts +0 -170
  183. package/rating/RatingItem.d.ts +0 -108
  184. package/rating/models/index.d.ts +0 -88
  185. package/rating/rating-reducer.d.ts +0 -36
  186. package/rating/utils/index.d.ts +0 -28
  187. package/signature/Signature.d.ts +0 -18
  188. package/signature/interfaces/SignatureBlurEvent.d.ts +0 -11
  189. package/signature/interfaces/SignatureChangeEvent.d.ts +0 -15
  190. package/signature/interfaces/SignatureCloseEvent.d.ts +0 -11
  191. package/signature/interfaces/SignatureFocusEvent.d.ts +0 -11
  192. package/signature/interfaces/SignatureHandle.d.ts +0 -46
  193. package/signature/interfaces/SignatureOpenEvent.d.ts +0 -11
  194. package/signature/interfaces/SignatureProps.d.ts +0 -198
  195. package/signature/interfaces/index.d.ts +0 -11
  196. package/signature/utils/index.d.ts +0 -8
  197. package/slider/Slider.d.ts +0 -197
  198. package/slider/SliderLabel.d.ts +0 -38
  199. package/switch/Switch.d.ts +0 -294
  200. package/textarea/TextArea.d.ts +0 -40
  201. package/textarea/interfaces/TextAreaBlurEvent.d.ts +0 -11
  202. package/textarea/interfaces/TextAreaChangeEvent.d.ts +0 -15
  203. package/textarea/interfaces/TextAreaFocusEvent.d.ts +0 -11
  204. package/textarea/interfaces/TextAreaProps.d.ts +0 -140
  205. package/textbox/Textbox.d.ts +0 -80
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ge=require("react"),t=require("prop-types"),l=require("@progress/kendo-react-common"),ve=require("../package-metadata.js"),Ce=require("@progress/kendo-react-intl"),O=require("../messages/index.js");function ye(s){const u=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const r in s)if(r!=="default"){const m=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(u,r,m.get?m:{enumerable:!0,get:()=>s[r]})}}return u.default=s,Object.freeze(u)}const e=ye(ge),A=l.createPropsContext(),h=e.forwardRef((s,u)=>{l.validatePackage(ve.packageMetadata);const r=l.usePropsContext(A,s),{ariaDescribedBy:m,ariaLabelledBy:W,checked:B,className:G,labelClassName:J,children:Q,defaultChecked:X,disabled:n,defaultValue:Y,id:q,size:g,rounded:v,label:D,labelPlacement:T,name:Z,labelOptional:ee,onChange:C,onFocus:y,onBlur:x,tabIndex:te,value:i,required:P,valid:z,validationMessage:F,validityStyles:K,visited:Pe,touched:Ee,modified:Ve,...ae}=r,o=e.useRef(null),R=e.useCallback(()=>{o.current&&o.current.focus()},[]),d=e.useCallback(()=>({element:o.current,focus:R,get name(){return o.current&&o.current.name}}),[R]);e.useImperativeHandle(u,d);const[ne,le]=e.useState(X),[oe,ce]=e.useState(Y),w=typeof i=="boolean"||i===null,E=B!==void 0,b=w,V=b?i:oe,k=E?B:b?void 0:ne,j=k===void 0&&V,M=j?V:k,p=j||b?i===null?i:void 0:i||V,L=M===null||p===null,_=l.useId(),se=Ce.useLocalization(),H=a=>se.toLanguageString(a,O.messages[a]),U=H(O.checkboxValidation),re=H(O.checkboxOptionalText),N=z!==void 0?z:P?!!k:!0;e.useEffect(()=>{o.current&&o.current.setCustomValidity&&o.current.setCustomValidity(N?"":F||U)},[N,F,U]);const f=e.useCallback((a,c)=>{!b&&!n&&(ce(c),!E&&!n&&le(c)),C&&!n&&l.dispatchEvent(C,a,{...d(),value:c},{value:c})},[E,n,C,b,d]),ie=e.useCallback(a=>{const c=a.target.checked;f(a,c)},[f,i]),de=e.useCallback(a=>{if(n)return;const{keyCode:c}=a,he=a.currentTarget.checked;c===l.Keys.space&&(a.preventDefault(),a.stopPropagation(),f(a,!he))},[n,f]),ue=e.useCallback(a=>{if(n)return;const{keyCode:c}=a;c===l.Keys.space&&a.preventDefault()},[n]),be=e.useCallback(a=>{y&&!n&&l.dispatchEvent(y,a,d(),void 0)},[y,n,d]),me=e.useCallback(a=>{x&&!n&&l.dispatchEvent(x,a,d(),void 0)},[x,n,d]),ke=l.useDir(o,r.dir),pe=l.classNames("k-checkbox-wrap",G),$={type:"checkbox",className:l.classNames("k-checkbox",{[`k-checkbox-${l.kendoThemeMaps.sizeMap[g]||g}`]:g,[`k-rounded-${l.kendoThemeMaps.roundedMap[v]||v}`]:v,"k-indeterminate":L,"k-disabled":n,"k-invalid k-invalid":!(N||K!==void 0||K===!0)}),ref:o,name:Z,id:q||_,"aria-labelledby":W,"aria-describedby":m,checked:!!M,disabled:n,tabIndex:l.getTabIndex(te,n),role:"checkbox",required:P!==void 0?P:!1,"aria-checked":k||M?!0:L?"mixed":!1,"aria-disabled":n||void 0,...ae,onChange:ie,onKeyDown:de,onKeyUp:ue,onFocus:be,onBlur:me},fe=e.createElement(e.Fragment,null,p===void 0?e.createElement("input",{...$}):e.createElement("input",{...$,value:w?void 0:p===null?"":p})),S=e.createElement(e.Fragment,null,D!==void 0?e.createElement("label",{className:l.classNames("k-checkbox-label",J),htmlFor:q||_,style:{userSelect:"none"}},D,ee&&e.createElement("span",{className:"k-label-optional"},re)):null),I=e.createElement("span",{className:pe},fe,Q);return e.createElement(e.Fragment,null,T==="before"?e.createElement("div",{dir:"rtl"},I,S):T==="after"?e.createElement("div",{dir:"ltr"},I,S):e.createElement("div",{dir:ke},I,S))});h.propTypes={checked:t.bool,className:t.string,defaultChecked:t.bool,defaultValue:t.any,dir:t.string,disabled:t.bool,id:t.string,size:t.oneOf([null,"small","medium","large"]),rounded:t.oneOf([null,"small","medium","large"]),ariaLabelledBy:t.string,ariaDescribedBy:t.string,label:t.any,labelPlacement:t.string,labelOptional:t.bool,name:t.string,tabIndex:t.number,value:t.any,validationMessage:t.string,required:t.bool,validate:t.bool,valid:t.bool,onChange:t.func,onFocus:t.func,onBlur:t.func};const xe={size:"medium",rounded:"medium"};h.defaultProps=xe;h.displayName="KendoCheckbox";exports.Checkbox=h;exports.CheckboxPropsContext=A;
@@ -0,0 +1,214 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as e from "react";
10
+ import a from "prop-types";
11
+ import { createPropsContext as ge, validatePackage as Ce, usePropsContext as ye, useId as xe, dispatchEvent as E, Keys as $, useDir as Ve, classNames as P, kendoThemeMaps as A, getTabIndex as Ee } from "@progress/kendo-react-common";
12
+ import { packageMetadata as Pe } from "../package-metadata.mjs";
13
+ import { useLocalization as Be } from "@progress/kendo-react-intl";
14
+ import { messages as Ie, checkboxValidation as Me, checkboxOptionalText as Ne } from "../messages/index.mjs";
15
+ const Fe = ge(), B = e.forwardRef((W, j) => {
16
+ Ce(Pe);
17
+ const I = ye(Fe, W), {
18
+ ariaDescribedBy: G,
19
+ ariaLabelledBy: J,
20
+ checked: M,
21
+ className: Q,
22
+ labelClassName: X,
23
+ children: Y,
24
+ defaultChecked: Z,
25
+ disabled: l,
26
+ defaultValue: _,
27
+ id: N,
28
+ size: m,
29
+ rounded: b,
30
+ label: F,
31
+ labelPlacement: S,
32
+ name: ee,
33
+ labelOptional: ae,
34
+ onChange: p,
35
+ onFocus: k,
36
+ onBlur: f,
37
+ tabIndex: te,
38
+ value: c,
39
+ required: h,
40
+ valid: z,
41
+ validationMessage: D,
42
+ validityStyles: K,
43
+ // Removed to support direct use in Form Field component
44
+ visited: ze,
45
+ touched: De,
46
+ modified: Ke,
47
+ ...le
48
+ } = I, n = e.useRef(null), T = e.useCallback(
49
+ () => {
50
+ n.current && n.current.focus();
51
+ },
52
+ []
53
+ ), s = e.useCallback(
54
+ () => ({
55
+ element: n.current,
56
+ focus: T,
57
+ get name() {
58
+ return n.current && n.current.name;
59
+ }
60
+ }),
61
+ [T]
62
+ );
63
+ e.useImperativeHandle(j, s);
64
+ const [ne, oe] = e.useState(Z), [ce, se] = e.useState(_), w = typeof c == "boolean" || c === null, v = M !== void 0, r = w, g = r ? c : ce, i = v ? M : r ? void 0 : ne, L = i === void 0 && g, C = L ? g : i, d = L || r ? c === null ? c : void 0 : c || g, O = C === null || d === null, R = xe(), re = Be(), q = (t) => re.toLanguageString(t, Ie[t]), H = q(Me), ie = q(Ne), y = z !== void 0 ? z : h ? !!i : !0;
65
+ e.useEffect(
66
+ () => {
67
+ n.current && n.current.setCustomValidity && n.current.setCustomValidity(
68
+ y ? "" : D || H
69
+ );
70
+ },
71
+ [y, D, H]
72
+ );
73
+ const u = e.useCallback(
74
+ (t, o) => {
75
+ !r && !l && (se(o), !v && !l && oe(o)), p && !l && E(
76
+ p,
77
+ t,
78
+ {
79
+ ...s(),
80
+ value: o
81
+ },
82
+ { value: o }
83
+ );
84
+ },
85
+ [v, l, p, r, s]
86
+ ), de = e.useCallback(
87
+ (t) => {
88
+ const o = t.target.checked;
89
+ u(t, o);
90
+ },
91
+ [u, c]
92
+ ), ue = e.useCallback(
93
+ (t) => {
94
+ if (l)
95
+ return;
96
+ const { keyCode: o } = t, ve = t.currentTarget.checked;
97
+ o === $.space && (t.preventDefault(), t.stopPropagation(), u(t, !ve));
98
+ },
99
+ [l, u]
100
+ ), me = e.useCallback(
101
+ (t) => {
102
+ if (l)
103
+ return;
104
+ const { keyCode: o } = t;
105
+ o === $.space && t.preventDefault();
106
+ },
107
+ [l]
108
+ ), be = e.useCallback(
109
+ (t) => {
110
+ k && !l && E(
111
+ k,
112
+ t,
113
+ s(),
114
+ void 0
115
+ );
116
+ },
117
+ [k, l, s]
118
+ ), pe = e.useCallback(
119
+ (t) => {
120
+ f && !l && E(
121
+ f,
122
+ t,
123
+ s(),
124
+ void 0
125
+ );
126
+ },
127
+ [f, l, s]
128
+ ), ke = Ve(n, I.dir), fe = P(
129
+ "k-checkbox-wrap",
130
+ Q
131
+ ), U = {
132
+ type: "checkbox",
133
+ className: P(
134
+ "k-checkbox",
135
+ {
136
+ [`k-checkbox-${A.sizeMap[m] || m}`]: m,
137
+ [`k-rounded-${A.roundedMap[b] || b}`]: b,
138
+ "k-indeterminate": O,
139
+ "k-disabled": l,
140
+ "k-invalid k-invalid": !(y || K !== void 0 || K === !0)
141
+ }
142
+ ),
143
+ ref: n,
144
+ name: ee,
145
+ id: N || R,
146
+ "aria-labelledby": J,
147
+ "aria-describedby": G,
148
+ checked: !!C,
149
+ disabled: l,
150
+ tabIndex: Ee(te, l),
151
+ role: "checkbox",
152
+ required: h !== void 0 ? h : !1,
153
+ "aria-checked": i || C ? !0 : O ? "mixed" : !1,
154
+ "aria-disabled": l || void 0,
155
+ ...le,
156
+ onChange: de,
157
+ onKeyDown: ue,
158
+ onKeyUp: me,
159
+ onFocus: be,
160
+ onBlur: pe
161
+ }, he = /* @__PURE__ */ e.createElement(
162
+ e.Fragment,
163
+ null,
164
+ // removing value prop is required due to bug in react where
165
+ // value set to undefined override default submit value
166
+ d === void 0 ? /* @__PURE__ */ e.createElement("input", { ...U }) : /* @__PURE__ */ e.createElement("input", { ...U, value: w ? void 0 : d === null ? "" : d })
167
+ ), x = /* @__PURE__ */ e.createElement(e.Fragment, null, F !== void 0 ? /* @__PURE__ */ e.createElement(
168
+ "label",
169
+ {
170
+ className: P("k-checkbox-label", X),
171
+ htmlFor: N || R,
172
+ style: { userSelect: "none" }
173
+ },
174
+ F,
175
+ ae && /* @__PURE__ */ e.createElement("span", { className: "k-label-optional" }, ie)
176
+ ) : null), V = /* @__PURE__ */ e.createElement("span", { className: fe }, he, Y);
177
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, S === "before" ? /* @__PURE__ */ e.createElement("div", { dir: "rtl" }, V, x) : S === "after" ? /* @__PURE__ */ e.createElement("div", { dir: "ltr" }, V, x) : /* @__PURE__ */ e.createElement("div", { dir: ke }, V, x));
178
+ });
179
+ B.propTypes = {
180
+ checked: a.bool,
181
+ className: a.string,
182
+ defaultChecked: a.bool,
183
+ defaultValue: a.any,
184
+ dir: a.string,
185
+ disabled: a.bool,
186
+ id: a.string,
187
+ size: a.oneOf([null, "small", "medium", "large"]),
188
+ rounded: a.oneOf([null, "small", "medium", "large"]),
189
+ ariaLabelledBy: a.string,
190
+ ariaDescribedBy: a.string,
191
+ label: a.any,
192
+ labelPlacement: a.string,
193
+ labelOptional: a.bool,
194
+ name: a.string,
195
+ tabIndex: a.number,
196
+ value: a.any,
197
+ validationMessage: a.string,
198
+ required: a.bool,
199
+ validate: a.bool,
200
+ valid: a.bool,
201
+ onChange: a.func,
202
+ onFocus: a.func,
203
+ onBlur: a.func
204
+ };
205
+ const Se = {
206
+ size: "medium",
207
+ rounded: "medium"
208
+ };
209
+ B.defaultProps = Se;
210
+ B.displayName = "KendoCheckbox";
211
+ export {
212
+ B as Checkbox,
213
+ Fe as CheckboxPropsContext
214
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),d=require("@progress/kendo-react-intl"),t=require("../messages/index.js"),C=require("./utils/color-parser.js"),c=require("@progress/kendo-react-common"),s=require("@progress/kendo-svg-icons");function I(n){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(a,o,l.get?l:{enumerable:!0,get:()=>n[o]})}}return a.default=n,Object.freeze(a)}const e=I(b);class g extends e.Component{render(){const a=d.provideLocalizationService(this),o=a.toLanguageString(t.colorGradientContrastRatio,t.messages[t.colorGradientContrastRatio]),l=a.toLanguageString(t.colorGradientAALevel,t.messages[t.colorGradientAALevel]),u=a.toLanguageString(t.colorGradientAAALevel,t.messages[t.colorGradientAAALevel]),p=a.toLanguageString(t.colorGradientPass,t.messages[t.colorGradientPass]),k=a.toLanguageString(t.colorGradientFail,t.messages[t.colorGradientFail]),r=C.getContrastFromTwoRGBAs(this.props.rgba,this.props.bgColor),v=4.5.toFixed(1),A=7 .toFixed(1),x=`${o}: ${r.toFixed(2)}`,E=`${l}: ${v}`,L=`${u}: ${A}`,i=e.createElement("span",{className:"k-contrast-validation k-text-success"},p," ",e.createElement(c.IconWrap,{name:"check",icon:s.checkIcon})),m=e.createElement("span",{className:"k-contrast-validation k-text-error"},k," ",e.createElement(c.IconWrap,{name:"x",icon:s.xIcon}));return e.createElement("div",{className:"k-vbox k-colorgradient-color-contrast"},e.createElement("div",{className:"k-contrast-ratio"},e.createElement("span",{className:"k-contrast-ratio-text"},x),r>=4.5?e.createElement("span",{className:"k-contrast-validation k-text-success"},e.createElement(c.IconWrap,{name:"check",icon:s.checkIcon}),r>=7&&e.createElement(c.IconWrap,{name:"check",icon:s.checkIcon})):e.createElement("span",{className:"k-contrast-validation k-text-error"},e.createElement(c.IconWrap,{name:"x",icon:s.xIcon}))),e.createElement("div",null,e.createElement("span",null,E),r>=4.5?i:m),e.createElement("div",null,e.createElement("span",null,L),r>=7?i:m))}}d.registerForLocalization(g);exports.ColorContrastLabels=g;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as e from "react";
10
+ import { provideLocalizationService as N, registerForLocalization as S } from "@progress/kendo-react-intl";
11
+ import { colorGradientContrastRatio as i, messages as o, colorGradientAALevel as l, colorGradientAAALevel as m, colorGradientPass as g, colorGradientFail as d } from "../messages/index.mjs";
12
+ import { getContrastFromTwoRGBAs as F } from "./utils/color-parser.mjs";
13
+ import { IconWrap as n } from "@progress/kendo-react-common";
14
+ import { checkIcon as r, xIcon as p } from "@progress/kendo-svg-icons";
15
+ class G extends e.Component {
16
+ render() {
17
+ const t = N(this), x = t.toLanguageString(i, o[i]), k = t.toLanguageString(l, o[l]), u = t.toLanguageString(m, o[m]), v = t.toLanguageString(g, o[g]), A = t.toLanguageString(d, o[d]), a = F(this.props.rgba, this.props.bgColor), E = 4.5.toFixed(1), L = 7 .toFixed(1), C = `${x}: ${a.toFixed(2)}`, f = `${k}: ${E}`, h = `${u}: ${L}`, s = /* @__PURE__ */ e.createElement("span", { className: "k-contrast-validation k-text-success" }, v, " ", /* @__PURE__ */ e.createElement(n, { name: "check", icon: r })), c = /* @__PURE__ */ e.createElement("span", { className: "k-contrast-validation k-text-error" }, A, " ", /* @__PURE__ */ e.createElement(n, { name: "x", icon: p }));
18
+ return /* @__PURE__ */ e.createElement("div", { className: "k-vbox k-colorgradient-color-contrast" }, /* @__PURE__ */ e.createElement("div", { className: "k-contrast-ratio" }, /* @__PURE__ */ e.createElement("span", { className: "k-contrast-ratio-text" }, C), a >= 4.5 ? /* @__PURE__ */ e.createElement("span", { className: "k-contrast-validation k-text-success" }, /* @__PURE__ */ e.createElement(n, { name: "check", icon: r }), a >= 7 && /* @__PURE__ */ e.createElement(n, { name: "check", icon: r })) : /* @__PURE__ */ e.createElement("span", { className: "k-contrast-validation k-text-error" }, /* @__PURE__ */ e.createElement(n, { name: "x", icon: p }))), /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("span", null, f), a >= 4.5 ? s : c), /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("span", null, h), a >= 7 ? s : c));
19
+ }
20
+ }
21
+ S(G);
22
+ export {
23
+ G as ColorContrastLabels
24
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),i=require("./utils/svg-calc.js"),p=require("./utils/color-parser.js");function S(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const r in l)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(l,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:()=>l[r]})}}return e.default=l,Object.freeze(e)}const h=S(b),C=4.5,m=7,f=16;class A extends h.Component{renderSvgCurveLine(){const e=this.props.metrics,r=(a,u,n,t,s)=>{const g=(n+t)/2,v=Object.assign({},this.props.hsva,{s:u/e.width,v:1-g/e.height}),c=p.getContrastFromTwoRGBAs(p.getRGBA(p.getColorFromHSV(v)),p.getRGBA(this.props.backgroundColor||""));return n+.5>t?c<a+1&&c>a-1?g:null:s(c,a)?r(a,u,n,t-(t-n)/2,s):r(a,u,n+(t-n)/2,t,s)},o=(a,u,n=!1)=>{const t=[];for(let s=0;s<=e.width;s+=e.width/u){const g=r(a,s,0,e.height,n?(v,c)=>v<c:(v,c)=>v>c);g!==null&&t.push([s,g])}return t},d=i.bezierCommand(i.controlPoint(i.line));return i.svgPath(o(C,f),d)+i.svgPath(o(C,f,!0),d)+i.svgPath(o(m,f),d)+i.svgPath(o(m,f,!0),d)}shouldComponentUpdate(e){return!(e.hsva.h===this.props.hsva.h&&e.hsva.a===this.props.hsva.a&&this.props.backgroundColor===e.backgroundColor)}render(){return h.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"k-color-contrast-svg",dangerouslySetInnerHTML:{__html:this.renderSvgCurveLine()},style:{position:"absolute",overflow:"visible",pointerEvents:"none",left:0,top:0,zIndex:3}})}}exports.ColorContrastSvg=A;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as h from "react";
10
+ import { svgPath as p, bezierCommand as f, controlPoint as A, line as b } from "./utils/svg-calc.mjs";
11
+ import { getContrastFromTwoRGBAs as S, getRGBA as m, getColorFromHSV as T } from "./utils/color-parser.mjs";
12
+ const C = 4.5, g = 7, v = 16;
13
+ class w extends h.Component {
14
+ renderSvgCurveLine() {
15
+ const t = this.props.metrics, d = (n, i, r, e, s) => {
16
+ const l = (r + e) / 2, a = Object.assign({}, this.props.hsva, { s: i / t.width, v: 1 - l / t.height }), o = S(m(T(a)), m(this.props.backgroundColor || ""));
17
+ return r + 0.5 > e ? o < n + 1 && o > n - 1 ? l : null : s(o, n) ? d(n, i, r, e - (e - r) / 2, s) : d(n, i, r + (e - r) / 2, e, s);
18
+ }, u = (n, i, r = !1) => {
19
+ const e = [];
20
+ for (let s = 0; s <= t.width; s += t.width / i) {
21
+ const l = d(n, s, 0, t.height, r ? (a, o) => a < o : (a, o) => a > o);
22
+ l !== null && e.push([s, l]);
23
+ }
24
+ return e;
25
+ }, c = f(A(b));
26
+ return p(u(C, v), c) + p(u(C, v, !0), c) + p(u(g, v), c) + p(u(g, v, !0), c);
27
+ }
28
+ shouldComponentUpdate(t) {
29
+ return !(t.hsva.h === this.props.hsva.h && t.hsva.a === this.props.hsva.a && this.props.backgroundColor === t.backgroundColor);
30
+ }
31
+ render() {
32
+ return /* @__PURE__ */ h.createElement(
33
+ "svg",
34
+ {
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ className: "k-color-contrast-svg",
37
+ dangerouslySetInnerHTML: { __html: this.renderSvgCurveLine() },
38
+ style: {
39
+ position: "absolute",
40
+ overflow: "visible",
41
+ pointerEvents: "none",
42
+ left: 0,
43
+ top: 0,
44
+ zIndex: 3
45
+ }
46
+ }
47
+ );
48
+ }
49
+ }
50
+ export {
51
+ w as ColorContrastSvg
52
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),i=require("prop-types"),h=require("@progress/kendo-react-common"),x=require("../package-metadata.js"),v=require("../slider/Slider.js"),u=require("./utils/misc.js"),r=require("./utils/color-parser.js"),c=require("./utils/color-cache.js"),E=require("./ColorInput.js"),H=require("./ColorContrastLabels.js"),F=require("./ColorContrastSvg.js"),L=require("@progress/kendo-react-intl"),g=require("../messages/index.js");function P(p){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(p){for(const s in p)if(s!=="default"){const e=Object.getOwnPropertyDescriptor(p,s);Object.defineProperty(t,s,e.get?e:{enumerable:!0,get:()=>p[s]})}}return t.default=p,Object.freeze(t)}const n=P(y),G="rgba",m="rgba(255, 255, 255, 1)",d=class d extends n.Component{constructor(t){super(t),this.wrapper=null,this.onHexChange=(e,a,o)=>{if(this.isUncontrolled){const l=r.getHSV(a);this.setState({hsva:l,backgroundColor:r.getColorFromHue(l.h),rgba:r.getRGBA(a),hex:e})}else c.cacheHex(this.state.guid,a,e);this.dispatchChangeEvent(a,o,o.nativeEvent)},this.onRgbaChange=(e,a)=>{const o=r.getColorFromRGBA(e);if(this.isUncontrolled){const l=r.getHSV(o),C=r.parseColor(o,"hex");this.setState({hsva:l,backgroundColor:r.getColorFromHue(l.h),rgba:e,hex:C})}else c.cacheRgba(this.state.guid,o,e);this.dispatchChangeEvent(o,a.syntheticEvent,a.nativeEvent)},this.onAlphaSliderChange=e=>{this.handleHsvaChange(Object.assign({},this.state.hsva,{a:e.value/100}),e.syntheticEvent,e.nativeEvent)},this.onHueSliderChange=e=>{this.handleHsvaChange(Object.assign({},this.state.hsva,{h:e.value}),e.syntheticEvent,e.nativeEvent)},this.onDrag=e=>{this.gradientWrapper.classList.add("k-dragging"),this.changePosition(e.event)},this.onRelease=()=>{this.gradientWrapper.classList.remove("k-dragging")},this.onGradientWrapperClick=e=>{this.changePosition(e)},this.changePosition=e=>{const a=this.getGradientRectMetrics(),o=e.clientX-a.left,l=e.clientY-a.top,C=u.fitIntoBounds(o,0,a.width),S=u.fitIntoBounds(l,0,a.height),R=Object.assign({},this.state.hsva,{s:C/a.width,v:1-S/a.height});this.handleHsvaChange(R,e,e.nativeEvent)},this.onFocus=e=>{this.props.onFocus&&this.props.onFocus.call(void 0,{nativeEvent:e,target:this})},this.focus=()=>{this.wrapper&&h.focusFirstFocusableChild(this.wrapper)},h.validatePackage(x.packageMetadata);const s=t.value||t.defaultValue||r.parseColor(m,G);this.state=Object.assign({},d.getStateFromValue(s),{isFirstRender:!0,guid:this.props.id})}static getDerivedStateFromProps(t,s){return t.value&&!s.isFirstRender?d.getStateFromValue(t.value,s.guid):null}componentDidMount(){this.setAlphaSliderBackground(this.state.backgroundColor),this.state.isFirstRender&&this.setState({isFirstRender:!1})}componentWillUnmount(){c.removeCachedColor(this.state.guid)}componentDidUpdate(t,s){s.backgroundColor!==this.state.backgroundColor&&this.setAlphaSliderBackground(this.state.backgroundColor)}renderRectangleDragHandle(){let t={};if(!this.state.isFirstRender){const s=this.getGradientRectMetrics(),e=(1-this.state.hsva.v)*s.height,a=this.state.hsva.s*s.width;t.top=`${e}px`,t.left=`${a}px`}return n.createElement("div",{role:"slider",tabIndex:h.getTabIndex(this.props.tabIndex,this.props.disabled),"aria-valuetext":this.props.ariaValueText,"aria-valuenow":parseInt(this.state.hex.substring(1),16),"aria-label":this.props.ariaLabelHSV,"aria-orientation":void 0,"aria-disabled":this.props.disabled?"true":void 0,className:"k-hsv-draghandle k-draghandle",style:t})}handleHsvaChange(t,s,e){const a=r.getColorFromHSV(t);if(this.isUncontrolled){const o=r.parseColor(a,"hex");this.setState({hsva:t,backgroundColor:r.getColorFromHue(t.h),rgba:r.getRGBA(a),hex:o})}else c.cacheHsva(this.state.guid,a,t);this.dispatchChangeEvent(a,s,e)}dispatchChangeEvent(t,s,e){this.props.onChange&&this.props.onChange.call(void 0,{syntheticEvent:s,nativeEvent:e,target:this,value:t})}static getStateFromValue(t,s){u.isPresent(r.parseColor(t,"hex"))||(t=m);const e=c.getCachedHsva(s,t)||r.getHSV(t),a=c.getCachedRgba(s,t)||r.getRGBA(t),o=c.getCachedHex(s,t)||r.parseColor(t,"hex"),l=r.getColorFromHue(e.h);return{hsva:e,backgroundColor:l,rgba:a,hex:o}}setAlphaSliderBackground(t){this.props.opacity&&this.alphaSlider&&this.alphaSlider.sliderTrack&&(this.alphaSlider.sliderTrack.style.background=`linear-gradient(to top, transparent, ${t})`)}get isUncontrolled(){return this.props.value===void 0}getGradientRectMetrics(){return this.gradientWrapper.getBoundingClientRect()}render(){const t=L.provideLocalizationService(this),s=h.classNames("k-colorgradient",{"k-disabled":this.props.disabled},this.props.className);return n.createElement("div",{id:this.props.id,role:this.props.role,className:s,"aria-disabled":this.props.disabled?"true":void 0,style:this.props.style,ref:e=>this.wrapper=e,tabIndex:h.getTabIndex(this.props.tabIndex,this.props.disabled),"aria-label":this.props.ariaLabel,"aria-labelledby":this.props.ariaLabelledBy,"aria-describedby":this.props.ariaDescribedBy,onFocus:this.onFocus},n.createElement("div",{className:"k-colorgradient-canvas k-hstack"},n.createElement("div",{className:"k-hsv-rectangle",style:{background:this.state.backgroundColor}},n.createElement(h.Draggable,{onDrag:this.onDrag,onRelease:this.onRelease,ref:e=>this.gradientWrapper=e?e.element:void 0},n.createElement("div",{className:"k-hsv-gradient",style:{touchAction:"none"},onClick:this.onGradientWrapperClick},this.renderRectangleDragHandle())),this.props.backgroundColor&&!this.state.isFirstRender&&n.createElement(F.ColorContrastSvg,{metrics:this.gradientWrapper?this.getGradientRectMetrics():void 0,hsva:this.state.hsva,backgroundColor:this.props.backgroundColor})),n.createElement("div",{className:"k-hsv-controls k-hstack"},n.createElement(v.Slider,{value:this.state.hsva.h,buttons:!1,vertical:!0,min:0,max:360,step:5,onChange:this.onHueSliderChange,className:"k-hue-slider k-colorgradient-slider",disabled:this.props.disabled,ariaLabel:t.toLanguageString(g.colorGradientHueSliderLabel,g.messages[g.colorGradientHueSliderLabel])}),this.props.opacity&&n.createElement(v.Slider,{value:u.isPresent(this.state.hsva.a)?this.state.hsva.a*100:100,buttons:!1,vertical:!0,min:0,max:100,step:1,ariaLabel:t.toLanguageString(g.colorGradientAlphaSliderLabel,g.messages[g.colorGradientAlphaSliderLabel]),onChange:this.onAlphaSliderChange,className:"k-alpha-slider k-colorgradient-slider",disabled:this.props.disabled,ref:e=>this.alphaSlider=e}))),n.createElement(E,{rgba:this.state.rgba,onRgbaChange:this.onRgbaChange,hex:this.state.hex,onHexChange:this.onHexChange,opacity:this.props.opacity,disabled:this.props.disabled,defaultInputMode:this.props.format}),this.props.backgroundColor&&n.createElement(H.ColorContrastLabels,{bgColor:r.getRGBA(this.props.backgroundColor),rgba:this.state.rgba}))}};d.displayName="ColorGradient",d.propTypes={defaultValue:i.string,value:i.string,onChange:i.func,onFocus:i.func,opacity:i.bool,backgroundColor:i.string,format:i.any,disabled:i.bool,style:i.any,id:i.string,role:i.string,ariaLabel:i.string,ariaLabelledBy:i.string,ariaDescribedBy:i.string,className:i.string},d.defaultProps={opacity:!0,role:"textbox",format:"rgb"};let b=d;const k=h.createPropsContext(),f=h.withIdHOC(h.withPropsContext(k,b));f.displayName="KendoReactColorGradient";exports.ColorGradient=f;exports.ColorGradientPropsContext=k;exports.ColorGradientWithoutContext=b;
@@ -0,0 +1,293 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as o from "react";
10
+ import i from "prop-types";
11
+ import { focusFirstFocusableChild as E, validatePackage as F, getTabIndex as u, classNames as H, Draggable as L, createPropsContext as D, withIdHOC as N, withPropsContext as A } from "@progress/kendo-react-common";
12
+ import { packageMetadata as B } from "../package-metadata.mjs";
13
+ import { Slider as m } from "../slider/Slider.mjs";
14
+ import { fitIntoBounds as C, isPresent as v } from "./utils/misc.mjs";
15
+ import { getHSV as g, getColorFromHue as d, getRGBA as c, getColorFromRGBA as P, parseColor as l, getColorFromHSV as w } from "./utils/color-parser.mjs";
16
+ import { cacheHex as I, cacheRgba as M, removeCachedColor as T, cacheHsva as V, getCachedHsva as G, getCachedRgba as O, getCachedHex as U } from "./utils/color-cache.mjs";
17
+ import j from "./ColorInput.mjs";
18
+ import { ColorContrastLabels as W } from "./ColorContrastLabels.mjs";
19
+ import { ColorContrastSvg as $ } from "./ColorContrastSvg.mjs";
20
+ import { provideLocalizationService as X } from "@progress/kendo-react-intl";
21
+ import { colorGradientHueSliderLabel as f, messages as k, colorGradientAlphaSliderLabel as S } from "../messages/index.mjs";
22
+ const Y = "rgba", R = "rgba(255, 255, 255, 1)", h = class h extends o.Component {
23
+ constructor(e) {
24
+ super(e), this.wrapper = null, this.onHexChange = (t, s, r) => {
25
+ if (this.isUncontrolled) {
26
+ const n = g(s);
27
+ this.setState({ hsva: n, backgroundColor: d(n.h), rgba: c(s), hex: t });
28
+ } else
29
+ I(this.state.guid, s, t);
30
+ this.dispatchChangeEvent(s, r, r.nativeEvent);
31
+ }, this.onRgbaChange = (t, s) => {
32
+ const r = P(t);
33
+ if (this.isUncontrolled) {
34
+ const n = g(r), p = l(r, "hex");
35
+ this.setState({ hsva: n, backgroundColor: d(n.h), rgba: t, hex: p });
36
+ } else
37
+ M(this.state.guid, r, t);
38
+ this.dispatchChangeEvent(r, s.syntheticEvent, s.nativeEvent);
39
+ }, this.onAlphaSliderChange = (t) => {
40
+ this.handleHsvaChange(
41
+ Object.assign({}, this.state.hsva, { a: t.value / 100 }),
42
+ t.syntheticEvent,
43
+ t.nativeEvent
44
+ );
45
+ }, this.onHueSliderChange = (t) => {
46
+ this.handleHsvaChange(
47
+ Object.assign({}, this.state.hsva, { h: t.value }),
48
+ t.syntheticEvent,
49
+ t.nativeEvent
50
+ );
51
+ }, this.onDrag = (t) => {
52
+ this.gradientWrapper.classList.add("k-dragging"), this.changePosition(t.event);
53
+ }, this.onRelease = () => {
54
+ this.gradientWrapper.classList.remove("k-dragging");
55
+ }, this.onGradientWrapperClick = (t) => {
56
+ this.changePosition(t);
57
+ }, this.changePosition = (t) => {
58
+ const s = this.getGradientRectMetrics(), r = t.clientX - s.left, n = t.clientY - s.top, p = C(r, 0, s.width), x = C(n, 0, s.height), y = Object.assign(
59
+ {},
60
+ this.state.hsva,
61
+ { s: p / s.width, v: 1 - x / s.height }
62
+ );
63
+ this.handleHsvaChange(y, t, t.nativeEvent);
64
+ }, this.onFocus = (t) => {
65
+ this.props.onFocus && this.props.onFocus.call(
66
+ void 0,
67
+ { nativeEvent: t, target: this }
68
+ );
69
+ }, this.focus = () => {
70
+ this.wrapper && E(this.wrapper);
71
+ }, F(B);
72
+ const a = e.value || e.defaultValue || l(R, Y);
73
+ this.state = Object.assign({}, h.getStateFromValue(a), { isFirstRender: !0, guid: this.props.id });
74
+ }
75
+ /**
76
+ * @hidden
77
+ */
78
+ static getDerivedStateFromProps(e, a) {
79
+ return e.value && !a.isFirstRender ? h.getStateFromValue(e.value, a.guid) : null;
80
+ }
81
+ /**
82
+ * @hidden
83
+ */
84
+ componentDidMount() {
85
+ this.setAlphaSliderBackground(this.state.backgroundColor), this.state.isFirstRender && this.setState({ isFirstRender: !1 });
86
+ }
87
+ /**
88
+ * @hidden
89
+ */
90
+ componentWillUnmount() {
91
+ T(this.state.guid);
92
+ }
93
+ /**
94
+ * @hidden
95
+ */
96
+ componentDidUpdate(e, a) {
97
+ a.backgroundColor !== this.state.backgroundColor && this.setAlphaSliderBackground(this.state.backgroundColor);
98
+ }
99
+ /**
100
+ * @hidden
101
+ */
102
+ renderRectangleDragHandle() {
103
+ let e = {};
104
+ if (!this.state.isFirstRender) {
105
+ const a = this.getGradientRectMetrics(), t = (1 - this.state.hsva.v) * a.height, s = this.state.hsva.s * a.width;
106
+ e.top = `${t}px`, e.left = `${s}px`;
107
+ }
108
+ return /* @__PURE__ */ o.createElement(
109
+ "div",
110
+ {
111
+ role: "slider",
112
+ tabIndex: u(this.props.tabIndex, this.props.disabled),
113
+ "aria-valuetext": this.props.ariaValueText,
114
+ "aria-valuenow": parseInt(this.state.hex.substring(1), 16),
115
+ "aria-label": this.props.ariaLabelHSV,
116
+ "aria-orientation": void 0,
117
+ "aria-disabled": this.props.disabled ? "true" : void 0,
118
+ className: "k-hsv-draghandle k-draghandle",
119
+ style: e
120
+ }
121
+ );
122
+ }
123
+ /**
124
+ * @hidden
125
+ */
126
+ handleHsvaChange(e, a, t) {
127
+ const s = w(e);
128
+ if (this.isUncontrolled) {
129
+ const r = l(s, "hex");
130
+ this.setState({ hsva: e, backgroundColor: d(e.h), rgba: c(s), hex: r });
131
+ } else
132
+ V(this.state.guid, s, e);
133
+ this.dispatchChangeEvent(s, a, t);
134
+ }
135
+ /**
136
+ * @hidden
137
+ */
138
+ dispatchChangeEvent(e, a, t) {
139
+ this.props.onChange && this.props.onChange.call(
140
+ void 0,
141
+ { syntheticEvent: a, nativeEvent: t, target: this, value: e }
142
+ );
143
+ }
144
+ /**
145
+ * @hidden
146
+ */
147
+ static getStateFromValue(e, a) {
148
+ v(l(e, "hex")) || (e = R);
149
+ const t = G(a, e) || g(e), s = O(a, e) || c(e), r = U(a, e) || l(e, "hex"), n = d(t.h);
150
+ return { hsva: t, backgroundColor: n, rgba: s, hex: r };
151
+ }
152
+ /**
153
+ * @hidden
154
+ */
155
+ setAlphaSliderBackground(e) {
156
+ this.props.opacity && this.alphaSlider && this.alphaSlider.sliderTrack && (this.alphaSlider.sliderTrack.style.background = `linear-gradient(to top, transparent, ${e})`);
157
+ }
158
+ /**
159
+ * @hidden
160
+ */
161
+ get isUncontrolled() {
162
+ return this.props.value === void 0;
163
+ }
164
+ /**
165
+ * @hidden
166
+ */
167
+ getGradientRectMetrics() {
168
+ return this.gradientWrapper.getBoundingClientRect();
169
+ }
170
+ /**
171
+ * @hidden
172
+ */
173
+ render() {
174
+ const e = X(this), a = H("k-colorgradient", { "k-disabled": this.props.disabled }, this.props.className);
175
+ return /* @__PURE__ */ o.createElement(
176
+ "div",
177
+ {
178
+ id: this.props.id,
179
+ role: this.props.role,
180
+ className: a,
181
+ "aria-disabled": this.props.disabled ? "true" : void 0,
182
+ style: this.props.style,
183
+ ref: (t) => this.wrapper = t,
184
+ tabIndex: u(this.props.tabIndex, this.props.disabled),
185
+ "aria-label": this.props.ariaLabel,
186
+ "aria-labelledby": this.props.ariaLabelledBy,
187
+ "aria-describedby": this.props.ariaDescribedBy,
188
+ onFocus: this.onFocus
189
+ },
190
+ /* @__PURE__ */ o.createElement("div", { className: "k-colorgradient-canvas k-hstack" }, /* @__PURE__ */ o.createElement("div", { className: "k-hsv-rectangle", style: { background: this.state.backgroundColor } }, /* @__PURE__ */ o.createElement(
191
+ L,
192
+ {
193
+ onDrag: this.onDrag,
194
+ onRelease: this.onRelease,
195
+ ref: (t) => this.gradientWrapper = t ? t.element : void 0
196
+ },
197
+ /* @__PURE__ */ o.createElement(
198
+ "div",
199
+ {
200
+ className: "k-hsv-gradient",
201
+ style: { touchAction: "none" },
202
+ onClick: this.onGradientWrapperClick
203
+ },
204
+ this.renderRectangleDragHandle()
205
+ )
206
+ ), this.props.backgroundColor && !this.state.isFirstRender && /* @__PURE__ */ o.createElement(
207
+ $,
208
+ {
209
+ metrics: this.gradientWrapper ? this.getGradientRectMetrics() : void 0,
210
+ hsva: this.state.hsva,
211
+ backgroundColor: this.props.backgroundColor
212
+ }
213
+ )), /* @__PURE__ */ o.createElement("div", { className: "k-hsv-controls k-hstack" }, /* @__PURE__ */ o.createElement(
214
+ m,
215
+ {
216
+ value: this.state.hsva.h,
217
+ buttons: !1,
218
+ vertical: !0,
219
+ min: 0,
220
+ max: 360,
221
+ step: 5,
222
+ onChange: this.onHueSliderChange,
223
+ className: "k-hue-slider k-colorgradient-slider",
224
+ disabled: this.props.disabled,
225
+ ariaLabel: e.toLanguageString(f, k[f])
226
+ }
227
+ ), this.props.opacity && /* @__PURE__ */ o.createElement(
228
+ m,
229
+ {
230
+ value: v(this.state.hsva.a) ? this.state.hsva.a * 100 : 100,
231
+ buttons: !1,
232
+ vertical: !0,
233
+ min: 0,
234
+ max: 100,
235
+ step: 1,
236
+ ariaLabel: e.toLanguageString(S, k[S]),
237
+ onChange: this.onAlphaSliderChange,
238
+ className: "k-alpha-slider k-colorgradient-slider",
239
+ disabled: this.props.disabled,
240
+ ref: (t) => this.alphaSlider = t
241
+ }
242
+ ))),
243
+ /* @__PURE__ */ o.createElement(
244
+ j,
245
+ {
246
+ rgba: this.state.rgba,
247
+ onRgbaChange: this.onRgbaChange,
248
+ hex: this.state.hex,
249
+ onHexChange: this.onHexChange,
250
+ opacity: this.props.opacity,
251
+ disabled: this.props.disabled,
252
+ defaultInputMode: this.props.format
253
+ }
254
+ ),
255
+ this.props.backgroundColor && /* @__PURE__ */ o.createElement(
256
+ W,
257
+ {
258
+ bgColor: c(this.props.backgroundColor),
259
+ rgba: this.state.rgba
260
+ }
261
+ )
262
+ );
263
+ }
264
+ };
265
+ h.displayName = "ColorGradient", h.propTypes = {
266
+ defaultValue: i.string,
267
+ value: i.string,
268
+ onChange: i.func,
269
+ onFocus: i.func,
270
+ opacity: i.bool,
271
+ backgroundColor: i.string,
272
+ format: i.any,
273
+ disabled: i.bool,
274
+ style: i.any,
275
+ id: i.string,
276
+ role: i.string,
277
+ ariaLabel: i.string,
278
+ ariaLabelledBy: i.string,
279
+ ariaDescribedBy: i.string,
280
+ className: i.string
281
+ }, h.defaultProps = {
282
+ opacity: !0,
283
+ role: "textbox",
284
+ format: "rgb"
285
+ };
286
+ let b = h;
287
+ const z = D(), K = N(A(z, b));
288
+ K.displayName = "KendoReactColorGradient";
289
+ export {
290
+ K as ColorGradient,
291
+ z as ColorGradientPropsContext,
292
+ b as ColorGradientWithoutContext
293
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";const u=require("react"),l=require("../numerictextbox/NumericTextBox.js"),m=require("./HexInput.js"),x=require("@progress/kendo-react-buttons"),o=require("@progress/kendo-react-labels"),k=require("@progress/kendo-svg-icons"),c=require("@progress/kendo-react-intl"),s=require("../messages/index.js");function f(i){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const t in i)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>i[t]})}}return e.default=i,Object.freeze(e)}const a=f(u),r=["rgba","rgb","hex"];class g extends a.Component{constructor(e){super(e),this.onRgbaRChange=t=>{this.dispatchRgbaChange({r:t.value},t)},this.onRgbaGChange=t=>{this.dispatchRgbaChange({g:t.value},t)},this.onRgbaBChange=t=>{this.dispatchRgbaChange({b:t.value},t)},this.onRgbaAChange=t=>{this.dispatchRgbaChange({a:t.value},t)},this.state={inputMode:e.defaultInputMode||r[1]}}render(){const e=c.provideLocalizationService(this),t=e.toLanguageString(s.colorGradientR,s.messages[s.colorGradientHex]),n=e.toLanguageString(s.colorGradientR,s.messages[s.colorGradientR]),p=e.toLanguageString(s.colorGradientR,s.messages[s.colorGradientG]),d=e.toLanguageString(s.colorGradientR,s.messages[s.colorGradientB]),h=e.toLanguageString(s.colorGradientR,s.messages[s.colorGradientA]),b=e.toLanguageString(s.colorGradientToggleInputsButton,s.messages[s.colorGradientToggleInputsButton]);return a.createElement("div",{className:"k-colorgradient-inputs k-hstack"},a.createElement("div",{className:"k-vstack"},a.createElement(x.Button,{"aria-label":b,fillMode:"flat",icon:"caret-alt-expand",svgIcon:k.caretAltExpandIcon,className:"k-colorgradient-toggle-mode k-icon-button",onClick:this.onToggleModeChange.bind(this)})),this.state.inputMode==="hex"&&a.createElement("div",{className:"k-vstack k-flex-1"},a.createElement("span",{className:"k-hex-value k-textbox k-input"},a.createElement(m,{hex:this.props.hex,onHexChange:this.props.onHexChange,disabled:this.props.disabled})),a.createElement(o.Label,{className:"k-colorgradient-input-label"},t)),(this.state.inputMode==="rgb"||this.state.inputMode==="rgba")&&a.createElement(a.Fragment,null,a.createElement("div",{className:"k-vstack"},a.createElement(l.NumericTextBox,{inputType:"number",value:this.props.rgba.r,ariaLabel:String(this.props.rgba.r),min:0,max:255,spinners:!1,format:"n",onChange:this.onRgbaRChange,disabled:this.props.disabled}),a.createElement(o.Label,{className:"k-colorgradient-input-label"},n)),a.createElement("div",{className:"k-vstack"},a.createElement(l.NumericTextBox,{inputType:"number",value:this.props.rgba.g,ariaLabel:String(this.props.rgba.g),min:0,max:255,spinners:!1,format:"n",onChange:this.onRgbaGChange,disabled:this.props.disabled}),a.createElement(o.Label,{className:"k-colorgradient-input-label"},p)),a.createElement("div",{className:"k-vstack"},a.createElement(l.NumericTextBox,{inputType:"number",value:this.props.rgba.b,ariaLabel:String(this.props.rgba.b),min:0,max:255,spinners:!1,format:"n",onChange:this.onRgbaBChange,disabled:this.props.disabled}),a.createElement(o.Label,{className:"k-colorgradient-input-label"},d))),this.state.inputMode==="rgba"&&a.createElement("div",{className:"k-vstack"},this.props.opacity&&a.createElement(l.NumericTextBox,{inputType:"number",value:this.props.rgba.a,ariaLabel:String(this.props.rgba.a),min:0,max:1,step:.01,spinners:!1,format:"n2",onChange:this.onRgbaAChange,disabled:this.props.disabled}),this.props.opacity&&a.createElement(o.Label,{className:"k-colorgradient-input-label"},h)))}dispatchRgbaChange(e,t){let n={...this.props.rgba};e.r!==void 0&&(n.r=e.r),e.g!==void 0&&(n.g=e.g),e.b!==void 0&&(n.b=e.b),e.a!==void 0&&(n.a=e.a),this.props.onRgbaChange(n,t)}onToggleModeChange(){const e=r.length-1===r.indexOf(this.state.inputMode)?0:r.indexOf(this.state.inputMode)+1;if(this.props.opacity)this.setState({inputMode:r[e]});else{const t=r[e]==="rgba"?e+1:e;this.setState({inputMode:r[t]})}}}c.registerForIntl(g);c.registerForLocalization(g);module.exports=g;