@ozen-ui/kit 0.56.0 → 0.58.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 (280) hide show
  1. package/AutocompleteNext/package.json +5 -0
  2. package/__inner__/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
  3. package/__inner__/cjs/components/Autocomplete/Autocomplete.js +7 -0
  4. package/__inner__/cjs/components/Autocomplete/helper.d.ts +2 -10
  5. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.css +226 -0
  6. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.d.ts +4 -0
  7. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.js +216 -0
  8. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.d.ts +2 -0
  9. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.js +156 -0
  10. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.css +7 -0
  11. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.d.ts +6 -0
  12. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.js +18 -0
  13. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.d.ts +1 -0
  14. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.js +4 -0
  15. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.d.ts +6 -0
  16. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.js +23 -0
  17. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.d.ts +1 -0
  18. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.js +4 -0
  19. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.d.ts +6 -0
  20. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.js +17 -0
  21. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.d.ts +1 -0
  22. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.js +4 -0
  23. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/index.d.ts +3 -0
  24. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/index.js +6 -0
  25. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.d.ts +3 -0
  26. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.js +6 -0
  27. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts +17 -0
  28. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.js +36 -0
  29. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/index.d.ts +3 -0
  30. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/index.js +6 -0
  31. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/types.d.ts +45 -0
  32. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/types.js +2 -0
  33. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.d.ts +2 -0
  34. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.js +5 -0
  35. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.d.ts +20 -0
  36. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.js +71 -0
  37. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.d.ts +3 -0
  38. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.js +15 -0
  39. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.d.ts +2 -0
  40. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +38 -0
  41. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.d.ts +2 -0
  42. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.js +112 -0
  43. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/helpers.d.ts +5 -0
  44. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js +36 -0
  45. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts +1 -0
  46. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/index.js +4 -0
  47. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts +17 -0
  48. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/types.js +2 -0
  49. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/helpers.d.ts +3 -0
  50. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/index.d.ts +2 -0
  51. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/index.js +5 -0
  52. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/types.d.ts +26 -0
  53. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/types.js +2 -0
  54. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +8 -0
  55. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.js +28 -0
  56. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts +1 -0
  57. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/index.js +4 -0
  58. package/__inner__/cjs/components/AutocompleteNext/components/index.d.ts +3 -0
  59. package/__inner__/cjs/components/AutocompleteNext/components/index.js +6 -0
  60. package/__inner__/cjs/components/AutocompleteNext/constants.d.ts +10 -0
  61. package/__inner__/cjs/components/AutocompleteNext/constants.js +13 -0
  62. package/__inner__/cjs/components/AutocompleteNext/helpers.d.ts +152 -0
  63. package/__inner__/cjs/components/AutocompleteNext/helpers.js +18 -0
  64. package/__inner__/cjs/components/AutocompleteNext/index.d.ts +2 -0
  65. package/__inner__/cjs/components/AutocompleteNext/index.js +5 -0
  66. package/__inner__/cjs/components/AutocompleteNext/types.d.ts +133 -0
  67. package/__inner__/cjs/components/AutocompleteNext/types.js +2 -0
  68. package/__inner__/cjs/components/DataList/DataList.js +18 -25
  69. package/__inner__/cjs/components/DataList/constants.d.ts +1 -1
  70. package/__inner__/cjs/components/DataList/constants.js +1 -2
  71. package/__inner__/cjs/components/DataList/helpers.d.ts +3 -0
  72. package/__inner__/cjs/components/DataList/helpers.js +7 -0
  73. package/__inner__/cjs/components/DataList/{helpers → utils}/index.d.ts +0 -1
  74. package/__inner__/cjs/components/DataList/{helpers → utils}/index.js +0 -1
  75. package/__inner__/cjs/components/DatePicker/DatePicker.d.ts +2 -2
  76. package/__inner__/cjs/components/DatePicker/DatePicker.js +1 -1
  77. package/__inner__/cjs/components/Dialog/Dialog.d.ts +1 -2
  78. package/__inner__/cjs/components/Drawer/Drawer.d.ts +1 -2
  79. package/__inner__/cjs/components/FieldControl/FieldControl.css +4 -0
  80. package/__inner__/cjs/components/FieldInput/FieldInput.d.ts +1 -9
  81. package/__inner__/cjs/components/FieldInput/FieldInput.js +9 -4
  82. package/__inner__/cjs/components/FieldInput/constants.d.ts +1 -0
  83. package/__inner__/cjs/components/FieldInput/constants.js +4 -0
  84. package/__inner__/cjs/components/FieldInput/index.d.ts +1 -0
  85. package/__inner__/cjs/components/FieldInput/index.js +1 -0
  86. package/__inner__/cjs/components/FieldInput/types.d.ts +11 -0
  87. package/__inner__/cjs/components/FieldInput/types.js +2 -0
  88. package/__inner__/cjs/components/FieldLabel/FieldLabel.css +1 -0
  89. package/__inner__/cjs/components/Grid/Grid.css +4 -0
  90. package/__inner__/cjs/components/Input/Input.css +6 -9
  91. package/__inner__/cjs/components/Input/types.d.ts +2 -3
  92. package/__inner__/cjs/components/InputNumber/InputNumber.css +0 -5
  93. package/__inner__/cjs/components/Menu/Menu.js +2 -1
  94. package/__inner__/cjs/components/Modal/Modal.d.ts +1 -2
  95. package/__inner__/cjs/components/Modal/Modal.js +5 -6
  96. package/__inner__/cjs/components/Modal/constants.d.ts +0 -1
  97. package/__inner__/cjs/components/Modal/constants.js +1 -2
  98. package/__inner__/cjs/components/Modal/types.d.ts +0 -3
  99. package/__inner__/cjs/components/Popover/Popover.d.ts +1 -1
  100. package/__inner__/cjs/components/Popover/Popover.js +8 -3
  101. package/__inner__/cjs/components/Popover/constants.d.ts +1 -1
  102. package/__inner__/cjs/components/Popover/constants.js +1 -2
  103. package/__inner__/cjs/components/Popover/types.d.ts +2 -4
  104. package/__inner__/cjs/components/Portal/Portal.js +3 -3
  105. package/__inner__/cjs/components/Portal/constants.d.ts +2 -0
  106. package/__inner__/cjs/components/Portal/constants.js +3 -1
  107. package/__inner__/cjs/components/Portal/types.d.ts +3 -0
  108. package/__inner__/cjs/components/Snackbar/components/Snackbar/Snackbar.d.ts +1 -1
  109. package/__inner__/cjs/components/Tag/Tag.css +1 -0
  110. package/__inner__/cjs/components/TagNext/Tag.css +11 -4
  111. package/__inner__/cjs/components/TagNext/Tag.js +1 -1
  112. package/__inner__/cjs/components/TagNext/constants.d.ts +1 -1
  113. package/__inner__/cjs/components/TagNext/constants.js +2 -2
  114. package/__inner__/cjs/components/TagNext/types.d.ts +6 -3
  115. package/__inner__/cjs/components/Textarea/Textarea.css +0 -5
  116. package/__inner__/cjs/components/ThemeProvider/types.d.ts +2 -0
  117. package/__inner__/cjs/components/Tooltip/Tooltip.js +11 -11
  118. package/__inner__/cjs/components/Tooltip/constants.d.ts +1 -1
  119. package/__inner__/cjs/components/Tooltip/constants.js +1 -2
  120. package/__inner__/cjs/components/Tooltip/types.d.ts +1 -1
  121. package/__inner__/cjs/hooks/useElementSize/index.d.ts +1 -0
  122. package/__inner__/cjs/hooks/useElementSize/index.js +4 -0
  123. package/__inner__/cjs/hooks/useElementSize/useElementSize.d.ts +6 -0
  124. package/__inner__/cjs/hooks/useElementSize/useElementSize.js +11 -0
  125. package/__inner__/cjs/hooks/useResizeObserver/index.d.ts +1 -0
  126. package/__inner__/cjs/hooks/useResizeObserver/index.js +4 -0
  127. package/__inner__/cjs/hooks/useResizeObserver/useResizeObserver.d.ts +4 -0
  128. package/__inner__/cjs/hooks/useResizeObserver/useResizeObserver.js +50 -0
  129. package/__inner__/cjs/locale/locale.js +21 -0
  130. package/__inner__/cjs/utils/isNotNil.d.ts +1 -0
  131. package/__inner__/cjs/utils/isNotNil.js +7 -0
  132. package/__inner__/esm/components/Autocomplete/Autocomplete.d.ts +3 -0
  133. package/__inner__/esm/components/Autocomplete/Autocomplete.js +7 -0
  134. package/__inner__/esm/components/Autocomplete/helper.d.ts +2 -10
  135. package/__inner__/esm/components/AutocompleteNext/Autocomplete.css +226 -0
  136. package/__inner__/esm/components/AutocompleteNext/Autocomplete.d.ts +4 -0
  137. package/__inner__/esm/components/AutocompleteNext/Autocomplete.js +213 -0
  138. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.d.ts +2 -0
  139. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.js +153 -0
  140. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.css +7 -0
  141. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.d.ts +6 -0
  142. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.js +13 -0
  143. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.d.ts +1 -0
  144. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.js +1 -0
  145. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.d.ts +6 -0
  146. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.js +18 -0
  147. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.d.ts +1 -0
  148. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.js +1 -0
  149. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.d.ts +6 -0
  150. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.js +12 -0
  151. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.d.ts +1 -0
  152. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.js +1 -0
  153. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/index.d.ts +3 -0
  154. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/index.js +3 -0
  155. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/constants.d.ts +3 -0
  156. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/constants.js +3 -0
  157. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts +17 -0
  158. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.js +30 -0
  159. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/index.d.ts +3 -0
  160. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/index.js +3 -0
  161. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/types.d.ts +45 -0
  162. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/types.js +1 -0
  163. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.d.ts +2 -0
  164. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.js +2 -0
  165. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.d.ts +20 -0
  166. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.js +67 -0
  167. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.d.ts +3 -0
  168. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.js +11 -0
  169. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.d.ts +2 -0
  170. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +35 -0
  171. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.d.ts +2 -0
  172. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.js +109 -0
  173. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.d.ts +5 -0
  174. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js +29 -0
  175. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts +1 -0
  176. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.js +1 -0
  177. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts +17 -0
  178. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.js +1 -0
  179. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/helpers.d.ts +3 -0
  180. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/index.d.ts +2 -0
  181. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/index.js +2 -0
  182. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/types.d.ts +26 -0
  183. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/types.js +1 -0
  184. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +8 -0
  185. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.js +24 -0
  186. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts +1 -0
  187. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.js +1 -0
  188. package/__inner__/esm/components/AutocompleteNext/components/index.d.ts +3 -0
  189. package/__inner__/esm/components/AutocompleteNext/components/index.js +3 -0
  190. package/__inner__/esm/components/AutocompleteNext/constants.d.ts +10 -0
  191. package/__inner__/esm/components/AutocompleteNext/constants.js +10 -0
  192. package/__inner__/esm/components/AutocompleteNext/helpers.d.ts +152 -0
  193. package/__inner__/esm/components/AutocompleteNext/helpers.js +9 -0
  194. package/__inner__/esm/components/AutocompleteNext/index.d.ts +2 -0
  195. package/__inner__/esm/components/AutocompleteNext/index.js +2 -0
  196. package/__inner__/esm/components/AutocompleteNext/types.d.ts +133 -0
  197. package/__inner__/esm/components/AutocompleteNext/types.js +1 -0
  198. package/__inner__/esm/components/DataList/DataList.js +17 -24
  199. package/__inner__/esm/components/DataList/constants.d.ts +1 -1
  200. package/__inner__/esm/components/DataList/constants.js +1 -2
  201. package/__inner__/esm/components/DataList/helpers.d.ts +3 -0
  202. package/__inner__/esm/components/DataList/helpers.js +2 -0
  203. package/__inner__/esm/components/DataList/{helpers → utils}/index.d.ts +0 -1
  204. package/__inner__/esm/components/DataList/{helpers → utils}/index.js +0 -1
  205. package/__inner__/esm/components/DatePicker/DatePicker.d.ts +2 -2
  206. package/__inner__/esm/components/DatePicker/DatePicker.js +1 -1
  207. package/__inner__/esm/components/Dialog/Dialog.d.ts +1 -2
  208. package/__inner__/esm/components/Drawer/Drawer.d.ts +1 -2
  209. package/__inner__/esm/components/FieldControl/FieldControl.css +4 -0
  210. package/__inner__/esm/components/FieldInput/FieldInput.d.ts +1 -9
  211. package/__inner__/esm/components/FieldInput/FieldInput.js +8 -3
  212. package/__inner__/esm/components/FieldInput/constants.d.ts +1 -0
  213. package/__inner__/esm/components/FieldInput/constants.js +1 -0
  214. package/__inner__/esm/components/FieldInput/index.d.ts +1 -0
  215. package/__inner__/esm/components/FieldInput/index.js +1 -0
  216. package/__inner__/esm/components/FieldInput/types.d.ts +11 -0
  217. package/__inner__/esm/components/FieldInput/types.js +1 -0
  218. package/__inner__/esm/components/FieldLabel/FieldLabel.css +1 -0
  219. package/__inner__/esm/components/Grid/Grid.css +4 -0
  220. package/__inner__/esm/components/Input/Input.css +6 -9
  221. package/__inner__/esm/components/Input/types.d.ts +2 -3
  222. package/__inner__/esm/components/InputNumber/InputNumber.css +0 -5
  223. package/__inner__/esm/components/Menu/Menu.js +2 -1
  224. package/__inner__/esm/components/Modal/Modal.d.ts +1 -2
  225. package/__inner__/esm/components/Modal/Modal.js +6 -7
  226. package/__inner__/esm/components/Modal/constants.d.ts +0 -1
  227. package/__inner__/esm/components/Modal/constants.js +0 -1
  228. package/__inner__/esm/components/Modal/types.d.ts +0 -3
  229. package/__inner__/esm/components/Popover/Popover.d.ts +1 -1
  230. package/__inner__/esm/components/Popover/Popover.js +9 -4
  231. package/__inner__/esm/components/Popover/constants.d.ts +1 -1
  232. package/__inner__/esm/components/Popover/constants.js +1 -2
  233. package/__inner__/esm/components/Popover/types.d.ts +2 -4
  234. package/__inner__/esm/components/Portal/Portal.js +4 -4
  235. package/__inner__/esm/components/Portal/constants.d.ts +2 -0
  236. package/__inner__/esm/components/Portal/constants.js +2 -0
  237. package/__inner__/esm/components/Portal/types.d.ts +3 -0
  238. package/__inner__/esm/components/Snackbar/components/Snackbar/Snackbar.d.ts +1 -1
  239. package/__inner__/esm/components/Tag/Tag.css +1 -0
  240. package/__inner__/esm/components/TagNext/Tag.css +11 -4
  241. package/__inner__/esm/components/TagNext/Tag.js +2 -2
  242. package/__inner__/esm/components/TagNext/constants.d.ts +1 -1
  243. package/__inner__/esm/components/TagNext/constants.js +1 -1
  244. package/__inner__/esm/components/TagNext/types.d.ts +6 -3
  245. package/__inner__/esm/components/Textarea/Textarea.css +0 -5
  246. package/__inner__/esm/components/ThemeProvider/types.d.ts +2 -0
  247. package/__inner__/esm/components/Tooltip/Tooltip.js +12 -12
  248. package/__inner__/esm/components/Tooltip/constants.d.ts +1 -1
  249. package/__inner__/esm/components/Tooltip/constants.js +1 -2
  250. package/__inner__/esm/components/Tooltip/types.d.ts +1 -1
  251. package/__inner__/esm/hooks/useElementSize/index.d.ts +1 -0
  252. package/__inner__/esm/hooks/useElementSize/index.js +1 -0
  253. package/__inner__/esm/hooks/useElementSize/useElementSize.d.ts +6 -0
  254. package/__inner__/esm/hooks/useElementSize/useElementSize.js +7 -0
  255. package/__inner__/esm/hooks/useResizeObserver/index.d.ts +1 -0
  256. package/__inner__/esm/hooks/useResizeObserver/index.js +1 -0
  257. package/__inner__/esm/hooks/useResizeObserver/useResizeObserver.d.ts +4 -0
  258. package/__inner__/esm/hooks/useResizeObserver/useResizeObserver.js +46 -0
  259. package/__inner__/esm/locale/locale.js +21 -0
  260. package/__inner__/esm/utils/isNotNil.d.ts +1 -0
  261. package/__inner__/esm/utils/isNotNil.js +3 -0
  262. package/package.json +6 -6
  263. package/useElementSize/package.json +5 -0
  264. package/useResizeObserver/package.json +5 -0
  265. package/__inner__/cjs/components/DataList/helpers/types.d.ts +0 -10
  266. package/__inner__/esm/components/DataList/helpers/types.d.ts +0 -10
  267. /package/__inner__/cjs/components/{DataList/helpers/types.js → AutocompleteNext/components/AutocompleteInput/helpers.js} +0 -0
  268. /package/__inner__/cjs/components/DataList/{helpers → utils}/lastSelectedValue.d.ts +0 -0
  269. /package/__inner__/cjs/components/DataList/{helpers → utils}/lastSelectedValue.js +0 -0
  270. /package/__inner__/cjs/components/DataList/{helpers → utils}/useDataListNavigation.d.ts +0 -0
  271. /package/__inner__/cjs/components/DataList/{helpers → utils}/useDataListNavigation.js +0 -0
  272. /package/__inner__/cjs/components/DataList/{helpers → utils}/useScrollContainerToElement.d.ts +0 -0
  273. /package/__inner__/cjs/components/DataList/{helpers → utils}/useScrollContainerToElement.js +0 -0
  274. /package/__inner__/esm/components/{DataList/helpers/types.js → AutocompleteNext/components/AutocompleteInput/helpers.js} +0 -0
  275. /package/__inner__/esm/components/DataList/{helpers → utils}/lastSelectedValue.d.ts +0 -0
  276. /package/__inner__/esm/components/DataList/{helpers → utils}/lastSelectedValue.js +0 -0
  277. /package/__inner__/esm/components/DataList/{helpers → utils}/useDataListNavigation.d.ts +0 -0
  278. /package/__inner__/esm/components/DataList/{helpers → utils}/useDataListNavigation.js +0 -0
  279. /package/__inner__/esm/components/DataList/{helpers → utils}/useScrollContainerToElement.d.ts +0 -0
  280. /package/__inner__/esm/components/DataList/{helpers → utils}/useScrollContainerToElement.js +0 -0
@@ -1,6 +1,7 @@
1
1
  import { __assign, __read, __rest, __spreadArray } from "tslib";
2
2
  import './Autocomplete.css';
3
3
  import React, { forwardRef, useEffect, useRef, useState } from 'react';
4
+ import { deprecate } from '@ozen-ui/logger';
4
5
  import { useControlled } from '../../hooks/useControlled';
5
6
  import { useMultiRef } from '../../hooks/useMultiRef';
6
7
  import { useMutableRef } from '../../hooks/useMutableRef';
@@ -19,6 +20,9 @@ function AutocompleteRender(inProps, ref) {
19
20
  name: 'Autocomplete',
20
21
  });
21
22
  var _a = withDefaultGetters(props), _b = _a.disabled, disabled = _b === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLED : _b, _c = _a.required, required = _c === void 0 ? AUTOCOMPLETE_DEFAULT_REQUIRED : _c, _d = _a.autoFocus, autoFocus = _d === void 0 ? AUTOCOMPLETE_DEFAULT_AUTOFOCUS : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? AUTOCOMPLETE_DEFAULT_FULLWIDTH : _e, _f = _a.size, size = _f === void 0 ? AUTOCOMPLETE_DEFAULT_SIZE : _f, _g = _a.allowCustomValue, allowCustomValue = _g === void 0 ? AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE : _g, _h = _a.disableShowChevron, disableShowChevron = _h === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON : _h, _j = _a.disableClearButton, disableClearButton = _j === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON : _j, _k = _a.disableShowEmptyOptionsList, disableShowEmptyOptionsList = _k === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST : _k, _l = _a.disableCloseOnSelect, disableCloseOnSelect = _l === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT : _l, _m = _a.renderInput, renderInput = _m === void 0 ? function (props) { return React.createElement(Input, __assign({}, props, { ref: ref })); } : _m, searchFunctionProp = _a.searchFunction, renderOptionProp = _a.renderOption, inputValueProp = _a.inputValue, className = _a.className, valueProp = _a.value, options = _a.options, defaultValue = _a.defaultValue, error = _a.error, onChange = _a.onChange, onInputChange = _a.onInputChange, label = _a.label, placeholder = _a.placeholder, renderLeft = _a.renderLeft, renderRight = _a.renderRight, hint = _a.hint, getOptionKey = _a.getOptionKey, getOptionLabel = _a.getOptionLabel, getOptionDisabled = _a.getOptionDisabled, dataListProps = _a.dataListProps, onCloseProp = _a.onClose, onOpenProp = _a.onOpen, openProp = _a.open, defaultOpen = _a.defaultOpen, loading = _a.loading, inputProps = _a.inputProps, bodyProps = _a.bodyProps, onKeyDown = _a.onKeyDown, noOptionsText = _a.noOptionsText, clearText = _a.clearText, openText = _a.openText, loadingText = _a.loadingText, closeText = _a.closeText, other = __rest(_a, ["disabled", "required", "autoFocus", "fullWidth", "size", "allowCustomValue", "disableShowChevron", "disableClearButton", "disableShowEmptyOptionsList", "disableCloseOnSelect", "renderInput", "searchFunction", "renderOption", "inputValue", "className", "value", "options", "defaultValue", "error", "onChange", "onInputChange", "label", "placeholder", "renderLeft", "renderRight", "hint", "getOptionKey", "getOptionLabel", "getOptionDisabled", "dataListProps", "onClose", "onOpen", "open", "defaultOpen", "loading", "inputProps", "bodyProps", "onKeyDown", "noOptionsText", "clearText", "openText", "loadingText", "closeText"]);
23
+ if (process.env.NODE_ENV !== 'production') {
24
+ deprecate('Компонент «Autocomplete» устарел. Для замены используйте компонент «AutocompleteNext».');
25
+ }
22
26
  var anchorRef = useRef(null);
23
27
  var lastInputValue = useRef('');
24
28
  var inputBodyRef = useMultiRef([anchorRef, bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref]);
@@ -190,4 +194,7 @@ function AutocompleteRender(inProps, ref) {
190
194
  !disableShowEmptyOptionsList && (React.createElement(AutocompleteNoOptions, { showNoOptions: showNoOptions, noOptionsText: noOptionsText })),
191
195
  React.createElement(AutocompleteLoading, { showLoading: showLoading, loadingText: loadingText, size: size }))));
192
196
  }
197
+ /**
198
+ * @deprecated Компонент устарел. Для замены используйте компонент AutocompleteNext
199
+ */
193
200
  export var Autocomplete = forwardRef(AutocompleteRender);
@@ -46,11 +46,7 @@ export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTI
46
46
  hint?: string | null | undefined;
47
47
  renderLeft?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
48
48
  renderRight?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
49
- inputProps?: (Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
50
- ref?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject<HTMLInputElement> | null | undefined;
51
- } & {
52
- 'data-testid'?: string | undefined;
53
- }) | undefined;
49
+ inputProps?: import("../FieldInput").FieldInputProps | undefined;
54
50
  bodyProps?: (Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
55
51
  ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
56
52
  }) | undefined;
@@ -117,11 +113,7 @@ export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTI
117
113
  hint?: string | null | undefined;
118
114
  renderLeft?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
119
115
  renderRight?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
120
- inputProps?: (Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
121
- ref?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject<HTMLInputElement> | null | undefined;
122
- } & {
123
- 'data-testid'?: string | undefined;
124
- }) | undefined;
116
+ inputProps?: import("../FieldInput").FieldInputProps | undefined;
125
117
  bodyProps?: (Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
126
118
  ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
127
119
  }) | undefined;
@@ -0,0 +1,226 @@
1
+ .AutocompleteNext {
2
+ --autocomplete-gutter-x: 0 var(--textfield-gutter-x);
3
+ }
4
+
5
+ .AutocompleteNext_hasChevron.AutocompleteNext_size_2xs {
6
+ --autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
7
+ var(--control-padding-xs);
8
+ }
9
+
10
+ .AutocompleteNext_hasChevron.AutocompleteNext_size_xs {
11
+ --autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
12
+ var(--control-padding-xs);
13
+ }
14
+
15
+ .AutocompleteNext_hasChevron.AutocompleteNext_size_s {
16
+ --autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
17
+ var(--control-padding-s);
18
+ }
19
+
20
+ .AutocompleteNext_hasChevron.AutocompleteNext_size_m {
21
+ --autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
22
+ var(--control-padding-m);
23
+ }
24
+
25
+ .AutocompleteNext_hasChevron.AutocompleteNext_size_l {
26
+ --autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
27
+ var(--control-padding-l);
28
+ }
29
+
30
+ .AutocompleteNext-RenderRight {
31
+ display: flex;
32
+ gap: var(--spacing-2xs);
33
+ }
34
+
35
+ .AutocompleteNext-ClearButton {
36
+ visibility: hidden;
37
+ transition: visibility var(--transition-default);
38
+ }
39
+
40
+ .AutocompleteNext-ClearButton_visibility {
41
+ visibility: visible;
42
+ }
43
+
44
+ .AutocompleteNext .Input-Body {
45
+ padding: var(--autocomplete-gutter-x);
46
+ align-items: flex-start;
47
+ }
48
+
49
+ .AutocompleteNext .FieldIcon {
50
+ block-size: var(--textfield-input-height);
51
+ }
52
+
53
+ .AutocompleteNext-Option {
54
+ cursor: pointer;
55
+ transition: background-color var(--transition-default);
56
+ }
57
+
58
+ .AutocompleteNext-Option:hover {
59
+ background-color: var(--color-background-main-hover);
60
+ }
61
+
62
+ .AutocompleteNext-Option:active {
63
+ background-color: var(--color-background-main-pressed);
64
+ }
65
+
66
+ .AutocompleteNext-Option_focused {
67
+ box-shadow: inset var(--shadow-outline-focused);
68
+ }
69
+
70
+ .AutocompleteNext-Option_disabled,
71
+ .AutocompleteNext-Option_disabled:hover,
72
+ .AutocompleteNext-Option_disabled:active {
73
+ cursor: not-allowed;
74
+ background-color: unset;
75
+ }
76
+
77
+ .AutocompleteNext-Option_disabled .ListItemText-TextPrimary,
78
+ .AutocompleteNext-Option_disabled .ListItemText-TextSecondary,
79
+ .AutocompleteNext-Option_disabled:hover .ListItemText-TextPrimary,
80
+ .AutocompleteNext-Option_disabled:hover .ListItemText-TextSecondary,
81
+ .AutocompleteNext-Option_disabled:active .ListItemText-TextPrimary,
82
+ .AutocompleteNext-Option_disabled:active .ListItemText-TextSecondary {
83
+ color: var(--color-content-tertiary);
84
+ }
85
+
86
+ .AutocompleteNext-Input_multiple {
87
+ display: flex;
88
+ flex-wrap: wrap;
89
+ overflow: hidden;
90
+ inline-size: 100%;
91
+ align-items: center;
92
+ box-sizing: border-box;
93
+ padding: var(--textfield-input-padding);
94
+ min-block-size: var(--textfield-input-height);
95
+ gap: var(--spacing-3xs);
96
+ }
97
+
98
+ .AutocompleteNext-Input_multiple input {
99
+ padding: 0;
100
+ border: none;
101
+ outline: none;
102
+ font: inherit;
103
+ background: none;
104
+ box-sizing: border-box;
105
+ color: var(--textfield-color);
106
+ }
107
+
108
+ .AutocompleteNext-Input_multiple input::placeholder {
109
+ opacity: 0;
110
+ }
111
+
112
+ .AutocompleteNext-Input_multiple * + input::placeholder, .AutocompleteNext-Input_multiple input:focus::placeholder {
113
+ opacity: 1;
114
+ }
115
+
116
+ .AutocompleteNext-Input_responsive {
117
+ flex-wrap: nowrap;
118
+ gap: unset;
119
+ }
120
+
121
+ .AutocompleteNext-Input_responsive .AutocompleteNext-Tag {
122
+ margin-inline-end: var(--spacing-3xs);
123
+ }
124
+
125
+ .AutocompleteNext-HelperInput {
126
+ inset-block-start: 0;
127
+ block-size: 0;
128
+ overflow: hidden;
129
+ position: absolute;
130
+ visibility: hidden;
131
+ white-space: nowrap;
132
+ }
133
+
134
+ .AutocompleteNext-Tag_hidden {
135
+ inset-block-start: 0;
136
+ block-size: 0;
137
+ visibility: hidden;
138
+ position: absolute;
139
+ }
140
+
141
+ .AutocompleteNext-Tag_disabled {
142
+ pointer-events: none;
143
+ opacity: 0.6;
144
+ }
145
+
146
+ .AutocompleteNext-ClearTag {
147
+ cursor: pointer;
148
+ display: inline-flex;
149
+ align-items: center;
150
+ block-size: inherit;
151
+ }
152
+
153
+ .AutocompleteNext-Dropdown {
154
+ --scroll-bar-size: 12px;
155
+ }
156
+
157
+ .AutocompleteNext-Dropdown::-webkit-scrollbar {
158
+ inline-size: var(--scroll-bar-size);
159
+ }
160
+
161
+ .AutocompleteNext-Dropdown::-webkit-scrollbar-thumb {
162
+ background-color: var(--color-background-secondary);
163
+ border-radius: calc(var(--scroll-bar-size) / 2);
164
+ border: calc(var(--scroll-bar-size) / 4) solid transparent;
165
+ background-clip: padding-box;
166
+ border-image: initial;
167
+ min-block-size: 24px;
168
+ }
169
+
170
+ .AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:hover,
171
+ .AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:active {
172
+ border: calc(var(--scroll-bar-size) / 4) solid transparent;
173
+ background-clip: padding-box;
174
+ }
175
+
176
+ .AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:hover {
177
+ background-color: var(--color-background-secondary-hover);
178
+ }
179
+
180
+ .AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:active {
181
+ background-color: var(--color-background-secondary-pressed);
182
+ }
183
+
184
+ .AutocompleteNext-Dropdown::-webkit-scrollbar-corner {
185
+ background: transparent;
186
+ }
187
+
188
+ .AutocompleteNext-Dropdown {
189
+ overflow: hidden auto;
190
+ max-block-size: 40vb;
191
+ }
192
+ .AutocompleteNext-Dropdown-animation-enter {
193
+ opacity: 0;
194
+ transform: translate(0, calc(var(--spacing-2xs) * -1));
195
+ pointer-events: none;
196
+ }
197
+ .AutocompleteNext-Dropdown-animation-enter-active {
198
+ opacity: 1;
199
+ transition:
200
+ opacity var(--transition-default),
201
+ transform var(--transition-default);
202
+ transform: translate(0);
203
+ pointer-events: none;
204
+ }
205
+ .AutocompleteNext-Dropdown-animation-enter-done {
206
+ opacity: 1;
207
+ transform: translate(0);
208
+ }
209
+ .AutocompleteNext-Dropdown-animation-exit {
210
+ opacity: 1;
211
+ transform: translate(0);
212
+ pointer-events: none;
213
+ }
214
+ .AutocompleteNext-Dropdown-animation-exit-active {
215
+ opacity: 0;
216
+ transition:
217
+ opacity var(--transition-default),
218
+ transform var(--transition-default);
219
+ transform: translate(0, calc(var(--spacing-2xs) * -1));
220
+ pointer-events: none;
221
+ }
222
+ .AutocompleteNext-Dropdown-animation-exit-done {
223
+ opacity: 0;
224
+ transform: translate(0, calc(var(--spacing-2xs) * -1));
225
+ pointer-events: none;
226
+ }
@@ -0,0 +1,4 @@
1
+ import './Autocomplete.css';
2
+ import type { AutocompleteComponent } from './types';
3
+ export declare const cnAutocomplete: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const Autocomplete: AutocompleteComponent;
@@ -0,0 +1,213 @@
1
+ import { __assign, __read, __rest, __spreadArray } from "tslib";
2
+ import './Autocomplete.css';
3
+ import React, { useEffect, forwardRef, useRef, useState } from 'react';
4
+ import { useControlled } from '../../hooks/useControlled';
5
+ import { useElementSize } from '../../hooks/useElementSize';
6
+ import { useMultiRef } from '../../hooks/useMultiRef';
7
+ import { useMutableRef } from '../../hooks/useMutableRef';
8
+ import { useThemeProps } from '../../hooks/useThemeProps';
9
+ import { cn } from '../../utils/classname';
10
+ import { isKeys } from '../../utils/isKeys';
11
+ import { AutocompleteDropdown, AutocompleteInput } from './components';
12
+ import { AUTOCOMPLETE_DEFAULT_SIZE, AUTOCOMPLETE_DEFAULT_DISABLED, AUTOCOMPLETE_DEFAULT_REQUIRED, AUTOCOMPLETE_DEFAULT_AUTOFOCUS, AUTOCOMPLETE_DEFAULT_FULLWIDTH, AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE, AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON, AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON, AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT, AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST, } from './constants';
13
+ import { withDefaultGetters, isMultipleParams, isNotMultipleParams, } from './helpers';
14
+ export var cnAutocomplete = cn('AutocompleteNext');
15
+ function AutocompleteRender(inProps, ref) {
16
+ var props = useThemeProps({
17
+ props: inProps,
18
+ name: 'AutocompleteNext',
19
+ });
20
+ var _a = withDefaultGetters(props), _b = _a.disabled, disabled = _b === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLED : _b, _c = _a.required, required = _c === void 0 ? AUTOCOMPLETE_DEFAULT_REQUIRED : _c, _d = _a.autoFocus, autoFocus = _d === void 0 ? AUTOCOMPLETE_DEFAULT_AUTOFOCUS : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? AUTOCOMPLETE_DEFAULT_FULLWIDTH : _e, _f = _a.size, size = _f === void 0 ? AUTOCOMPLETE_DEFAULT_SIZE : _f, _g = _a.allowCustomValue, allowCustomValue = _g === void 0 ? AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE : _g, _h = _a.disableShowChevron, disableShowChevron = _h === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON : _h, _j = _a.disableClearButton, disableClearButton = _j === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON : _j, _k = _a.disableCloseOnSelect, disableCloseOnSelect = _k === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT : _k, _l = _a.disableShowEmptyOptionsList, disableShowEmptyOptionsList = _l === void 0 ? AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST : _l, limitTags = _a.limitTags, renderInput = _a.renderInput, multiple = _a.multiple, searchFunctionProp = _a.searchFunction, inputValueProp = _a.inputValue, valueProp = _a.value, options = _a.options, defaultValue = _a.defaultValue, onInputChange = _a.onInputChange, getOptionKey = _a.getOptionKey, getOptionLabel = _a.getOptionLabel, getOptionDisabled = _a.getOptionDisabled, onCloseProp = _a.onClose, onOpenProp = _a.onOpen, openProp = _a.open, defaultOpen = _a.defaultOpen, loading = _a.loading, inputProps = _a.inputProps, bodyProps = _a.bodyProps, onKeyDown = _a.onKeyDown, noOptionsText = _a.noOptionsText, clearText = _a.clearText, openText = _a.openText, renderOption = _a.renderOption, loadingText = _a.loadingText, closeText = _a.closeText, listProps = _a.listProps, popoverProps = _a.popoverProps, onChangeProp = _a.onChange, other = __rest(_a, ["disabled", "required", "autoFocus", "fullWidth", "size", "allowCustomValue", "disableShowChevron", "disableClearButton", "disableCloseOnSelect", "disableShowEmptyOptionsList", "limitTags", "renderInput", "multiple", "searchFunction", "inputValue", "value", "options", "defaultValue", "onInputChange", "getOptionKey", "getOptionLabel", "getOptionDisabled", "onClose", "onOpen", "open", "defaultOpen", "loading", "inputProps", "bodyProps", "onKeyDown", "noOptionsText", "clearText", "openText", "renderOption", "loadingText", "closeText", "listProps", "popoverProps", "onChange"]);
21
+ var _m = useElementSize(), inputRef = _m.ref, height = _m.height;
22
+ var lastInputValue = useRef('');
23
+ var anchorRef = useRef(null);
24
+ var inputBodyRef = useMultiRef([anchorRef, bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref]);
25
+ var rootRef = useMultiRef([ref, inputRef]);
26
+ var _o = __read(useControlled({
27
+ value: inputValueProp,
28
+ defaultValue: '',
29
+ name: 'AutocompleteNext',
30
+ state: 'inputValue',
31
+ }), 2), inputValue = _o[0], setInputValue = _o[1];
32
+ var _p = __read(useControlled({
33
+ value: valueProp,
34
+ defaultValue: defaultValue,
35
+ name: 'AutocompleteNext',
36
+ state: 'value',
37
+ }), 2), valueState = _p[0], setValueState = _p[1];
38
+ var _q = __read(useControlled({
39
+ value: openProp,
40
+ defaultValue: defaultOpen,
41
+ name: 'AutocompleteNext',
42
+ state: 'open',
43
+ }), 2), open = _q[0], setOpen = _q[1];
44
+ var searchFunctionDefault = function (options, searchValue) {
45
+ return options === null || options === void 0 ? void 0 : options.filter(function (option) {
46
+ return getOptionLabel(option).toLowerCase().includes(searchValue.toLowerCase());
47
+ });
48
+ };
49
+ var savedOnInputChange = useMutableRef(onInputChange);
50
+ var savedGetOptionLabel = useMutableRef(getOptionLabel);
51
+ var _r = __read(useState(__spreadArray([], __read(options), false)), 2), filteredOptions = _r[0], setFilteredOptions = _r[1];
52
+ var searchFunction = searchFunctionProp || searchFunctionDefault;
53
+ var hasOptions = !!(filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length);
54
+ var _s = __read(useState(undefined), 2), search = _s[0], setSearch = _s[1];
55
+ var changeInputValue = function (e, value) {
56
+ var _a;
57
+ setInputValue(value);
58
+ (_a = savedOnInputChange.current) === null || _a === void 0 ? void 0 : _a.call(savedOnInputChange, e, value);
59
+ };
60
+ var callOnChange = function (e, option) {
61
+ var _a, _b, _c;
62
+ var inputValue = '';
63
+ var onChange = function (e, option) {
64
+ setValueState(option);
65
+ onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(e, option);
66
+ };
67
+ var params = __assign(__assign({}, inProps), { onChange: onChange, value: valueState });
68
+ if (isNotMultipleParams(params)) {
69
+ inputValue = option ? getOptionLabel(option) : '';
70
+ (_a = params.onChange) === null || _a === void 0 ? void 0 : _a.call(params, e, option);
71
+ }
72
+ if (isMultipleParams(params)) {
73
+ if (option === null) {
74
+ (_b = params.onChange) === null || _b === void 0 ? void 0 : _b.call(params, e, null);
75
+ }
76
+ else {
77
+ var value = params.value || [];
78
+ var optionKey_1 = option && getOptionKey(option);
79
+ var optionIsSelected = value.find(function (item) { return getOptionKey(item) === optionKey_1; });
80
+ // eslint-disable-next-line no-nested-ternary
81
+ var res = optionIsSelected
82
+ ? value.filter(function (option) { return getOptionKey(option) !== optionKey_1; })
83
+ : option
84
+ ? __spreadArray(__spreadArray([], __read(value), false), [option], false) : value;
85
+ (_c = params.onChange) === null || _c === void 0 ? void 0 : _c.call(params, e, res);
86
+ }
87
+ setSearch(undefined);
88
+ }
89
+ changeInputValue(null, inputValue);
90
+ };
91
+ /** Эффект — фильтрация списка при изменении опций */
92
+ useEffect(function () {
93
+ if (!open)
94
+ return;
95
+ setFilteredOptions(search ? search(options) : __spreadArray([], __read(options), false));
96
+ }, [search, options, open, searchFunctionProp]);
97
+ /** Эффект — синхронизируем значение текстового поля со значением в списке */
98
+ useEffect(function () {
99
+ var _a;
100
+ if (allowCustomValue || multiple)
101
+ return;
102
+ var value = valueState || '';
103
+ var params = __assign(__assign({}, inProps), { value: value });
104
+ if (isNotMultipleParams(params)) {
105
+ lastInputValue.current = (_a = savedGetOptionLabel.current) === null || _a === void 0 ? void 0 : _a.call(savedGetOptionLabel, params.value);
106
+ if (lastInputValue.current !== inputValue)
107
+ changeInputValue(null, lastInputValue.current);
108
+ }
109
+ }, [valueState, allowCustomValue]);
110
+ /** Эффект — автофокусировка в текстовом поле */
111
+ useEffect(function () {
112
+ var _a;
113
+ if (autoFocus)
114
+ (_a = anchorRef.current) === null || _a === void 0 ? void 0 : _a.focus();
115
+ }, [autoFocus]);
116
+ /** Ждём выполнения анимации на закрытие и делаем сброс функции фильтрации */
117
+ var handleExited = function () {
118
+ var _a;
119
+ setSearch(undefined);
120
+ (_a = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.onExited) === null || _a === void 0 ? void 0 : _a.call(popoverProps);
121
+ };
122
+ /** Закрытие */
123
+ var handleClose = function () {
124
+ setOpen(false);
125
+ onCloseProp === null || onCloseProp === void 0 ? void 0 : onCloseProp();
126
+ };
127
+ /** Открытие */
128
+ var handleOpen = function () {
129
+ setOpen(true);
130
+ onOpenProp === null || onOpenProp === void 0 ? void 0 : onOpenProp();
131
+ };
132
+ /** Переключатель открытия и закрытия */
133
+ var handleToggle = function () {
134
+ if (disabled)
135
+ return;
136
+ if (open)
137
+ handleClose();
138
+ else
139
+ handleOpen();
140
+ };
141
+ /** Очистка поля */
142
+ var handleClear = function (e) {
143
+ callOnChange(e, null);
144
+ setSearch(undefined);
145
+ };
146
+ /** Актуализация значения текстового поля после его покидания */
147
+ var handleBlur = function (e) {
148
+ var _a;
149
+ (_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
150
+ if (allowCustomValue)
151
+ return;
152
+ if (inputValue !== lastInputValue.current) {
153
+ changeInputValue(null, lastInputValue.current);
154
+ }
155
+ };
156
+ /** Открытие списка по клику на текстовом поле */
157
+ var handleClickOnInput = function (e) {
158
+ var _a;
159
+ handleToggle();
160
+ (_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.onClick) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
161
+ };
162
+ /** Управление элементом контроля через клавиатуру */
163
+ var handleKeyDown = function (e) {
164
+ if (isKeys(e, ['ArrowDown', 'ArrowUp']) && !open) {
165
+ e.preventDefault();
166
+ handleToggle();
167
+ }
168
+ var params = __assign(__assign({}, inProps), { value: valueState });
169
+ if (isMultipleParams(params) && isKeys(e, ['Backspace']) && !inputValue) {
170
+ var value = params.value;
171
+ if (value)
172
+ callOnChange(e, value[value.length - 1] || null);
173
+ }
174
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
175
+ };
176
+ /** Событие ввода значения в текстовом поле */
177
+ var handleChangeInput = function (e) {
178
+ var value = e.target.value;
179
+ // Открываем список при вводе первого символа (при условии, что список еще не открыт)
180
+ if (value.length && !open)
181
+ handleOpen();
182
+ if (multiple)
183
+ changeInputValue(e, value);
184
+ if (value && !multiple)
185
+ changeInputValue(e, value);
186
+ if (!value && !multiple)
187
+ callOnChange(e, null);
188
+ // Задаем функцию фильтрации
189
+ setSearch(function () { return function (options) { return searchFunction(__spreadArray([], __read(options), false), value); }; });
190
+ };
191
+ /** Событие выбора значения из раскрывающегося списка */
192
+ var handleChangeDropdown = function (e, option) {
193
+ callOnChange(e, option);
194
+ // Закрываем список после выбора
195
+ if (!disableCloseOnSelect)
196
+ handleClose();
197
+ };
198
+ var autocompleteInputProps = __assign({ open: open, size: size, limitTags: limitTags, disabled: disabled, multiple: multiple, required: required, fullWidth: fullWidth, clearText: clearText, closeText: closeText, openText: openText, inputProps: __assign(__assign({}, inputProps), { onBlur: handleBlur, onClick: handleClickOnInput }), bodyProps: __assign(__assign({}, bodyProps), { ref: inputBodyRef }), renderInput: renderInput, getOptionKey: getOptionKey, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, value: inputValue, disableShowChevron: disableShowChevron, disableClearButton: disableClearButton, onClear: handleClear, onOpen: handleToggle, onRemoveTag: callOnChange, onKeyDown: handleKeyDown, onChange: handleChangeInput, selectedOptions: valueState }, other);
199
+ var update = useRef();
200
+ var setUpdate = function (func) {
201
+ if (func) {
202
+ update.current = func;
203
+ }
204
+ };
205
+ useEffect(function () {
206
+ var _a;
207
+ (_a = update.current) === null || _a === void 0 ? void 0 : _a.call(update);
208
+ }, [height]);
209
+ return (React.createElement(React.Fragment, null,
210
+ React.createElement(AutocompleteInput, __assign({}, autocompleteInputProps, { ref: rootRef })),
211
+ React.createElement(AutocompleteDropdown, { open: open, size: size, loading: loading, setUpdate: setUpdate, value: valueState, multiple: multiple, onClose: handleClose, listProps: listProps, anchorRef: anchorRef, hasOptions: hasOptions, options: filteredOptions, loadingText: loadingText, renderOption: renderOption, getOptionKey: getOptionKey, noOptionsText: noOptionsText, onChange: handleChangeDropdown, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, disableShowEmptyOptionsList: disableShowEmptyOptionsList, popoverProps: __assign(__assign({}, popoverProps), { onExited: handleExited }) })));
212
+ }
213
+ export var Autocomplete = forwardRef(AutocompleteRender);
@@ -0,0 +1,2 @@
1
+ import type { AutocompleteDropdownComponent } from './index';
2
+ export declare const AutocompleteDropdown: AutocompleteDropdownComponent;
@@ -0,0 +1,153 @@
1
+ import { __assign } from "tslib";
2
+ import React, { useEffect, useRef, useMemo, forwardRef } from 'react';
3
+ import { useEventListener } from '../../../../hooks/useEventListener';
4
+ import { useMultiRef } from '../../../../hooks/useMultiRef';
5
+ import { usePrevious } from '../../../../hooks/usePrevious';
6
+ import { getPaperSizeToFormElement } from '../../../../utils/getPaperSizeToFormElement';
7
+ import { isKey } from '../../../../utils/isKey';
8
+ import { isNotNil } from '../../../../utils/isNotNil';
9
+ import { scrollContainerToElement } from '../../../../utils/scrollContainerToElement';
10
+ import { List, ListItem, ListItemText } from '../../../List';
11
+ import { Paper } from '../../../Paper';
12
+ import { Popover } from '../../../Popover';
13
+ import { cnAutocomplete } from '../../index';
14
+ import { AutocompleteDropdownCheckIcon, AutocompleteDropdownLoading, AutocompleteDropdownNoOptions, } from './components';
15
+ import { AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE } from './constants';
16
+ import { isMultipleParams, isNotMultipleParams, normalizeOptions, } from './helpers';
17
+ import { useDataListNavigation } from './utils';
18
+ var AutocompleteDropdownRender = function (inProps, ref) {
19
+ var _a = inProps.size, size = _a === void 0 ? AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE : _a, open = inProps.open, loading = inProps.loading, onClose = inProps.onClose, options = inProps.options, onChange = inProps.onChange, anchorRef = inProps.anchorRef, className = inProps.className, listProps = inProps.listProps, hasOptions = inProps.hasOptions, loadingText = inProps.loadingText, popoverProps = inProps.popoverProps, getOptionKey = inProps.getOptionKey, noOptionsText = inProps.noOptionsText, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, disableShowEmptyOptionsList = inProps.disableShowEmptyOptionsList, setUpdate = inProps.setUpdate, renderOptionProp = inProps.renderOption;
20
+ var radius = getPaperSizeToFormElement(size);
21
+ var showNoOptions = !hasOptions && !loading && !disableShowEmptyOptionsList;
22
+ var showLoading = !hasOptions && !!loading;
23
+ var rootRef = useRef(null);
24
+ var listRef = useRef(null);
25
+ var _b = useMemo(function () { return normalizeOptions(options, getOptionKey, getOptionDisabled); }, [options, getOptionKey, getOptionDisabled]), entities = _b.entities, items = _b.idxs;
26
+ // Определяет последнюю выбранную опцию
27
+ var lastSelected = useMemo(function () {
28
+ var _a, _b;
29
+ if (isNotMultipleParams(inProps)) {
30
+ var value = inProps.value;
31
+ var key = value && getOptionKey(value);
32
+ return key && ((_a = entities.byKey[key]) === null || _a === void 0 ? void 0 : _a.idx);
33
+ }
34
+ if (isMultipleParams(inProps)) {
35
+ var value = inProps.value;
36
+ var lastValue = value === null || value === void 0 ? void 0 : value[value.length - 1];
37
+ var lastKey = lastValue && getOptionKey(lastValue);
38
+ return lastKey && ((_b = entities.byKey[lastKey]) === null || _b === void 0 ? void 0 : _b.idx);
39
+ }
40
+ return undefined;
41
+ }, [inProps, entities]);
42
+ // Навигация по списку
43
+ var _c = useDataListNavigation({
44
+ items: items,
45
+ active: open,
46
+ selected: lastSelected,
47
+ onSelect: function (event, idx) {
48
+ var _a;
49
+ var option = isNotNil(idx) ? (_a = entities.byIdx[idx]) === null || _a === void 0 ? void 0 : _a.option : undefined;
50
+ if (option)
51
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, option);
52
+ },
53
+ }), current = _c.current, focused = _c.focused, onKeyDown = _c.onKeyDown, onClick = _c.onClick;
54
+ var previousCurrent = usePrevious(current);
55
+ useEffect(function () {
56
+ var _a, _b;
57
+ var firstCurrent = !isNotNil(previousCurrent) && isNotNil(current) ? current : undefined;
58
+ var selected = focused !== null && focused !== void 0 ? focused : firstCurrent;
59
+ if (selected !== undefined) {
60
+ // Прокрутка списка
61
+ scrollContainerToElement({
62
+ container: rootRef.current,
63
+ element: (_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[+selected],
64
+ behavior: isNotNil(focused) ? 'smooth' : 'instant',
65
+ });
66
+ }
67
+ }, [focused, current]);
68
+ // Назначает элементу контроля событие управления списком с клавиатуры
69
+ useEventListener({
70
+ eventName: 'keydown',
71
+ element: anchorRef,
72
+ handler: function (event) { return onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event); },
73
+ });
74
+ // Закрывает список по нажатию на клавишу {Tab}
75
+ useEventListener({
76
+ active: open,
77
+ eventName: 'keydown',
78
+ element: anchorRef,
79
+ handler: function (event) {
80
+ if (isKey(event, 'Tab'))
81
+ onClose === null || onClose === void 0 ? void 0 : onClose();
82
+ },
83
+ });
84
+ var handleOnMouseDownList = function (e) {
85
+ var _a;
86
+ e.preventDefault();
87
+ (_a = listProps === null || listProps === void 0 ? void 0 : listProps.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(listProps, e);
88
+ };
89
+ /** Отображение опций */
90
+ var renderOptionDefault = function (_a) {
91
+ var props = _a.props, option = _a.option, selected = _a.state.selected;
92
+ return (React.createElement(ListItem, __assign({}, props),
93
+ React.createElement(ListItemText, { primary: getOptionLabel(option) }),
94
+ React.createElement(AutocompleteDropdownCheckIcon, { selected: selected })));
95
+ };
96
+ var renderOption = renderOptionProp || renderOptionDefault;
97
+ // Представление раскрывающегося списка
98
+ var renderChildren = useMemo(function () {
99
+ return options.map(function (option, idx) {
100
+ var isSelected;
101
+ var key = getOptionKey === null || getOptionKey === void 0 ? void 0 : getOptionKey(option);
102
+ var isFocused = idx === focused;
103
+ var isDisabled = getOptionDisabled(option);
104
+ if (isNotMultipleParams(inProps)) {
105
+ var value = inProps.value;
106
+ if (value)
107
+ isSelected = getOptionKey(value) === key;
108
+ }
109
+ if (isMultipleParams(inProps) && Array.isArray(inProps.value)) {
110
+ var value = inProps.value;
111
+ isSelected = !!value.find(function (option) { return getOptionKey(option) === key; });
112
+ }
113
+ return renderOption({
114
+ option: option,
115
+ state: {
116
+ key: key,
117
+ focused: isFocused,
118
+ selected: isSelected,
119
+ disabled: isDisabled,
120
+ },
121
+ props: {
122
+ key: "".concat(idx, "_").concat(key),
123
+ role: 'option',
124
+ 'aria-selected': isSelected,
125
+ 'aria-disabled': isDisabled,
126
+ className: cnAutocomplete('Option', {
127
+ disabled: isDisabled,
128
+ selected: isSelected,
129
+ focused: isFocused,
130
+ }),
131
+ onClick: function (e) {
132
+ if (isDisabled)
133
+ return;
134
+ onClick === null || onClick === void 0 ? void 0 : onClick(e, idx);
135
+ },
136
+ },
137
+ });
138
+ });
139
+ }, [
140
+ options,
141
+ focused,
142
+ renderOption,
143
+ getOptionKey,
144
+ lastSelected,
145
+ getOptionDisabled,
146
+ ]);
147
+ return (React.createElement(Popover, __assign({ offset: [0, 4], strategy: "absolute", placement: "bottom-start", setUpdate: setUpdate, as: Paper, transitionProps: { classNames: 'AutocompleteNext-Dropdown-animation' }, className: cnAutocomplete('Dropdown', [className]), equalAnchorWidth: true, disableReturnFocus: true, disableEnforceFocus: true }, popoverProps, { open: open, radius: radius, onClose: onClose, anchorRef: anchorRef, ref: useMultiRef([ref, popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.ref, rootRef]) }),
148
+ React.createElement(List, __assign({ size: size, role: "listbox" }, listProps, { onMouseDown: handleOnMouseDownList, ref: useMultiRef([listRef, listProps === null || listProps === void 0 ? void 0 : listProps.ref]) }),
149
+ renderChildren,
150
+ React.createElement(AutocompleteDropdownNoOptions, { showNoOptions: showNoOptions, noOptionsText: noOptionsText }),
151
+ React.createElement(AutocompleteDropdownLoading, { showLoading: showLoading, loadingText: loadingText, size: size }))));
152
+ };
153
+ export var AutocompleteDropdown = forwardRef(AutocompleteDropdownRender);