@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
@@ -0,0 +1,7 @@
1
+ .AutocompleteDropdownCheckIcon {
2
+ visibility: hidden;
3
+ }
4
+
5
+ .AutocompleteDropdownCheckIcon_selected {
6
+ visibility: visible;
7
+ }
@@ -0,0 +1,6 @@
1
+ import './AutocompleteDropdownCheckIcon.css';
2
+ import type { FC } from 'react';
3
+ export type AutocompleteDropdownCheckIconProps = {
4
+ selected?: boolean;
5
+ };
6
+ export declare const AutocompleteDropdownCheckIcon: FC<AutocompleteDropdownCheckIconProps>;
@@ -0,0 +1,13 @@
1
+ import './AutocompleteDropdownCheckIcon.css';
2
+ import React from 'react';
3
+ import { CheckIcon } from '@ozen-ui/icons';
4
+ import { cn } from '../../../../../../utils/classname';
5
+ import { getIconSizeToFormElement } from '../../../../../../utils/getIconSizeToFormElement';
6
+ import { ListItemIcon, useListContext } from '../../../../../List';
7
+ var cnAutocompleteDropdownCheckIcon = cn('AutocompleteDropdownCheckIcon');
8
+ export var AutocompleteDropdownCheckIcon = function (_a) {
9
+ var selected = _a.selected;
10
+ var size = useListContext().size;
11
+ return (React.createElement(ListItemIcon, { className: cnAutocompleteDropdownCheckIcon({ selected: selected }) },
12
+ React.createElement(CheckIcon, { size: getIconSizeToFormElement(size) })));
13
+ };
@@ -0,0 +1,6 @@
1
+ import type { FC } from 'react';
2
+ import type { AutocompleteProps } from '../../../../index';
3
+ export type AutocompleteDropdownLoadingProps = Pick<AutocompleteProps, 'loadingText' | 'size'> & {
4
+ showLoading: boolean;
5
+ };
6
+ export declare const AutocompleteDropdownLoading: FC<AutocompleteDropdownLoadingProps>;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { getIconSizeToFormElement } from '../../../../../../utils/getIconSizeToFormElement';
3
+ import { isNumber } from '../../../../../../utils/isNumber';
4
+ import { isString } from '../../../../../../utils/isString';
5
+ import { ListItem, ListItemIcon, ListItemText } from '../../../../../List';
6
+ import { Loader } from '../../../../../Loader';
7
+ import { AUTOCOMPLETE_DEFAULT_SIZE } from '../../../../constants';
8
+ export var AutocompleteDropdownLoading = function (_a) {
9
+ var _b = _a.size, sizeProp = _b === void 0 ? AUTOCOMPLETE_DEFAULT_SIZE : _b, showLoading = _a.showLoading, loadingText = _a.loadingText;
10
+ if (!showLoading) {
11
+ return null;
12
+ }
13
+ var size = getIconSizeToFormElement(sizeProp);
14
+ return isString(loadingText) || isNumber(loadingText) ? (React.createElement(ListItem, null,
15
+ React.createElement(ListItemIcon, null,
16
+ React.createElement(Loader, { size: size })),
17
+ React.createElement(ListItemText, { primary: loadingText }))) : (loadingText);
18
+ };
@@ -0,0 +1,6 @@
1
+ import type { FC } from 'react';
2
+ import type { AutocompleteProps } from '../../../../index';
3
+ export type AutocompleteDropdownNoOptionsProps = Pick<AutocompleteProps, 'noOptionsText'> & {
4
+ showNoOptions: boolean;
5
+ };
6
+ export declare const AutocompleteDropdownNoOptions: FC<AutocompleteDropdownNoOptionsProps>;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { isNumber } from '../../../../../../utils/isNumber';
3
+ import { isString } from '../../../../../../utils/isString';
4
+ import { ListItem, ListItemText } from '../../../../../List';
5
+ export var AutocompleteDropdownNoOptions = function (_a) {
6
+ var showNoOptions = _a.showNoOptions, noOptionsText = _a.noOptionsText;
7
+ if (!showNoOptions) {
8
+ return null;
9
+ }
10
+ return isString(noOptionsText) || isNumber(noOptionsText) ? (React.createElement(ListItem, null,
11
+ React.createElement(ListItemText, { primary: noOptionsText }))) : (noOptionsText);
12
+ };
@@ -0,0 +1,3 @@
1
+ export * from './AutocompleteDropdownLoading';
2
+ export * from './AutocompleteDropdownNoOptions';
3
+ export * from './AutocompleteDropdownCheckIcon';
@@ -0,0 +1,3 @@
1
+ export * from './AutocompleteDropdownLoading';
2
+ export * from './AutocompleteDropdownNoOptions';
3
+ export * from './AutocompleteDropdownCheckIcon';
@@ -0,0 +1,3 @@
1
+ export declare const AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = "m";
2
+ export declare const AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = false;
3
+ export declare const AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = false;
@@ -0,0 +1,3 @@
1
+ export var AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = 'm';
2
+ export var AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = false;
3
+ export var AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = false;
@@ -0,0 +1,17 @@
1
+ import type { AutocompleteDropdownProps } from './types';
2
+ export declare const isMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, true>;
3
+ export declare const isNotMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, false>;
4
+ export type NormalizedOptions<OPTION> = {
5
+ entities: {
6
+ byIdx: Record<string | number, {
7
+ option: OPTION;
8
+ key: string | number;
9
+ }>;
10
+ byKey: Record<string | number, {
11
+ option: OPTION;
12
+ idx: string | number;
13
+ }>;
14
+ };
15
+ idxs: (string | number)[];
16
+ };
17
+ export declare function normalizeOptions<OPTION>(options: OPTION[], getOptionKey: (option: OPTION) => string | number, getOptionDisabled: (option: OPTION) => boolean | undefined): NormalizedOptions<OPTION>;
@@ -0,0 +1,30 @@
1
+ import { __values } from "tslib";
2
+ export var isMultipleParams = function (params) { return !!params.multiple; };
3
+ export var isNotMultipleParams = function (params) { return !params.multiple; };
4
+ export function normalizeOptions(options, getOptionKey, getOptionDisabled) {
5
+ var e_1, _a;
6
+ var idx = 0;
7
+ var res = {
8
+ idxs: [],
9
+ entities: { byIdx: {}, byKey: {} },
10
+ };
11
+ try {
12
+ for (var options_1 = __values(options), options_1_1 = options_1.next(); !options_1_1.done; options_1_1 = options_1.next()) {
13
+ var option = options_1_1.value;
14
+ var key = getOptionKey(option);
15
+ res.entities.byIdx[idx] = { option: option, key: key };
16
+ res.entities.byKey[key] = { option: option, idx: idx };
17
+ if (!getOptionDisabled(option))
18
+ res.idxs.push(idx);
19
+ idx += 1;
20
+ }
21
+ }
22
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
23
+ finally {
24
+ try {
25
+ if (options_1_1 && !options_1_1.done && (_a = options_1.return)) _a.call(options_1);
26
+ }
27
+ finally { if (e_1) throw e_1.error; }
28
+ }
29
+ return res;
30
+ }
@@ -0,0 +1,3 @@
1
+ export * from './AutocompleteDropdown';
2
+ export * from './components';
3
+ export * from './types';
@@ -0,0 +1,3 @@
1
+ export * from './AutocompleteDropdown';
2
+ export * from './components';
3
+ export * from './types';
@@ -0,0 +1,45 @@
1
+ import type { ReactNode, ReactElement, SyntheticEvent } from 'react';
2
+ import type { FormElementSizeVariant } from '../../../../types/FormElementSizeVariant';
3
+ import type { ListProps } from '../../../List';
4
+ import type { PopoverProps, PopoverRef } from '../../../Popover';
5
+ import type { AutocompletePropValue, AutocompletePropRenderOption, AutocompletePropGetOptionKey, AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionLabel } from '../../index';
6
+ export type AutocompleteDropdownRef = PopoverRef;
7
+ export type AutocompleteDropdownOnChange<OPTION> = (e: SyntheticEvent | KeyboardEvent, value: OPTION | null) => void;
8
+ export type AutocompleteDropdownProps<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false> = {
9
+ /** Имя списка */
10
+ name?: string;
11
+ /** Содержимое компонента */
12
+ children?: never;
13
+ /** Если {true} из списка можно выбрать несколько вариантов */
14
+ multiple?: MULTIPLE;
15
+ /** Список вариантов выбора (опции) */
16
+ options: OPTION[];
17
+ /** Размер */
18
+ size?: FormElementSizeVariant;
19
+ /** Выбранное значение опции */
20
+ value?: AutocompletePropValue<OPTION, MULTIPLE>;
21
+ /** Функция обратного вызова, которая будет вызвана при выборе значения */
22
+ onChange?: AutocompleteDropdownOnChange<OPTION>;
23
+ /** Функция для кастомизации отображения опции */
24
+ renderOption?: AutocompletePropRenderOption<OPTION>;
25
+ /** Функция для определения уникального ключа элемента */
26
+ getOptionKey: AutocompletePropGetOptionKey<OPTION>;
27
+ /** Функция для определения названия элемента */
28
+ getOptionLabel: AutocompletePropGetOptionLabel<OPTION>;
29
+ /** Функция для определения заблокированного элемента */
30
+ getOptionDisabled: AutocompletePropGetOptionDisabled<OPTION>;
31
+ /** Если {true} не показывает список с отсутствующими опциями */
32
+ disableShowEmptyOptionsList?: boolean;
33
+ /** Текст компонента в состоянии загрузки */
34
+ loadingText?: ReactNode;
35
+ /** Текст компонента при отсутствующих опций */
36
+ noOptionsText?: ReactNode;
37
+ /** Свойства компонента Popover */
38
+ popoverProps?: Partial<Omit<PopoverProps, 'children' | 'open' | 'anchorRef' | 'onClose' | 'className'>>;
39
+ /** Свойства компонента List */
40
+ listProps?: Partial<Omit<ListProps, 'children'>>;
41
+ loading?: boolean;
42
+ hasOptions?: boolean;
43
+ 'data-testid'?: string;
44
+ } & Pick<PopoverProps, 'open' | 'anchorRef' | 'onClose' | 'className' | 'setUpdate'>;
45
+ export type AutocompleteDropdownComponent = <OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteDropdownProps<OPTION, MULTIPLE>) => ReactElement | null;
@@ -0,0 +1,2 @@
1
+ export * from './useDataListNavigation';
2
+ export * from './useScrollContainerToElement';
@@ -0,0 +1,2 @@
1
+ export * from './useDataListNavigation';
2
+ export * from './useScrollContainerToElement';
@@ -0,0 +1,20 @@
1
+ import type { MouseEvent } from 'react';
2
+ export type UseListNavigationItem = string | number | null;
3
+ export type UseListNavigationItems = UseListNavigationItem[];
4
+ export type UseListNavigationProps = {
5
+ active?: boolean;
6
+ items?: UseListNavigationItems;
7
+ selected?: UseListNavigationItem;
8
+ onSelect?(event: KeyboardEvent | MouseEvent<HTMLElement>, item?: UseListNavigationItem): void;
9
+ };
10
+ export type UseListNavigationState = {
11
+ focused?: UseListNavigationItem;
12
+ current?: UseListNavigationItem;
13
+ };
14
+ export type UseListNavigationEvents = {
15
+ onKeyDown?(event: KeyboardEvent): void;
16
+ onClick?(event: MouseEvent<HTMLElement>, item: UseListNavigationItem): void;
17
+ };
18
+ export type UseListNavigationReturn = UseListNavigationState & UseListNavigationEvents;
19
+ /** Навигация по элементам списка без перехвата фокуса с элемента контроля */
20
+ export declare function useDataListNavigation({ selected, onSelect, active, items: itemsProps, }: UseListNavigationProps): UseListNavigationReturn;
@@ -0,0 +1,67 @@
1
+ import { __assign, __read } from "tslib";
2
+ import { useEffect, useState, useCallback } from 'react';
3
+ import { useMutableRef } from '../../../../../hooks/useMutableRef';
4
+ import { getNextIndex } from '../../../../../utils/getNextIndex';
5
+ import { getPrevIndex } from '../../../../../utils/getPrevIndex';
6
+ import { isKey } from '../../../../../utils/isKey';
7
+ import { isKeys } from '../../../../../utils/isKeys';
8
+ /** Навигация по элементам списка без перехвата фокуса с элемента контроля */
9
+ export function useDataListNavigation(_a) {
10
+ var selected = _a.selected, onSelect = _a.onSelect, _b = _a.active, active = _b === void 0 ? false : _b, itemsProps = _a.items;
11
+ var savedItems = useMutableRef(itemsProps);
12
+ var savedSelected = useMutableRef(selected);
13
+ var savedOnSelect = useMutableRef(onSelect);
14
+ var _c = __read(useState({}), 2), state = _c[0], setState = _c[1];
15
+ var findInItems = function (value) { var _a; return (_a = savedItems.current) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item === value; }); };
16
+ useEffect(function () {
17
+ if (!active)
18
+ return;
19
+ setState(function (prevState) {
20
+ var _a, _b, _c;
21
+ return (__assign(__assign({}, prevState), { focused: (_a = findInItems(prevState.focused)) !== null && _a !== void 0 ? _a : null, current: (_b = findInItems(savedSelected.current)) !== null && _b !== void 0 ? _b : (_c = savedItems.current) === null || _c === void 0 ? void 0 : _c[0] }));
22
+ });
23
+ }, [itemsProps, active]);
24
+ // Сброс
25
+ useEffect(function () {
26
+ if (!active)
27
+ return undefined;
28
+ return function () {
29
+ setState({});
30
+ };
31
+ }, [active]);
32
+ var onClick = useCallback(function (event, item) {
33
+ var _a;
34
+ if (!active)
35
+ return;
36
+ var focused = item === state.focused ? item : null;
37
+ setState(__assign(__assign({}, state), { focused: focused, current: item }));
38
+ (_a = savedOnSelect.current) === null || _a === void 0 ? void 0 : _a.call(savedOnSelect, event, item);
39
+ }, [state.focused, active]);
40
+ var onKeyDown = useCallback(function (event) {
41
+ var _a, _b, _c, _d, _e, _f, _g;
42
+ if (!active || !isKeys(event, ['Enter', 'ArrowUp', 'ArrowDown']))
43
+ return;
44
+ var current = (_a = state.focused) !== null && _a !== void 0 ? _a : state.current;
45
+ if (isKey(event, 'Enter')) {
46
+ // Не обрабатываем ввод в пустом списке
47
+ if (!((_b = savedItems.current) === null || _b === void 0 ? void 0 : _b.length))
48
+ return;
49
+ event.preventDefault();
50
+ setState(__assign(__assign({}, state), { current: current, focused: current }));
51
+ (_c = savedOnSelect.current) === null || _c === void 0 ? void 0 : _c.call(savedOnSelect, event, current);
52
+ }
53
+ if (isKeys(event, ['ArrowUp', 'ArrowDown'])) {
54
+ event.preventDefault();
55
+ var currentIndex = typeof current !== 'undefined'
56
+ ? (_d = savedItems.current) === null || _d === void 0 ? void 0 : _d.indexOf(current)
57
+ : null;
58
+ var isArrowUp = isKey(event, 'ArrowUp');
59
+ var newIndex = isArrowUp
60
+ ? getPrevIndex(currentIndex !== null && currentIndex !== void 0 ? currentIndex : 0, ((_e = savedItems.current) === null || _e === void 0 ? void 0 : _e.length) || 0)
61
+ : getNextIndex(currentIndex !== null && currentIndex !== void 0 ? currentIndex : -1, ((_f = savedItems.current) === null || _f === void 0 ? void 0 : _f.length) || 0);
62
+ var newItem = (_g = savedItems.current) === null || _g === void 0 ? void 0 : _g[newIndex];
63
+ setState(__assign(__assign({}, state), { focused: newItem }));
64
+ }
65
+ }, [state.focused, state.current, active]);
66
+ return __assign(__assign({}, state), { onClick: onClick, onKeyDown: onKeyDown });
67
+ }
@@ -0,0 +1,3 @@
1
+ import type { RefObject } from 'react';
2
+ import type { ScrollContainerToElement } from '../../../../../utils/scrollContainerToElement';
3
+ export declare function useScrollContainerToElement(container: RefObject<HTMLElement>, element: RefObject<HTMLElement>, behavior?: ScrollContainerToElement['behavior']): void;
@@ -0,0 +1,11 @@
1
+ import { useEffect } from 'react';
2
+ import { scrollContainerToElement } from '../../../../../utils/scrollContainerToElement';
3
+ export function useScrollContainerToElement(container, element, behavior) {
4
+ useEffect(function () {
5
+ scrollContainerToElement({
6
+ container: container.current,
7
+ element: element.current,
8
+ behavior: behavior,
9
+ });
10
+ }, [container, element]);
11
+ }
@@ -0,0 +1,2 @@
1
+ import type { AutocompleteInputComponent } from './types';
2
+ export declare const AutocompleteInput: AutocompleteInputComponent;
@@ -0,0 +1,35 @@
1
+ import { __assign, __rest } from "tslib";
2
+ import React, { forwardRef } from 'react';
3
+ import { isNotNil } from '../../../../utils/isNotNil';
4
+ import { Input } from '../../../Input';
5
+ import { cnAutocomplete } from '../../index';
6
+ import { AutocompleteRenderRight } from '../AutocompleteRenderRight';
7
+ import { AutocompleteInputMultiple } from './components';
8
+ import { isNotMultipleParams, isMultipleParams } from './helpers';
9
+ var AutocompleteInputRender = function (inProps, ref) {
10
+ var _a, _b;
11
+ var _c = inProps.size, size = _c === void 0 ? 'm' : _c, open = inProps.open, value = inProps.value, onOpen = inProps.onOpen, onClear = inProps.onClear, multiple = inProps.multiple, disabled = inProps.disabled, openText = inProps.openText, onRemoveTag = inProps.onRemoveTag, clearText = inProps.clearText, closeText = inProps.closeText, className = inProps.className, bodyProps = inProps.bodyProps, inputProps = inProps.inputProps, renderRight = inProps.renderRight, placeholder = inProps.placeholder, selectedOptions = inProps.selectedOptions, getOptionKey = inProps.getOptionKey, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, limitTags = inProps.limitTags, disableClearButton = inProps.disableClearButton, disableShowChevron = inProps.disableShowChevron, renderTag = inProps.renderTag, renderInputProp = inProps.renderInput, renderMoreTag = inProps.renderMoreTag, other = __rest(inProps, ["size", "open", "value", "onOpen", "onClear", "multiple", "disabled", "openText", "onRemoveTag", "clearText", "closeText", "className", "bodyProps", "inputProps", "renderRight", "placeholder", "selectedOptions", "getOptionKey", "getOptionLabel", "getOptionDisabled", "limitTags", "disableClearButton", "disableShowChevron", "renderTag", "renderInput", "renderMoreTag"]);
12
+ var hasValue = isMultipleParams(inProps)
13
+ ? !!((_a = inProps.selectedOptions) === null || _a === void 0 ? void 0 : _a.length)
14
+ : isNotNil(selectedOptions);
15
+ var selectedOptionsLength = isMultipleParams(inProps)
16
+ ? ((_b = inProps.selectedOptions) === null || _b === void 0 ? void 0 : _b.length) || 0
17
+ : 0;
18
+ var renderInputDefault = function (props, ref) { return (React.createElement(Input, __assign({}, props, { ref: ref }))); };
19
+ var renderInput = renderInputProp || renderInputDefault;
20
+ var renderComponent = function (_a, ref) {
21
+ var className = _a.className, other = __rest(_a, ["className"]);
22
+ if (isNotMultipleParams(inProps)) {
23
+ return (React.createElement("input", __assign({}, other, { ref: ref, className: cnAutocomplete('Input', { multiple: multiple }, [className]) })));
24
+ }
25
+ if (isMultipleParams(inProps)) {
26
+ var selectedOptions_1 = inProps.selectedOptions;
27
+ return (React.createElement(AutocompleteInputMultiple, __assign({ renderTag: renderTag, limitTags: limitTags, onRemoveTag: onRemoveTag, getOptionKey: getOptionKey, renderMoreTag: renderMoreTag, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, selectedOptions: selectedOptions_1, ref: ref }, other)));
28
+ }
29
+ return null;
30
+ };
31
+ return renderInput(__assign({ size: size, disabled: disabled, value: value || '', placeholder: placeholder, renderRight: (React.createElement(AutocompleteRenderRight, { open: open, size: size, onOpen: onOpen, onClear: onClear, hasValue: hasValue, openText: openText, disabled: disabled, clearText: clearText, closeText: closeText, renderRight: renderRight, disableShowChevron: disableShowChevron, disableClearButton: disableClearButton })), labelProps: {
32
+ shrink: !!selectedOptionsLength,
33
+ }, inputProps: __assign(__assign({ autoComplete: 'off' }, inputProps), { renderComponent: renderComponent }), bodyProps: __assign({ 'aria-expanded': open }, bodyProps), className: cnAutocomplete({ size: size, multiple: multiple, hasChevron: !disableShowChevron }, [className]) }, other), ref);
34
+ };
35
+ export var AutocompleteInput = forwardRef(AutocompleteInputRender);
@@ -0,0 +1,2 @@
1
+ import type { AutocompleteInputMultipleComponent } from './types';
2
+ export declare const AutocompleteInputMultiple: AutocompleteInputMultipleComponent;
@@ -0,0 +1,109 @@
1
+ import { __assign, __read, __rest } from "tslib";
2
+ import React, { forwardRef, useState } from 'react';
3
+ import { CrossSmallIcon } from '@ozen-ui/icons';
4
+ import { useElementSize } from '../../../../../hooks/useElementSize';
5
+ import { useIsomorphicEffect } from '../../../../../hooks/useIsomorphicEffect';
6
+ import { isNumber } from '../../../../../utils/isNumber';
7
+ import { Tag } from '../../../../TagNext';
8
+ import { cnAutocomplete, } from '../../../index';
9
+ import { calcElementSize, calcElementsSize, createMap, getAutocompleteSizeToTag, } from './helpers';
10
+ var AutocompleteInputMultipleRender = function (inProps, ref) {
11
+ var _a = inProps.size, size = _a === void 0 ? 'm' : _a, value = inProps.value, placeholder = inProps.placeholder, selectedOptions = inProps.selectedOptions, onRemoveTag = inProps.onRemoveTag, renderTagProp = inProps.renderTag, renderMoreTagProp = inProps.renderMoreTag, getOptionKey = inProps.getOptionKey, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, limitTags = inProps.limitTags, other = __rest(inProps, ["size", "value", "placeholder", "selectedOptions", "onRemoveTag", "renderTag", "renderMoreTag", "getOptionKey", "getOptionLabel", "getOptionDisabled", "limitTags"]);
12
+ var selectedOptionsLength = (selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.length) || 0;
13
+ var responsive = limitTags === 'responsive';
14
+ var hasLimitTags = isNumber(limitTags) && limitTags > 0;
15
+ var showMoreTag = !!selectedOptionsLength && (responsive || hasLimitTags);
16
+ var _b = __read(useState(), 2), visibleMap = _b[0], setVisibleMap = _b[1];
17
+ var omittedValues = selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.filter(function (_, i) { return !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[i]); });
18
+ var renderMoreTagDefault = function (_a, ref) {
19
+ var props = _a.props;
20
+ return React.createElement(Tag, __assign({ color: "neutral" }, props, { ref: ref }));
21
+ };
22
+ var renderMoreTag = renderMoreTagProp || renderMoreTagDefault;
23
+ var renderTagDefault = function (props, ref) { return (React.createElement(Tag, __assign({ color: "neutral" }, props, { ref: ref }))); };
24
+ var renderTag = renderTagProp || renderTagDefault;
25
+ var _c = useElementSize(), parentRef = _c.ref, parentSize = _c.width;
26
+ var moreTagSize = (parentRef === null || parentRef === void 0 ? void 0 : parentRef.current)
27
+ ? calcElementSize(parentRef === null || parentRef === void 0 ? void 0 : parentRef.current.children[selectedOptionsLength])
28
+ : 0;
29
+ var _d = useElementSize(), helperInputRef = _d.ref, _e = _d.width, helperInputSize = _e === void 0 ? 20 : _e;
30
+ var getInputSize = function () {
31
+ var inputSize = helperInputSize + 20;
32
+ if (responsive &&
33
+ (visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap.filter(function (item) { return !item; }).length) === selectedOptionsLength) {
34
+ return inputSize > parentSize - moreTagSize
35
+ ? parentSize - moreTagSize
36
+ : inputSize;
37
+ }
38
+ return inputSize > parentSize ? parentSize : inputSize;
39
+ };
40
+ var inputSize = getInputSize();
41
+ useIsomorphicEffect(function () {
42
+ if ((!responsive && !isNumber(limitTags)) || !parentSize)
43
+ return;
44
+ var optionsLength = selectedOptionsLength;
45
+ var parentSizeWithoutInput = parentSize - inputSize;
46
+ var moreIndex = optionsLength;
47
+ var map = createMap(optionsLength + 1, moreIndex);
48
+ for (var i = 0; i < optionsLength + 1; i += 1) {
49
+ var index = moreIndex - i;
50
+ if (index !== moreIndex) {
51
+ var elementsSize = calcElementsSize(parentRef.current.children, map);
52
+ var condition = responsive
53
+ ? elementsSize > parentSizeWithoutInput
54
+ : isNumber(limitTags) && limitTags <= index;
55
+ if (condition) {
56
+ map[index] = false;
57
+ map[moreIndex] = true;
58
+ }
59
+ }
60
+ }
61
+ setVisibleMap(map);
62
+ }, [
63
+ limitTags,
64
+ inputSize,
65
+ parentSize,
66
+ selectedOptions,
67
+ selectedOptionsLength,
68
+ ]);
69
+ return (React.createElement(React.Fragment, null,
70
+ React.createElement("div", { ref: parentRef, className: cnAutocomplete('Input', { responsive: responsive, multiple: true }) }, selectedOptions === null || selectedOptions === void 0 ? void 0 :
71
+ selectedOptions.map(function (option, index) {
72
+ var label = (getOptionLabel === null || getOptionLabel === void 0 ? void 0 : getOptionLabel(option)) || '';
73
+ var key = getOptionKey === null || getOptionKey === void 0 ? void 0 : getOptionKey(option);
74
+ var disabled = getOptionDisabled === null || getOptionDisabled === void 0 ? void 0 : getOptionDisabled(option);
75
+ return renderTag({
76
+ key: key,
77
+ label: label,
78
+ size: getAutocompleteSizeToTag(size),
79
+ className: cnAutocomplete('Tag', {
80
+ hidden: (responsive || hasLimitTags) && !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[index]),
81
+ disabled: disabled,
82
+ }),
83
+ iconRight: function (_a) {
84
+ var size = _a.size;
85
+ return (React.createElement("span", { "aria-hidden": "true", "data-testid": "clear-tag", className: cnAutocomplete('ClearTag'), onClick: function (e) {
86
+ if (disabled)
87
+ return;
88
+ e.preventDefault();
89
+ onRemoveTag === null || onRemoveTag === void 0 ? void 0 : onRemoveTag(e, option);
90
+ } },
91
+ React.createElement(CrossSmallIcon, { size: size })));
92
+ },
93
+ });
94
+ }),
95
+ showMoreTag &&
96
+ renderMoreTag({
97
+ omittedValues: omittedValues,
98
+ props: {
99
+ label: "+".concat(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap.filter(function (item) { return !item; }).length),
100
+ size: getAutocompleteSizeToTag(size),
101
+ className: cnAutocomplete('Tag', {
102
+ hidden: !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[selectedOptionsLength]),
103
+ }),
104
+ },
105
+ }),
106
+ React.createElement("input", __assign({}, other, { value: value, ref: ref, style: { width: inputSize }, placeholder: placeholder }))),
107
+ React.createElement("div", { className: cnAutocomplete('HelperInput'), ref: helperInputRef }, value || placeholder)));
108
+ };
109
+ export var AutocompleteInputMultiple = forwardRef(AutocompleteInputMultipleRender);
@@ -0,0 +1,5 @@
1
+ import type { AutocompletePropSize } from '../../../index';
2
+ export declare const getAutocompleteSizeToTag: (size: AutocompletePropSize) => "s" | "m" | "l" | "2xs" | "xs";
3
+ export declare function calcElementSize(el?: Element): number;
4
+ export declare const calcElementsSize: (elements: Element[], map: boolean[]) => number;
5
+ export declare const createMap: (length: number, moreIndex: number) => boolean[];
@@ -0,0 +1,29 @@
1
+ import { getByMap } from '../../../../../utils/getByMap';
2
+ var typeMap = {
3
+ '2xs': '2xs',
4
+ xs: '2xs',
5
+ s: '2xs',
6
+ m: 'xs',
7
+ l: 'xs',
8
+ };
9
+ export var getAutocompleteSizeToTag = function (size) {
10
+ return getByMap(typeMap, size);
11
+ };
12
+ export function calcElementSize(el) {
13
+ if (!el)
14
+ return 0;
15
+ var _a = getComputedStyle(el), marginRight = _a.marginRight, marginLeft = _a.marginLeft;
16
+ return (el.getBoundingClientRect().width +
17
+ parseInt(marginRight, 10) +
18
+ parseInt(marginLeft, 10));
19
+ }
20
+ export var calcElementsSize = function (elements, map) {
21
+ var sum = 0;
22
+ for (var index = 0; index < elements.length; index++) {
23
+ sum += map[index] ? calcElementSize(elements === null || elements === void 0 ? void 0 : elements[index]) : 0;
24
+ }
25
+ return sum;
26
+ };
27
+ export var createMap = function (length, moreIndex) {
28
+ return new Array(length).fill(0).map(function (_, index) { return index !== moreIndex; });
29
+ };
@@ -0,0 +1 @@
1
+ export * from './AutocompleteInputMultiple';
@@ -0,0 +1 @@
1
+ export * from './AutocompleteInputMultiple';
@@ -0,0 +1,17 @@
1
+ import type { ReactElement, Ref } from 'react';
2
+ import type { InputProps } from '../../../../Input';
3
+ import type { AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionKey, AutocompletePropGetOptionLabel, AutocompletePropRenderMoreTag, AutocompletePropRenderTag, AutocompletePropValue } from '../../../index';
4
+ import type { AutocompleteDropdownOnChange } from '../../index';
5
+ export type AutocompleteInputMultipleRef = HTMLInputElement;
6
+ export type AutocompleteInputMultipleProps<OPTION = AutocompleteDefaultOption> = Pick<InputProps, 'size' | 'value' | 'placeholder'> & {
7
+ getOptionLabel?: AutocompletePropGetOptionLabel<OPTION>;
8
+ getOptionKey?: AutocompletePropGetOptionKey<OPTION>;
9
+ getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION>;
10
+ onRemoveTag?: AutocompleteDropdownOnChange<OPTION>;
11
+ selectedOptions?: AutocompletePropValue<OPTION, true>;
12
+ renderTag?: AutocompletePropRenderTag;
13
+ renderMoreTag?: AutocompletePropRenderMoreTag<OPTION>;
14
+ limitTags?: 'responsive' | number;
15
+ ref?: Ref<AutocompleteInputMultipleRef>;
16
+ };
17
+ export type AutocompleteInputMultipleComponent = <OPTION = AutocompleteDefaultOption>(props: AutocompleteInputMultipleProps<OPTION>) => ReactElement | null;
@@ -0,0 +1,3 @@
1
+ import type { AutocompleteInputProps } from './types';
2
+ export declare const isMultipleParams: <OPTION>(params: AutocompleteInputProps<OPTION, boolean>) => params is AutocompleteInputProps<OPTION, true>;
3
+ export declare const isNotMultipleParams: <OPTION>(params: AutocompleteInputProps<OPTION, boolean>) => params is AutocompleteInputProps<OPTION, false>;
@@ -0,0 +1,2 @@
1
+ export * from './AutocompleteInput';
2
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export * from './AutocompleteInput';
2
+ export * from './types';
@@ -0,0 +1,26 @@
1
+ import type { ReactElement, Ref } from 'react';
2
+ import type { InputProps, InputRef } from '../../../Input';
3
+ import type { AutocompleteDefaultOption, AutocompletePropGetOptionKey, AutocompletePropGetOptionLabel, AutocompletePropValue, AutocompletePropRenderInput, AutocompletePropRenderTag, AutocompletePropRenderMoreTag, AutocompletePropGetOptionDisabled } from '../../index';
4
+ import type { AutocompleteDropdownOnChange } from '../AutocompleteDropdown';
5
+ import type { AutocompleteRenderRightProps } from '../AutocompleteRenderRight';
6
+ export type AutocompleteInputRef = InputRef;
7
+ export type AutocompleteInputProps<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false> = Pick<InputProps, 'size' | 'value' | 'disabled' | 'required' | 'onChange' | 'fullWidth' | 'onKeyDown' | 'className' | 'bodyProps' | 'inputProps' | 'renderRight' | 'placeholder'> & Pick<AutocompleteRenderRightProps, 'onOpen' | 'onClear'> & {
8
+ open?: boolean;
9
+ openText?: string;
10
+ closeText?: string;
11
+ clearText?: string;
12
+ multiple?: MULTIPLE;
13
+ disableShowChevron?: boolean;
14
+ disableClearButton?: boolean;
15
+ ref?: Ref<AutocompleteInputRef>;
16
+ limitTags?: 'responsive' | number;
17
+ renderTag?: AutocompletePropRenderTag;
18
+ renderInput?: AutocompletePropRenderInput;
19
+ onRemoveTag?: AutocompleteDropdownOnChange<OPTION>;
20
+ getOptionKey?: AutocompletePropGetOptionKey<OPTION>;
21
+ renderMoreTag?: AutocompletePropRenderMoreTag<OPTION>;
22
+ getOptionLabel?: AutocompletePropGetOptionLabel<OPTION>;
23
+ getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION>;
24
+ selectedOptions?: AutocompletePropValue<OPTION, MULTIPLE>;
25
+ };
26
+ export type AutocompleteInputComponent = <OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteInputProps<OPTION, MULTIPLE>) => ReactElement | null;