@salutejs/plasma-new-hope 0.336.0-canary.2219.17638454714.0 → 0.336.0-canary.2219.17680564117.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.css +3 -0
  2. package/cjs/components/CodeField/CodeField.css +7 -6
  3. package/cjs/components/CodeField/CodeField.js +63 -27
  4. package/cjs/components/CodeField/CodeField.js.map +1 -1
  5. package/cjs/components/CodeField/CodeField.styles.js +7 -1
  6. package/cjs/components/CodeField/CodeField.styles.js.map +1 -1
  7. package/cjs/components/CodeField/{CodeField.styles_ebdpd0.css → CodeField.styles_14p25hi.css} +1 -0
  8. package/cjs/components/CodeField/hooks/useWebOTP.js +95 -0
  9. package/cjs/components/CodeField/hooks/useWebOTP.js.map +1 -0
  10. package/cjs/components/CodeField/utils/handleCodeError.js +2 -2
  11. package/cjs/components/CodeField/utils/handleCodeError.js.map +1 -1
  12. package/cjs/components/CodeField/utils/handleItemError.js +14 -4
  13. package/cjs/components/CodeField/utils/handleItemError.js.map +1 -1
  14. package/cjs/components/CodeField/utils/isWebOTPSupported.js +10 -0
  15. package/cjs/components/CodeField/utils/isWebOTPSupported.js.map +1 -0
  16. package/cjs/components/Combobox/ComboboxNew/Combobox.css +3 -0
  17. package/cjs/components/Combobox/ComboboxNew/Combobox.js +54 -56
  18. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  19. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +1 -4
  20. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  21. package/cjs/components/DatePicker/RangeDate/RangeDate.css +3 -0
  22. package/cjs/components/DatePicker/RangeDate/RangeDate.js +30 -22
  23. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  24. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +3 -0
  25. package/cjs/components/DatePicker/SingleDate/SingleDate.css +3 -0
  26. package/cjs/components/Pagination/Pagination.css +3 -0
  27. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +3 -0
  28. package/cjs/components/Popover/Popover.js +4 -1
  29. package/cjs/components/Popover/Popover.js.map +1 -1
  30. package/cjs/components/Range/Range.css +3 -0
  31. package/cjs/components/Select/Select.css +3 -0
  32. package/cjs/components/Select/Select.js +23 -11
  33. package/cjs/components/Select/Select.js.map +1 -1
  34. package/cjs/components/Select/hooks/usePathMaps.js +1 -4
  35. package/cjs/components/Select/hooks/usePathMaps.js.map +1 -1
  36. package/cjs/components/Select/ui/Target/Target.css +3 -0
  37. package/cjs/components/Select/ui/Target/Target.js +0 -2
  38. package/cjs/components/Select/ui/Target/Target.js.map +1 -1
  39. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.css +3 -0
  40. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +32 -49
  41. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  42. package/cjs/components/Slider/Slider.css +3 -0
  43. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +3 -0
  44. package/cjs/components/Table/Table.css +3 -0
  45. package/cjs/components/Table/ui/Cell/Cell.css +3 -0
  46. package/cjs/components/Table/ui/EditableCell/EditableCell.css +3 -0
  47. package/cjs/components/Table/ui/HeadCell/HeadCell.css +3 -0
  48. package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +3 -0
  49. package/cjs/components/TextField/TextField.js +19 -3
  50. package/cjs/components/TextField/TextField.js.map +1 -1
  51. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.css +58 -0
  52. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +86 -0
  53. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js.map +1 -0
  54. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +25 -0
  55. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js.map +1 -0
  56. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles_y9tozi.css +2 -0
  57. package/cjs/index.css +10 -6
  58. package/emotion/cjs/components/CodeField/CodeField.js +61 -23
  59. package/emotion/cjs/components/CodeField/CodeField.styles.js +18 -11
  60. package/emotion/cjs/components/CodeField/hooks/useWebOTP.js +246 -0
  61. package/emotion/cjs/components/CodeField/utils/handleCodeError.js +2 -2
  62. package/emotion/cjs/components/CodeField/utils/handleItemError.js +12 -3
  63. package/emotion/cjs/components/CodeField/utils/index.js +4 -0
  64. package/emotion/cjs/components/CodeField/utils/isWebOTPSupported.js +13 -0
  65. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +57 -64
  66. package/emotion/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +2 -5
  67. package/emotion/cjs/components/Combobox/ComboboxNew/utils/index.js +0 -4
  68. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +24 -22
  69. package/emotion/cjs/components/Popover/Popover.js +3 -1
  70. package/emotion/cjs/components/Select/Select.js +26 -9
  71. package/emotion/cjs/components/Select/hooks/usePathMaps.js +2 -5
  72. package/emotion/cjs/components/Select/ui/Target/Target.js +1 -2
  73. package/emotion/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +32 -71
  74. package/emotion/cjs/components/Select/utils/index.js +0 -4
  75. package/emotion/cjs/components/TextField/TextField.js +20 -4
  76. package/emotion/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +78 -0
  77. package/emotion/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +49 -0
  78. package/emotion/cjs/components/TextField/ui/index.js +12 -3
  79. package/emotion/cjs/examples/components/Range/Range.config.js +8 -7
  80. package/emotion/es/components/CodeField/CodeField.js +64 -26
  81. package/emotion/es/components/CodeField/CodeField.styles.js +15 -11
  82. package/emotion/es/components/CodeField/hooks/useWebOTP.js +236 -0
  83. package/emotion/es/components/CodeField/utils/handleCodeError.js +2 -2
  84. package/emotion/es/components/CodeField/utils/handleItemError.js +12 -3
  85. package/emotion/es/components/CodeField/utils/index.js +1 -0
  86. package/emotion/es/components/CodeField/utils/isWebOTPSupported.js +3 -0
  87. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +58 -65
  88. package/emotion/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +2 -5
  89. package/emotion/es/components/Combobox/ComboboxNew/utils/index.js +0 -1
  90. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +24 -22
  91. package/emotion/es/components/Popover/Popover.js +4 -2
  92. package/emotion/es/components/Select/Select.js +26 -9
  93. package/emotion/es/components/Select/hooks/usePathMaps.js +2 -5
  94. package/emotion/es/components/Select/ui/Target/Target.js +1 -2
  95. package/emotion/es/components/Select/ui/Target/ui/Textfield/Textfield.js +33 -72
  96. package/emotion/es/components/Select/utils/index.js +0 -1
  97. package/emotion/es/components/TextField/TextField.js +21 -5
  98. package/emotion/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +63 -0
  99. package/emotion/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +27 -0
  100. package/emotion/es/components/TextField/ui/index.js +1 -0
  101. package/emotion/es/examples/components/Combobox/Combobox.js +0 -7
  102. package/emotion/es/examples/components/Range/Range.config.js +8 -7
  103. package/es/components/Autocomplete/Autocomplete.css +3 -0
  104. package/es/components/CodeField/CodeField.css +7 -6
  105. package/es/components/CodeField/CodeField.js +66 -30
  106. package/es/components/CodeField/CodeField.js.map +1 -1
  107. package/es/components/CodeField/CodeField.styles.js +7 -2
  108. package/es/components/CodeField/CodeField.styles.js.map +1 -1
  109. package/es/components/CodeField/{CodeField.styles_ebdpd0.css → CodeField.styles_14p25hi.css} +1 -0
  110. package/es/components/CodeField/hooks/useWebOTP.js +91 -0
  111. package/es/components/CodeField/hooks/useWebOTP.js.map +1 -0
  112. package/es/components/CodeField/utils/handleCodeError.js +2 -2
  113. package/es/components/CodeField/utils/handleCodeError.js.map +1 -1
  114. package/es/components/CodeField/utils/handleItemError.js +14 -4
  115. package/es/components/CodeField/utils/handleItemError.js.map +1 -1
  116. package/es/components/CodeField/utils/isWebOTPSupported.js +6 -0
  117. package/es/components/CodeField/utils/isWebOTPSupported.js.map +1 -0
  118. package/es/components/Combobox/ComboboxNew/Combobox.css +3 -0
  119. package/es/components/Combobox/ComboboxNew/Combobox.js +55 -57
  120. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  121. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +1 -4
  122. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  123. package/es/components/DatePicker/RangeDate/RangeDate.css +3 -0
  124. package/es/components/DatePicker/RangeDate/RangeDate.js +30 -22
  125. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  126. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +3 -0
  127. package/es/components/DatePicker/SingleDate/SingleDate.css +3 -0
  128. package/es/components/Pagination/Pagination.css +3 -0
  129. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +3 -0
  130. package/es/components/Popover/Popover.js +4 -1
  131. package/es/components/Popover/Popover.js.map +1 -1
  132. package/es/components/Range/Range.css +3 -0
  133. package/es/components/Select/Select.css +3 -0
  134. package/es/components/Select/Select.js +23 -11
  135. package/es/components/Select/Select.js.map +1 -1
  136. package/es/components/Select/hooks/usePathMaps.js +1 -4
  137. package/es/components/Select/hooks/usePathMaps.js.map +1 -1
  138. package/es/components/Select/ui/Target/Target.css +3 -0
  139. package/es/components/Select/ui/Target/Target.js +0 -2
  140. package/es/components/Select/ui/Target/Target.js.map +1 -1
  141. package/es/components/Select/ui/Target/ui/Textfield/Textfield.css +3 -0
  142. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js +33 -50
  143. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  144. package/es/components/Slider/Slider.css +3 -0
  145. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +3 -0
  146. package/es/components/Table/Table.css +3 -0
  147. package/es/components/Table/ui/Cell/Cell.css +3 -0
  148. package/es/components/Table/ui/EditableCell/EditableCell.css +3 -0
  149. package/es/components/Table/ui/HeadCell/HeadCell.css +3 -0
  150. package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +3 -0
  151. package/es/components/TextField/TextField.js +19 -3
  152. package/es/components/TextField/TextField.js.map +1 -1
  153. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.css +58 -0
  154. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +78 -0
  155. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js.map +1 -0
  156. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +21 -0
  157. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js.map +1 -0
  158. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles_y9tozi.css +2 -0
  159. package/es/index.css +10 -6
  160. package/package.json +2 -2
  161. package/styled-components/cjs/components/CodeField/CodeField.js +61 -23
  162. package/styled-components/cjs/components/CodeField/CodeField.styles.js +14 -5
  163. package/styled-components/cjs/components/CodeField/hooks/useWebOTP.js +246 -0
  164. package/styled-components/cjs/components/CodeField/utils/handleCodeError.js +2 -2
  165. package/styled-components/cjs/components/CodeField/utils/handleItemError.js +12 -3
  166. package/styled-components/cjs/components/CodeField/utils/index.js +4 -0
  167. package/styled-components/cjs/components/CodeField/utils/isWebOTPSupported.js +13 -0
  168. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +57 -64
  169. package/styled-components/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +2 -5
  170. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/index.js +0 -4
  171. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +24 -22
  172. package/styled-components/cjs/components/Popover/Popover.js +3 -1
  173. package/styled-components/cjs/components/Select/Select.js +26 -9
  174. package/styled-components/cjs/components/Select/hooks/usePathMaps.js +2 -5
  175. package/styled-components/cjs/components/Select/ui/Target/Target.js +1 -2
  176. package/styled-components/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +32 -71
  177. package/styled-components/cjs/components/Select/utils/index.js +0 -4
  178. package/styled-components/cjs/components/TextField/TextField.js +19 -3
  179. package/styled-components/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +78 -0
  180. package/styled-components/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +114 -0
  181. package/styled-components/cjs/components/TextField/ui/index.js +12 -3
  182. package/styled-components/cjs/examples/components/Combobox/Combobox.js +15 -0
  183. package/styled-components/cjs/examples/components/Range/Range.config.js +46 -0
  184. package/styled-components/es/components/CodeField/CodeField.js +64 -26
  185. package/styled-components/es/components/CodeField/CodeField.styles.js +11 -5
  186. package/styled-components/es/components/CodeField/hooks/useWebOTP.js +236 -0
  187. package/styled-components/es/components/CodeField/utils/handleCodeError.js +2 -2
  188. package/styled-components/es/components/CodeField/utils/handleItemError.js +12 -3
  189. package/styled-components/es/components/CodeField/utils/index.js +1 -0
  190. package/styled-components/es/components/CodeField/utils/isWebOTPSupported.js +3 -0
  191. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +58 -65
  192. package/styled-components/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +2 -5
  193. package/styled-components/es/components/Combobox/ComboboxNew/utils/index.js +0 -1
  194. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +24 -22
  195. package/styled-components/es/components/Popover/Popover.js +4 -2
  196. package/styled-components/es/components/Select/Select.js +26 -9
  197. package/styled-components/es/components/Select/hooks/usePathMaps.js +2 -5
  198. package/styled-components/es/components/Select/ui/Target/Target.js +1 -2
  199. package/styled-components/es/components/Select/ui/Target/ui/Textfield/Textfield.js +33 -72
  200. package/styled-components/es/components/Select/utils/index.js +0 -1
  201. package/styled-components/es/components/TextField/TextField.js +20 -4
  202. package/styled-components/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +63 -0
  203. package/styled-components/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +92 -0
  204. package/styled-components/es/components/TextField/ui/index.js +1 -0
  205. package/styled-components/es/examples/components/Combobox/Combobox.js +7 -0
  206. package/styled-components/es/examples/components/Range/Range.config.js +46 -0
  207. package/types/components/CodeField/CodeField.d.ts.map +1 -1
  208. package/types/components/CodeField/CodeField.styles.d.ts +1 -0
  209. package/types/components/CodeField/CodeField.styles.d.ts.map +1 -1
  210. package/types/components/CodeField/hooks/useWebOTP.d.ts +20 -0
  211. package/types/components/CodeField/hooks/useWebOTP.d.ts.map +1 -0
  212. package/types/components/CodeField/utils/handleCodeError.d.ts +2 -2
  213. package/types/components/CodeField/utils/handleCodeError.d.ts.map +1 -1
  214. package/types/components/CodeField/utils/handleItemError.d.ts +3 -2
  215. package/types/components/CodeField/utils/handleItemError.d.ts.map +1 -1
  216. package/types/components/CodeField/utils/index.d.ts +1 -0
  217. package/types/components/CodeField/utils/index.d.ts.map +1 -1
  218. package/types/components/CodeField/utils/isWebOTPSupported.d.ts +2 -0
  219. package/types/components/CodeField/utils/isWebOTPSupported.d.ts.map +1 -0
  220. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  221. package/types/components/Combobox/ComboboxNew/hooks/getPathMaps.d.ts +1 -2
  222. package/types/components/Combobox/ComboboxNew/hooks/getPathMaps.d.ts.map +1 -1
  223. package/types/components/Combobox/ComboboxNew/utils/index.d.ts +0 -1
  224. package/types/components/Combobox/ComboboxNew/utils/index.d.ts.map +1 -1
  225. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  226. package/types/components/Popover/Popover.d.ts.map +1 -1
  227. package/types/components/Select/Select.d.ts.map +1 -1
  228. package/types/components/Select/hooks/usePathMaps.d.ts +1 -2
  229. package/types/components/Select/hooks/usePathMaps.d.ts.map +1 -1
  230. package/types/components/Select/ui/Target/Target.d.ts +0 -1
  231. package/types/components/Select/ui/Target/Target.d.ts.map +1 -1
  232. package/types/components/Select/ui/Target/Target.types.d.ts +1 -2
  233. package/types/components/Select/ui/Target/Target.types.d.ts.map +1 -1
  234. package/types/components/Select/ui/Target/ui/Textfield/Textfield.d.ts.map +1 -1
  235. package/types/components/Select/ui/Target/ui/Textfield/Textfield.types.d.ts +1 -1
  236. package/types/components/Select/ui/Target/ui/Textfield/Textfield.types.d.ts.map +1 -1
  237. package/types/components/Select/utils/index.d.ts +0 -1
  238. package/types/components/Select/utils/index.d.ts.map +1 -1
  239. package/types/components/TextField/TextField.d.ts.map +1 -1
  240. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.d.ts +21 -0
  241. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.d.ts.map +1 -0
  242. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.d.ts +3 -0
  243. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.d.ts.map +1 -0
  244. package/types/components/TextField/ui/index.d.ts +1 -0
  245. package/types/components/TextField/ui/index.d.ts.map +1 -1
  246. package/types/examples/components/Range/Range.config.d.ts +1 -0
  247. package/types/examples/components/Range/Range.config.d.ts.map +1 -1
  248. package/types/examples/components/Range/Range.d.ts +1 -0
  249. package/types/examples/components/Range/Range.d.ts.map +1 -1
  250. package/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js +0 -17
  251. package/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js.map +0 -1
  252. package/cjs/components/Select/utils/getRemovedElement.js +0 -17
  253. package/cjs/components/Select/utils/getRemovedElement.js.map +0 -1
  254. package/emotion/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js +0 -20
  255. package/emotion/cjs/components/Select/utils/getRemovedElement.js +0 -20
  256. package/emotion/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js +0 -10
  257. package/emotion/es/components/Select/utils/getRemovedElement.js +0 -10
  258. package/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js +0 -13
  259. package/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js.map +0 -1
  260. package/es/components/Select/utils/getRemovedElement.js +0 -13
  261. package/es/components/Select/utils/getRemovedElement.js.map +0 -1
  262. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js +0 -20
  263. package/styled-components/cjs/components/Select/utils/getRemovedElement.js +0 -20
  264. package/styled-components/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js +0 -10
  265. package/styled-components/es/components/Select/utils/getRemovedElement.js +0 -10
  266. package/types/components/Combobox/ComboboxNew/utils/getRemovedElement.d.ts +0 -2
  267. package/types/components/Combobox/ComboboxNew/utils/getRemovedElement.d.ts.map +0 -1
  268. package/types/components/Select/utils/getRemovedElement.d.ts +0 -2
  269. package/types/components/Select/utils/getRemovedElement.d.ts.map +0 -1
@@ -111,19 +111,20 @@ function _unsupported_iterable_to_array(o, minLen) {
111
111
  if (n === "Map" || n === "Set") return Array.from(n);
112
112
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
113
113
  }
114
- import React, { forwardRef, Fragment, useCallback, useRef, useState } from "react";
114
+ import React, { forwardRef, Fragment, useCallback, useEffect, useRef, useState } from "react";
115
115
  import cls from "classnames";
116
116
  import { useDidMountEffect } from "../../hooks";
117
117
  import { getSizeValueFromProp } from "../../utils";
118
118
  import { useCodeHook } from "../../hooks";
119
119
  import { BACKSPACE_KEY, FORBIDDEN_KEYS, ONLY_DIGITS_PATTERN } from "./utils/constants";
120
- import { getCodeValue, getFieldPattern, getPlaceholderValue, handleCodeError, handleItemError } from "./utils";
120
+ import { getCodeValue, getFieldPattern, getPlaceholderValue, handleCodeError, handleItemError, isWebOTPSupported } from "./utils";
121
121
  import { classes } from "./CodeField.tokens";
122
- import { base, CaptionWrapper, CodeGroup, CodeWrapper, ItemInput, Separator } from "./CodeField.styles";
122
+ import { base, CaptionWrapper, CodeGroup, CodeWrapper, HiddenInput, ItemInput, Separator } from "./CodeField.styles";
123
123
  import { base as viewCSS } from "./variations/_view/base";
124
124
  import { base as sizeCSS } from "./variations/_size/base";
125
125
  import { base as shapeCSS } from "./variations/_shape/base";
126
126
  import { base as disabledCSS } from "./variations/_disabled/base";
127
+ import { useWebOTP } from "./hooks/useWebOTP";
127
128
  export var codeFieldRoot = function(Root) {
128
129
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
129
130
  var className = _param.className, outerValue = _param.value, placeholder = _param.placeholder, autoFocus = _param.autoFocus, _param_codeLength = _param.codeLength, codeLength = _param_codeLength === void 0 ? 6 : _param_codeLength, caption = _param.caption, _param_captionAlign = _param.captionAlign, captionAlign = _param_captionAlign === void 0 ? 'left' : _param_captionAlign, width = _param.width, _param_shape = _param.shape, shape = _param_shape === void 0 ? 'default' : _param_shape, view = _param.view, size = _param.size, disabled = _param.disabled, isError = _param.isError, _param_allowedSymbols = _param.allowedSymbols, allowedSymbols = _param_allowedSymbols === void 0 ? ONLY_DIGITS_PATTERN : _param_allowedSymbols, _param_itemErrorBehavior = _param.itemErrorBehavior, itemErrorBehavior = _param_itemErrorBehavior === void 0 ? 'remove-symbol' : _param_itemErrorBehavior, _param_codeErrorBehavior = _param.codeErrorBehavior, codeErrorBehavior = _param_codeErrorBehavior === void 0 ? 'remove-code' : _param_codeErrorBehavior, _param_autoComplete = _param.autoComplete, autoComplete = _param_autoComplete === void 0 ? 'one-time-code' : _param_autoComplete, setIsError = _param.setIsError, onChange = _param.onChange, onFullCodeEnter = _param.onFullCodeEnter, rest = _object_without_properties(_param, [
@@ -148,15 +149,19 @@ export var codeFieldRoot = function(Root) {
148
149
  "onChange",
149
150
  "onFullCodeEnter"
150
151
  ]);
151
- var _useState = _sliced_to_array(useState(getCodeValue(codeLength, outerValue || '')), 2), code = _useState[0], setCode = _useState[1];
152
+ var _autocompleteRef_current;
153
+ var _useState = _sliced_to_array(useState(getCodeValue(codeLength, '')), 2), innerValue = _useState[0], setInnerValue = _useState[1];
154
+ var code = typeof outerValue === 'string' ? getCodeValue(codeLength, outerValue) : innerValue;
152
155
  var _useState1 = _sliced_to_array(useState(code.join('')), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
153
156
  var inputRefs = useRef([]);
154
157
  var inputContainerRef = useRef(null);
155
158
  var captionRef = useRef(null);
159
+ var autocompleteRef = useRef(null);
156
160
  var fieldPattern = getFieldPattern(allowedSymbols);
157
161
  var placeholderValue = getPlaceholderValue(codeLength, placeholder);
158
162
  var parts = codeLength === 6 ? 2 : 1;
159
163
  var widthValue = width ? getSizeValueFromProp(width, 'rem') : undefined;
164
+ var isWebOTPEnabled = autoComplete === 'one-time-code' && !disabled && isWebOTPSupported();
160
165
  var getLastActiveIndex = function() {
161
166
  if (code.length && code.length < codeLength) {
162
167
  return code.length;
@@ -166,6 +171,22 @@ export var codeFieldRoot = function(Root) {
166
171
  });
167
172
  return lastEmptyIndex >= 0 ? lastEmptyIndex : codeLength - 1;
168
173
  };
174
+ var codeSetter = function(newCode) {
175
+ var originalCode = newCode.join('');
176
+ setInnerValue(getCodeValue(codeLength, originalCode));
177
+ setOriginalValue(originalCode);
178
+ if (onChange) {
179
+ onChange(originalCode);
180
+ }
181
+ };
182
+ useWebOTP({
183
+ codeString: originalValue,
184
+ enableSMSAutoRead: autoComplete === 'one-time-code',
185
+ disabled: Boolean(disabled),
186
+ codeLength: codeLength,
187
+ codeSetter: codeSetter,
188
+ onFullCodeEnter: onFullCodeEnter
189
+ });
169
190
  var handleClick = function() {
170
191
  if (disabled) {
171
192
  return;
@@ -185,19 +206,24 @@ export var codeFieldRoot = function(Root) {
185
206
  return;
186
207
  }
187
208
  if (key === BACKSPACE_KEY) {
188
- if (index > 0 && code[index] === '') {
189
- var _inputRefs_current_;
190
- (_inputRefs_current_ = inputRefs.current[index - 1]) === null || _inputRefs_current_ === void 0 ? void 0 : _inputRefs_current_.focus();
209
+ if (index > 0) {
210
+ var _inputRefs_current_index;
211
+ var newCode = _to_consumable_array(code);
212
+ newCode[index] = '';
213
+ if (index >= codeLength - 1 && code[index]) {
214
+ codeSetter(newCode);
215
+ return;
216
+ }
217
+ if (!code[index]) {
218
+ var _inputRefs_current_;
219
+ newCode[index - 1] = '';
220
+ (_inputRefs_current_ = inputRefs.current[index - 1]) === null || _inputRefs_current_ === void 0 ? void 0 : _inputRefs_current_.focus();
221
+ }
222
+ (_inputRefs_current_index = inputRefs.current[index]) === null || _inputRefs_current_index === void 0 ? void 0 : _inputRefs_current_index.classList.remove(classes.itemError);
223
+ codeSetter(newCode);
191
224
  }
192
225
  }
193
226
  };
194
- var codeSetter = function(newCode) {
195
- setCode(newCode);
196
- setOriginalValue(newCode.join(''));
197
- if (onChange) {
198
- onChange(newCode.join(''));
199
- }
200
- };
201
227
  var handleChange = function(event, index) {
202
228
  var _inputRefs_current_index;
203
229
  if (disabled) {
@@ -218,6 +244,9 @@ export var codeFieldRoot = function(Root) {
218
244
  setIsError(false);
219
245
  }
220
246
  }
247
+ if (!symbol) {
248
+ return;
249
+ }
221
250
  if (!fieldPattern) {
222
251
  newCode[index] = symbol;
223
252
  codeSetter(newCode);
@@ -227,11 +256,6 @@ export var codeFieldRoot = function(Root) {
227
256
  }
228
257
  return;
229
258
  }
230
- if (!symbol) {
231
- newCode[index] = '';
232
- codeSetter(newCode);
233
- return;
234
- }
235
259
  if (fieldPattern.test(symbol)) {
236
260
  newCode[index] = symbol.charAt(symbol.length - 1);
237
261
  codeSetter(newCode);
@@ -247,8 +271,9 @@ export var codeFieldRoot = function(Root) {
247
271
  index: index,
248
272
  newCode: newCode,
249
273
  inputRefs: inputRefs,
250
- setCode: setCode,
251
- codeSetter: codeSetter
274
+ setInnerValue: setInnerValue,
275
+ codeSetter: codeSetter,
276
+ onChange: onChange
252
277
  });
253
278
  }
254
279
  };
@@ -294,14 +319,24 @@ export var codeFieldRoot = function(Root) {
294
319
  inputRefs: inputRefs,
295
320
  inputContainerRef: inputContainerRef,
296
321
  captionRef: captionRef,
297
- setCode: setCode,
322
+ setInnerValue: setInnerValue,
298
323
  codeSetter: codeSetter
299
324
  });
300
325
  }
301
326
  }, [
302
327
  isError
303
328
  ]);
304
- return /*#__PURE__*/ React.createElement(Root, _object_spread({
329
+ useEffect(function() {
330
+ if (disabled || !autocompleteRef.current) {
331
+ return;
332
+ }
333
+ var autocompleteCode = autocompleteRef.current.value.split('');
334
+ codeSetter(autocompleteCode);
335
+ }, [
336
+ (_autocompleteRef_current = autocompleteRef.current) === null || _autocompleteRef_current === void 0 ? void 0 : _autocompleteRef_current.value,
337
+ disabled
338
+ ]);
339
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Root, _object_spread({
305
340
  ref: ref,
306
341
  view: view,
307
342
  size: size,
@@ -309,7 +344,7 @@ export var codeFieldRoot = function(Root) {
309
344
  disabled: disabled,
310
345
  onClick: handleClick,
311
346
  className: cls(className, _define_property({}, classes.captionAlignLeft, captionAlign === 'left'))
312
- }, rest), /*#__PURE__*/ React.createElement(CodeWrapper, {
347
+ }, !isWebOTPEnabled && _object_spread({}, rest)), /*#__PURE__*/ React.createElement(CodeWrapper, {
313
348
  ref: inputContainerRef
314
349
  }, _to_consumable_array(Array(parts)).map(function(_, partIndex) {
315
350
  return /*#__PURE__*/ React.createElement(Fragment, {
@@ -326,7 +361,6 @@ export var codeFieldRoot = function(Root) {
326
361
  },
327
362
  className: cls((_obj = {}, _define_property(_obj, classes.segmented, shape === 'segmented'), _define_property(_obj, classes.hoverEnabled, !disabled && inputCorrectIndex >= originalValue.length), _obj)),
328
363
  value: code[inputCorrectIndex] || '',
329
- autoComplete: autoComplete,
330
364
  onChange: function(e) {
331
365
  handleChange(e, inputCorrectIndex);
332
366
  },
@@ -343,7 +377,11 @@ export var codeFieldRoot = function(Root) {
343
377
  ref: captionRef,
344
378
  captionAlign: captionAlign,
345
379
  widthValue: widthValue
346
- }, caption));
380
+ }, caption), isWebOTPEnabled && /*#__PURE__*/ React.createElement(HiddenInput, _object_spread({
381
+ ref: autocompleteRef,
382
+ autoComplete: autoComplete,
383
+ tabIndex: -1
384
+ }, rest))));
347
385
  });
348
386
  };
349
387
  export var codeFieldConfig = {
@@ -7,32 +7,32 @@ export var base = css([
7
7
  ], classes.captionAlignLeft);
8
8
  export var CodeWrapper = styled.div.withConfig({
9
9
  displayName: "CodeField.styles__CodeWrapper",
10
- componentId: "sc-88b863b6-0"
10
+ componentId: "sc-ff3d9c22-0"
11
11
  })([
12
12
  "display:flex;align-items:center;"
13
13
  ]);
14
14
  export var CodeGroup = styled.div.withConfig({
15
15
  displayName: "CodeField.styles__CodeGroup",
16
- componentId: "sc-88b863b6-1"
16
+ componentId: "sc-ff3d9c22-1"
17
17
  })([
18
18
  "display:flex;align-items:center;"
19
19
  ]);
20
20
  export var Separator = styled.div.withConfig({
21
21
  displayName: "CodeField.styles__Separator",
22
- componentId: "sc-88b863b6-2"
22
+ componentId: "sc-ff3d9c22-2"
23
23
  })([
24
24
  "width:var(",
25
25
  ");"
26
26
  ], tokens.separatorWidth);
27
27
  export var ItemInput = styled.input.withConfig({
28
28
  displayName: "CodeField.styles__ItemInput",
29
- componentId: "sc-88b863b6-3"
29
+ componentId: "sc-ff3d9c22-3"
30
30
  })([
31
31
  "box-sizing:border-box;appearance:none;border:0;padding:0;outline:none;pointer-events:none;text-align:center;"
32
32
  ]);
33
33
  export var CaptionWrapper = styled.div.withConfig({
34
34
  displayName: "CodeField.styles__CaptionWrapper",
35
- componentId: "sc-88b863b6-4"
35
+ componentId: "sc-ff3d9c22-4"
36
36
  })([
37
37
  "text-align:",
38
38
  ";align-self:",
@@ -48,3 +48,9 @@ export var CaptionWrapper = styled.div.withConfig({
48
48
  var widthValue = param.widthValue;
49
49
  return widthValue || 'auto';
50
50
  });
51
+ export var HiddenInput = styled.input.withConfig({
52
+ displayName: "CodeField.styles__HiddenInput",
53
+ componentId: "sc-ff3d9c22-5"
54
+ })([
55
+ "display:none;"
56
+ ]);
@@ -0,0 +1,236 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _instanceof(left, right) {
31
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
32
+ return !!right[Symbol.hasInstance](left);
33
+ } else {
34
+ return left instanceof right;
35
+ }
36
+ }
37
+ function _ts_generator(thisArg, body) {
38
+ var f, y, t, _ = {
39
+ label: 0,
40
+ sent: function() {
41
+ if (t[0] & 1) throw t[1];
42
+ return t[1];
43
+ },
44
+ trys: [],
45
+ ops: []
46
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
47
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
48
+ return this;
49
+ }), g;
50
+ function verb(n) {
51
+ return function(v) {
52
+ return step([
53
+ n,
54
+ v
55
+ ]);
56
+ };
57
+ }
58
+ function step(op) {
59
+ if (f) throw new TypeError("Generator is already executing.");
60
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
61
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
62
+ if (y = 0, t) op = [
63
+ op[0] & 2,
64
+ t.value
65
+ ];
66
+ switch(op[0]){
67
+ case 0:
68
+ case 1:
69
+ t = op;
70
+ break;
71
+ case 4:
72
+ _.label++;
73
+ return {
74
+ value: op[1],
75
+ done: false
76
+ };
77
+ case 5:
78
+ _.label++;
79
+ y = op[1];
80
+ op = [
81
+ 0
82
+ ];
83
+ continue;
84
+ case 7:
85
+ op = _.ops.pop();
86
+ _.trys.pop();
87
+ continue;
88
+ default:
89
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
90
+ _ = 0;
91
+ continue;
92
+ }
93
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
94
+ _.label = op[1];
95
+ break;
96
+ }
97
+ if (op[0] === 6 && _.label < t[1]) {
98
+ _.label = t[1];
99
+ t = op;
100
+ break;
101
+ }
102
+ if (t && _.label < t[2]) {
103
+ _.label = t[2];
104
+ _.ops.push(op);
105
+ break;
106
+ }
107
+ if (t[2]) _.ops.pop();
108
+ _.trys.pop();
109
+ continue;
110
+ }
111
+ op = body.call(thisArg, _);
112
+ } catch (e) {
113
+ op = [
114
+ 6,
115
+ e
116
+ ];
117
+ y = 0;
118
+ } finally{
119
+ f = t = 0;
120
+ }
121
+ if (op[0] & 5) throw op[1];
122
+ return {
123
+ value: op[0] ? op[1] : void 0,
124
+ done: true
125
+ };
126
+ }
127
+ }
128
+ import { useCallback, useEffect, useRef } from "react";
129
+ import { getCodeValue, isWebOTPSupported } from "../utils";
130
+ var isOTPCredential = function(credential) {
131
+ return credential !== null && 'code' in credential;
132
+ };
133
+ export var useWebOTP = function(param) {
134
+ var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter;
135
+ var abortControllerRef = useRef(null);
136
+ var startWebOTPListener = useCallback(function() {
137
+ return _async_to_generator(function() {
138
+ var otp, otpCode, newCode, err;
139
+ return _ts_generator(this, function(_state) {
140
+ switch(_state.label){
141
+ case 0:
142
+ if (!enableSMSAutoRead || disabled || !isWebOTPSupported()) {
143
+ return [
144
+ 2
145
+ ];
146
+ }
147
+ if (abortControllerRef.current) {
148
+ abortControllerRef.current.abort();
149
+ }
150
+ abortControllerRef.current = new AbortController();
151
+ _state.label = 1;
152
+ case 1:
153
+ _state.trys.push([
154
+ 1,
155
+ 3,
156
+ ,
157
+ 4
158
+ ]);
159
+ return [
160
+ 4,
161
+ navigator.credentials.get({
162
+ otp: {
163
+ transport: [
164
+ 'sms'
165
+ ]
166
+ },
167
+ signal: abortControllerRef.current.signal
168
+ })
169
+ ];
170
+ case 2:
171
+ otp = _state.sent();
172
+ if (otp && isOTPCredential(otp) && otp.code) {
173
+ otpCode = otp.code;
174
+ if (otpCode.length === codeLength) {
175
+ newCode = getCodeValue(codeLength, otpCode);
176
+ codeSetter(newCode);
177
+ if (onFullCodeEnter) {
178
+ onFullCodeEnter(otpCode);
179
+ }
180
+ }
181
+ }
182
+ return [
183
+ 3,
184
+ 4
185
+ ];
186
+ case 3:
187
+ err = _state.sent();
188
+ if (_instanceof(err, DOMException)) {
189
+ if (err.name !== 'AbortError' && err.name !== 'NotAllowedError') {
190
+ console.warn('Web OTP API error:', err);
191
+ }
192
+ } else if (_instanceof(err, Error)) {
193
+ console.warn('Web OTP API error:', err);
194
+ } else {
195
+ console.warn('Unknown Web OTP API error:', err);
196
+ }
197
+ return [
198
+ 3,
199
+ 4
200
+ ];
201
+ case 4:
202
+ return [
203
+ 2
204
+ ];
205
+ }
206
+ });
207
+ })();
208
+ }, [
209
+ enableSMSAutoRead,
210
+ disabled,
211
+ codeLength,
212
+ onFullCodeEnter
213
+ ]);
214
+ var stopWebOTPListener = useCallback(function() {
215
+ if (abortControllerRef.current) {
216
+ abortControllerRef.current.abort();
217
+ abortControllerRef.current = null;
218
+ }
219
+ }, []);
220
+ useEffect(function() {
221
+ if (isWebOTPSupported() && codeString === '' && enableSMSAutoRead && !disabled) {
222
+ startWebOTPListener();
223
+ } else {
224
+ stopWebOTPListener();
225
+ }
226
+ return function() {
227
+ stopWebOTPListener();
228
+ };
229
+ }, [
230
+ codeString,
231
+ enableSMSAutoRead,
232
+ disabled,
233
+ startWebOTPListener,
234
+ stopWebOTPListener
235
+ ]);
236
+ };
@@ -27,7 +27,7 @@ import { classes } from "../CodeField.tokens";
27
27
  import { ANIMATION_TIMEOUT } from "./constants";
28
28
  import { getCodeValue } from "./initialValuesHelper";
29
29
  export var handleCodeError = function(param) {
30
- var codeLength = param.codeLength, codeErrorBehavior = param.codeErrorBehavior, currentCode = param.currentCode, inputRefs = param.inputRefs, inputContainerRef = param.inputContainerRef, captionRef = param.captionRef, setCode = param.setCode, codeSetter = param.codeSetter;
30
+ var codeLength = param.codeLength, codeErrorBehavior = param.codeErrorBehavior, currentCode = param.currentCode, inputRefs = param.inputRefs, inputContainerRef = param.inputContainerRef, captionRef = param.captionRef, setInnerValue = param.setInnerValue, codeSetter = param.codeSetter;
31
31
  if (!inputContainerRef.current) {
32
32
  return;
33
33
  }
@@ -41,7 +41,7 @@ export var handleCodeError = function(param) {
41
41
  var newCode = _to_consumable_array(currentCode);
42
42
  newCode.pop();
43
43
  codeSetter(newCode);
44
- setCode(currentCode);
44
+ setInnerValue(currentCode);
45
45
  (_inputContainerRef_current = inputContainerRef.current) === null || _inputContainerRef_current === void 0 ? void 0 : _inputContainerRef_current.classList.remove(classes.codeErrorAnimation);
46
46
  setTimeout(function() {
47
47
  var _inputRefs_current_, _inputRefs_current_1;
@@ -26,14 +26,17 @@ function _unsupported_iterable_to_array(o, minLen) {
26
26
  import { classes } from "../CodeField.tokens";
27
27
  import { ANIMATION_TIMEOUT } from "./constants";
28
28
  export var handleItemError = function(param) {
29
- var currentSymbol = param.currentSymbol, itemErrorBehavior = param.itemErrorBehavior, index = param.index, newCode = param.newCode, inputRefs = param.inputRefs, setCode = param.setCode, codeSetter = param.codeSetter;
29
+ var currentSymbol = param.currentSymbol, itemErrorBehavior = param.itemErrorBehavior, index = param.index, newCode = param.newCode, inputRefs = param.inputRefs, setInnerValue = param.setInnerValue, codeSetter = param.codeSetter, onChange = param.onChange;
30
30
  if (!inputRefs.current[index] || currentSymbol === ' ') {
31
31
  return;
32
32
  }
33
33
  switch(itemErrorBehavior){
34
34
  case 'keep':
35
35
  var _inputRefs_current_index;
36
- setCode(newCode);
36
+ setInnerValue(newCode);
37
+ if (onChange) {
38
+ onChange(newCode.join(''));
39
+ }
37
40
  (_inputRefs_current_index = inputRefs.current[index]) === null || _inputRefs_current_index === void 0 ? void 0 : _inputRefs_current_index.classList.add(classes.itemError, classes.itemErrorAnimation);
38
41
  setTimeout(function() {
39
42
  var _inputRefs_current_index;
@@ -47,11 +50,17 @@ export var handleItemError = function(param) {
47
50
  case 'forbid-enter':
48
51
  newCode[index] = '';
49
52
  codeSetter(newCode);
53
+ if (onChange) {
54
+ onChange(newCode.join(''));
55
+ }
50
56
  break;
51
57
  case 'remove-symbol':
52
58
  default:
53
59
  var _inputRefs_current_index1;
54
- setCode(newCode);
60
+ setInnerValue(newCode);
61
+ if (onChange) {
62
+ onChange(newCode.join(''));
63
+ }
55
64
  (_inputRefs_current_index1 = inputRefs.current[index]) === null || _inputRefs_current_index1 === void 0 ? void 0 : _inputRefs_current_index1.classList.add(classes.itemError, classes.itemErrorFade, classes.itemErrorAnimation);
56
65
  setTimeout(function() {
57
66
  var _inputRefs_current_index;
@@ -1,3 +1,4 @@
1
1
  export { getFieldPattern, getPlaceholderValue, getCodeValue } from "./initialValuesHelper";
2
2
  export { handleItemError } from "./handleItemError";
3
3
  export { handleCodeError } from "./handleCodeError";
4
+ export { isWebOTPSupported } from "./isWebOTPSupported";
@@ -0,0 +1,3 @@
1
+ export var isWebOTPSupported = function() {
2
+ return typeof window !== 'undefined' && 'OTPCredential' in window && navigator.credentials && typeof navigator.credentials.get === 'function';
3
+ };