@consta/uikit 4.24.0 → 4.26.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 (395) hide show
  1. package/ComboboxCanary/index.d.ts +1 -0
  2. package/ComboboxCanary/index.js +1 -0
  3. package/SelectCanary/index.d.ts +1 -0
  4. package/SelectCanary/index.js +1 -0
  5. package/UserSelectCanary/index.d.ts +1 -0
  6. package/UserSelectCanary/index.js +1 -0
  7. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteCanary.js +1 -1
  8. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteCanary.js.map +1 -1
  9. package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +8 -2
  10. package/__internal__/src/components/AutoCompleteCanary/types.d.ts +13 -2
  11. package/__internal__/src/components/AutoCompleteCanary/types.js.map +1 -1
  12. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.d.ts +6 -0
  13. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.js +1 -1
  14. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.js.map +1 -1
  15. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabs.css +1 -0
  16. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabs.d.ts +4 -0
  17. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabs.js +2 -0
  18. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabs.js.map +1 -0
  19. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.css +1 -0
  20. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.d.ts +4 -0
  21. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js +2 -0
  22. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js.map +1 -0
  23. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/index.d.ts +1 -0
  24. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/index.js +2 -0
  25. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/index.js.map +1 -0
  26. package/__internal__/src/components/BookmarkTabsCanary/helper.d.ts +281 -0
  27. package/__internal__/src/components/BookmarkTabsCanary/helper.js +2 -0
  28. package/__internal__/src/components/BookmarkTabsCanary/helper.js.map +1 -0
  29. package/__internal__/src/components/BookmarkTabsCanary/index.d.ts +2 -0
  30. package/__internal__/src/components/BookmarkTabsCanary/index.js +2 -0
  31. package/__internal__/src/components/BookmarkTabsCanary/index.js.map +1 -0
  32. package/__internal__/src/components/BookmarkTabsCanary/types.d.ts +88 -0
  33. package/__internal__/src/components/BookmarkTabsCanary/types.js +2 -0
  34. package/__internal__/src/components/BookmarkTabsCanary/types.js.map +1 -0
  35. package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.d.ts +24 -0
  36. package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.js +2 -0
  37. package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.js.map +1 -0
  38. package/__internal__/src/components/Button/Button.css +1 -1
  39. package/__internal__/src/components/Collapse/Collapse.css +1 -1
  40. package/__internal__/src/components/CollapseGroup/helpers.d.ts +3 -3
  41. package/__internal__/src/components/Combobox/helpers.d.ts +2 -2
  42. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.d.ts +4 -0
  43. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +2 -0
  44. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -0
  45. package/__internal__/src/components/ComboboxCanary/helpers.d.ts +186 -0
  46. package/__internal__/src/components/ComboboxCanary/helpers.js +2 -0
  47. package/__internal__/src/components/ComboboxCanary/helpers.js.map +1 -0
  48. package/__internal__/src/components/ComboboxCanary/index.d.ts +2 -0
  49. package/__internal__/src/components/ComboboxCanary/index.js +2 -0
  50. package/__internal__/src/components/ComboboxCanary/index.js.map +1 -0
  51. package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.d.ts +1 -1
  52. package/__internal__/src/components/ContextMenu/helpers.d.ts +2 -2
  53. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +3 -3
  54. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +4 -4
  55. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +3 -3
  56. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +4 -4
  57. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +3 -3
  58. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.d.ts +4 -4
  59. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +3 -3
  60. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +3 -3
  61. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.d.ts +4 -4
  62. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
  63. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
  64. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
  65. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
  66. package/__internal__/src/components/EventInterceptor/propsHandlers/useTextFieldEventsHandler.d.ts +4 -4
  67. package/__internal__/src/components/Select/helpers.d.ts +1 -1
  68. package/__internal__/src/components/SelectCanary/SelectCanary.d.ts +4 -0
  69. package/__internal__/src/components/SelectCanary/SelectCanary.js +2 -0
  70. package/__internal__/src/components/SelectCanary/SelectCanary.js.map +1 -0
  71. package/__internal__/src/components/SelectCanary/helpers.d.ts +159 -0
  72. package/__internal__/src/components/SelectCanary/helpers.js +2 -0
  73. package/__internal__/src/components/SelectCanary/helpers.js.map +1 -0
  74. package/__internal__/src/components/SelectCanary/index.d.ts +1 -0
  75. package/__internal__/src/components/SelectCanary/index.js +2 -0
  76. package/__internal__/src/components/SelectCanary/index.js.map +1 -0
  77. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
  78. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
  79. package/__internal__/src/components/SelectComponentsCanary/Select.css +1 -0
  80. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/SelectContainer.d.ts +20 -0
  81. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/SelectContainer.js +2 -0
  82. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/SelectContainer.js.map +1 -0
  83. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/index.d.ts +1 -0
  84. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/index.js +2 -0
  85. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/index.js.map +1 -0
  86. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.css +1 -0
  87. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.d.ts +15 -0
  88. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.js +2 -0
  89. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.js.map +1 -0
  90. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/index.d.ts +1 -0
  91. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/index.js +2 -0
  92. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/index.js.map +1 -0
  93. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.css +1 -0
  94. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.d.ts +41 -0
  95. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.js +2 -0
  96. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.js.map +1 -0
  97. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/index.d.ts +1 -0
  98. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/index.js +2 -0
  99. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/index.js.map +1 -0
  100. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/SelectGroupLabel.d.ts +10 -0
  101. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/SelectGroupLabel.js +2 -0
  102. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/SelectGroupLabel.js.map +1 -0
  103. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/index.d.ts +1 -0
  104. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/index.js +2 -0
  105. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/index.js.map +1 -0
  106. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.css +1 -0
  107. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.d.ts +17 -0
  108. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.js +2 -0
  109. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.js.map +1 -0
  110. package/__internal__/src/components/SelectComponentsCanary/SelectItem/index.d.ts +1 -0
  111. package/__internal__/src/components/SelectComponentsCanary/SelectItem/index.js +2 -0
  112. package/__internal__/src/components/SelectComponentsCanary/SelectItem/index.js.map +1 -0
  113. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectItemAll.css +1 -0
  114. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectSelectAll.d.ts +14 -0
  115. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectSelectAll.js +2 -0
  116. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectSelectAll.js.map +1 -0
  117. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/index.d.ts +1 -0
  118. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/index.js +2 -0
  119. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/index.js.map +1 -0
  120. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.css +1 -0
  121. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.d.ts +3 -0
  122. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.js +2 -0
  123. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.js.map +1 -0
  124. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/index.d.ts +1 -0
  125. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/index.js +2 -0
  126. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/index.js.map +1 -0
  127. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.css +1 -0
  128. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.d.ts +12 -0
  129. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.js +2 -0
  130. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.js.map +1 -0
  131. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/index.d.ts +1 -0
  132. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/index.js +2 -0
  133. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/index.js.map +1 -0
  134. package/__internal__/src/components/SelectComponentsCanary/cnSelect.d.ts +3 -0
  135. package/__internal__/src/components/SelectComponentsCanary/cnSelect.js +2 -0
  136. package/__internal__/src/components/SelectComponentsCanary/cnSelect.js.map +1 -0
  137. package/__internal__/src/components/SelectComponentsCanary/helpers.d.ts +4 -0
  138. package/__internal__/src/components/SelectComponentsCanary/helpers.js +2 -0
  139. package/__internal__/src/components/SelectComponentsCanary/helpers.js.map +1 -0
  140. package/__internal__/src/components/SelectComponentsCanary/types.d.ts +34 -0
  141. package/__internal__/src/components/SelectComponentsCanary/types.js +2 -0
  142. package/__internal__/src/components/SelectComponentsCanary/types.js.map +1 -0
  143. package/__internal__/src/components/SelectComponentsCanary/useSelect/helpers.d.ts +14 -0
  144. package/__internal__/src/components/SelectComponentsCanary/useSelect/helpers.js +2 -0
  145. package/__internal__/src/components/SelectComponentsCanary/useSelect/helpers.js.map +1 -0
  146. package/__internal__/src/components/SelectComponentsCanary/useSelect/index.d.ts +1 -0
  147. package/__internal__/src/components/SelectComponentsCanary/useSelect/index.js +2 -0
  148. package/__internal__/src/components/SelectComponentsCanary/useSelect/index.js.map +1 -0
  149. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.d.ts +84 -0
  150. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js +2 -0
  151. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js.map +1 -0
  152. package/__internal__/src/components/Slider/helper.d.ts +1 -1
  153. package/__internal__/src/components/SnackBar/helper.d.ts +1 -1
  154. package/__internal__/src/components/SpoilerCanary/SpoilerButton/SpoilerButton.js +1 -1
  155. package/__internal__/src/components/SpoilerCanary/SpoilerButton/SpoilerButton.js.map +1 -1
  156. package/__internal__/src/components/TagBase/TagBase.d.ts +1 -1
  157. package/__internal__/src/components/TextField/TextField.css +1 -1
  158. package/__internal__/src/components/TextField/TextField.js +1 -1
  159. package/__internal__/src/components/TextField/TextField.js.map +1 -1
  160. package/__internal__/src/components/UserSelect/helpers.d.ts +2 -2
  161. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.d.ts +5 -0
  162. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js +2 -0
  163. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js.map +1 -0
  164. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.css +1 -0
  165. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.d.ts +14 -0
  166. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.js +2 -0
  167. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.js.map +1 -0
  168. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.css +1 -0
  169. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.d.ts +15 -0
  170. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.js +2 -0
  171. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.js.map +1 -0
  172. package/__internal__/src/components/UserSelectCanary/helpers.d.ts +191 -0
  173. package/__internal__/src/components/UserSelectCanary/helpers.js +2 -0
  174. package/__internal__/src/components/UserSelectCanary/helpers.js.map +1 -0
  175. package/__internal__/src/components/UserSelectCanary/index.d.ts +1 -0
  176. package/__internal__/src/components/UserSelectCanary/index.js +2 -0
  177. package/__internal__/src/components/UserSelectCanary/index.js.map +1 -0
  178. package/__internal__/src/hooks/useFlag/useFlag.d.ts +1 -0
  179. package/__internal__/src/hooks/useFlag/useFlag.js +1 -1
  180. package/__internal__/src/hooks/useFlag/useFlag.js.map +1 -1
  181. package/__internal__/src/hooks/useForkRef/useForkRef.d.ts +2 -1
  182. package/__internal__/src/hooks/useForkRef/useForkRef.js +1 -1
  183. package/__internal__/src/hooks/useForkRef/useForkRef.js.map +1 -1
  184. package/__internal__/src/icons/IconAdd/IconAdd.d.ts +1 -2
  185. package/__internal__/src/icons/IconAddToComparison/IconAddToComparison.d.ts +1 -2
  186. package/__internal__/src/icons/IconAlert/IconAlert.d.ts +1 -2
  187. package/__internal__/src/icons/IconAlignBlocksLeft/IconAlignBlocksLeft.d.ts +1 -2
  188. package/__internal__/src/icons/IconAlignBlocksRight/IconAlignBlocksRight.d.ts +1 -2
  189. package/__internal__/src/icons/IconAlignCenter/IconAlignCenter.d.ts +1 -2
  190. package/__internal__/src/icons/IconAlignJustify/IconAlignJustify.d.ts +1 -2
  191. package/__internal__/src/icons/IconAlignLeft/IconAlignLeft.d.ts +1 -2
  192. package/__internal__/src/icons/IconAlignRight/IconAlignRight.d.ts +1 -2
  193. package/__internal__/src/icons/IconAllDone/IconAllDone.d.ts +1 -2
  194. package/__internal__/src/icons/IconArrowDown/IconArrowDown.d.ts +1 -2
  195. package/__internal__/src/icons/IconArrowLeft/IconArrowLeft.d.ts +1 -2
  196. package/__internal__/src/icons/IconArrowRight/IconArrowRight.d.ts +1 -2
  197. package/__internal__/src/icons/IconArrowUp/IconArrowUp.d.ts +1 -2
  198. package/__internal__/src/icons/IconArtBrush/IconArtBrush.d.ts +1 -2
  199. package/__internal__/src/icons/IconAttach/IconAttach.d.ts +1 -2
  200. package/__internal__/src/icons/IconAxesRotate/IconAxesRotate.d.ts +1 -2
  201. package/__internal__/src/icons/IconBackward/IconBackward.d.ts +1 -2
  202. package/__internal__/src/icons/IconBag/IconBag.d.ts +1 -2
  203. package/__internal__/src/icons/IconBarrier/IconBarrier.d.ts +1 -2
  204. package/__internal__/src/icons/IconBento/IconBento.d.ts +1 -2
  205. package/__internal__/src/icons/IconBit/IconBit.d.ts +1 -2
  206. package/__internal__/src/icons/IconBold/IconBold.d.ts +1 -2
  207. package/__internal__/src/icons/IconBook/IconBook.d.ts +1 -2
  208. package/__internal__/src/icons/IconBookmarkFilled/IconBookmarkFilled.d.ts +1 -2
  209. package/__internal__/src/icons/IconBookmarkStroked/IconBookmarkStroked.d.ts +1 -2
  210. package/__internal__/src/icons/IconCalculator/IconCalculator.d.ts +1 -2
  211. package/__internal__/src/icons/IconCalendar/IconCalendar.d.ts +1 -2
  212. package/__internal__/src/icons/IconCamera/IconCamera.d.ts +1 -2
  213. package/__internal__/src/icons/IconCancel/IconCancel.d.ts +1 -2
  214. package/__internal__/src/icons/IconCards/IconCards.d.ts +1 -2
  215. package/__internal__/src/icons/IconChatFilled/IconChatFilled.d.ts +1 -2
  216. package/__internal__/src/icons/IconChatStroked/IconChatStroked.d.ts +1 -2
  217. package/__internal__/src/icons/IconCheck/IconCheck.d.ts +1 -2
  218. package/__internal__/src/icons/IconClose/IconClose.d.ts +1 -2
  219. package/__internal__/src/icons/IconCollapse/IconCollapse.d.ts +1 -2
  220. package/__internal__/src/icons/IconColorFill/IconColorFill.d.ts +1 -2
  221. package/__internal__/src/icons/IconColorText/IconColorText.d.ts +1 -2
  222. package/__internal__/src/icons/IconColumns/IconColumns.d.ts +1 -2
  223. package/__internal__/src/icons/IconCommentFilled/IconCommentFilled.d.ts +1 -2
  224. package/__internal__/src/icons/IconCommentStroked/IconCommentStroked.d.ts +1 -2
  225. package/__internal__/src/icons/IconConnection/IconConnection.d.ts +1 -2
  226. package/__internal__/src/icons/IconCopy/IconCopy.d.ts +1 -2
  227. package/__internal__/src/icons/IconCrown/IconCrown.d.ts +1 -2
  228. package/__internal__/src/icons/IconCursorMouse/IconCursorMouse.d.ts +1 -2
  229. package/__internal__/src/icons/IconDataNull/IconDataNull.d.ts +1 -2
  230. package/__internal__/src/icons/IconDiamond/IconDiamond.d.ts +1 -2
  231. package/__internal__/src/icons/IconDinosaur/IconDinosaur.d.ts +1 -2
  232. package/__internal__/src/icons/IconDisconnection/IconDisconnection.d.ts +1 -2
  233. package/__internal__/src/icons/IconDocAdd/IconDocAdd.d.ts +1 -2
  234. package/__internal__/src/icons/IconDocBlank/IconDocBlank.d.ts +1 -2
  235. package/__internal__/src/icons/IconDocDelete/IconDocDelete.d.ts +1 -2
  236. package/__internal__/src/icons/IconDocExport/IconDocExport.d.ts +1 -2
  237. package/__internal__/src/icons/IconDocFilled/IconDocFilled.d.ts +1 -2
  238. package/__internal__/src/icons/IconDown/IconDown.d.ts +1 -2
  239. package/__internal__/src/icons/IconDownload/IconDownload.d.ts +1 -2
  240. package/__internal__/src/icons/IconDrag/IconDrag.d.ts +1 -2
  241. package/__internal__/src/icons/IconDraggable/IconDraggable.d.ts +1 -2
  242. package/__internal__/src/icons/IconDrillingPartLeftFilled/IconDrillingPartLeftFilled.d.ts +1 -2
  243. package/__internal__/src/icons/IconDrillingPartLeftStroked/IconDrillingPartLeftStroked.d.ts +1 -2
  244. package/__internal__/src/icons/IconDrillingPartRightFilled/IconDrillingPartRightFilled.d.ts +1 -2
  245. package/__internal__/src/icons/IconDrillingPartRightStroked/IconDrillingPartRightStroked.d.ts +1 -2
  246. package/__internal__/src/icons/IconDrillingRig/IconDrillingRig.d.ts +1 -2
  247. package/__internal__/src/icons/IconDrop/IconDrop.d.ts +1 -2
  248. package/__internal__/src/icons/IconEdit/IconEdit.d.ts +1 -2
  249. package/__internal__/src/icons/IconExit/IconExit.d.ts +1 -2
  250. package/__internal__/src/icons/IconExpand/IconExpand.d.ts +1 -2
  251. package/__internal__/src/icons/IconEye/IconEye.d.ts +1 -2
  252. package/__internal__/src/icons/IconEyeClose/IconEyeClose.d.ts +1 -2
  253. package/__internal__/src/icons/IconFavorite/IconFavorite.d.ts +1 -2
  254. package/__internal__/src/icons/IconFilter/IconFilter.d.ts +1 -2
  255. package/__internal__/src/icons/IconFishboneFilled/IconFishboneFilled.d.ts +1 -2
  256. package/__internal__/src/icons/IconFishboneStroked/IconFishboneStroked.d.ts +1 -2
  257. package/__internal__/src/icons/IconFitToDefault/IconFitToDefault.d.ts +1 -2
  258. package/__internal__/src/icons/IconFlagFilled/IconFlagFilled.d.ts +1 -2
  259. package/__internal__/src/icons/IconFlagStroked/IconFlagStroked.d.ts +1 -2
  260. package/__internal__/src/icons/IconFolders/IconFolders.d.ts +1 -2
  261. package/__internal__/src/icons/IconForward/IconForward.d.ts +1 -2
  262. package/__internal__/src/icons/IconFunnel/IconFunnel.d.ts +1 -2
  263. package/__internal__/src/icons/IconGas/IconGas.d.ts +1 -2
  264. package/__internal__/src/icons/IconGeo/IconGeo.d.ts +1 -2
  265. package/__internal__/src/icons/IconGradients/IconGradients.d.ts +1 -2
  266. package/__internal__/src/icons/IconGrouping/IconGrouping.d.ts +1 -2
  267. package/__internal__/src/icons/IconHamburger/IconHamburger.d.ts +1 -2
  268. package/__internal__/src/icons/IconHand/IconHand.d.ts +1 -2
  269. package/__internal__/src/icons/IconHealth/IconHealth.d.ts +1 -2
  270. package/__internal__/src/icons/IconHome/IconHome.d.ts +1 -2
  271. package/__internal__/src/icons/IconInComparison/IconInComparison.d.ts +1 -2
  272. package/__internal__/src/icons/IconIncident/IconIncident.d.ts +1 -2
  273. package/__internal__/src/icons/IconInfo/IconInfo.d.ts +1 -2
  274. package/__internal__/src/icons/IconIntroduction/IconIntroduction.d.ts +1 -2
  275. package/__internal__/src/icons/IconIpad/IconIpad.d.ts +1 -2
  276. package/__internal__/src/icons/IconItalic/IconItalic.d.ts +1 -2
  277. package/__internal__/src/icons/IconKebab/IconKebab.d.ts +1 -2
  278. package/__internal__/src/icons/IconKernFilled/IconKernFilled.d.ts +1 -2
  279. package/__internal__/src/icons/IconKernStroked/IconKernStroked.d.ts +1 -2
  280. package/__internal__/src/icons/IconLaptop/IconLaptop.d.ts +1 -2
  281. package/__internal__/src/icons/IconLayers/IconLayers.d.ts +1 -2
  282. package/__internal__/src/icons/IconLeaf/IconLeaf.d.ts +1 -2
  283. package/__internal__/src/icons/IconLightningBolt/IconLightningBolt.d.ts +1 -2
  284. package/__internal__/src/icons/IconLineAndBarChart/IconLineAndBarChart.d.ts +1 -2
  285. package/__internal__/src/icons/IconLink/IconLink.d.ts +1 -2
  286. package/__internal__/src/icons/IconList/IconList.d.ts +1 -2
  287. package/__internal__/src/icons/IconListNumbered/IconListNumbered.d.ts +1 -2
  288. package/__internal__/src/icons/IconLithologyFilled/IconLithologyFilled.d.ts +1 -2
  289. package/__internal__/src/icons/IconLithologyStroked/IconLithologyStroked.d.ts +1 -2
  290. package/__internal__/src/icons/IconLock/IconLock.d.ts +1 -2
  291. package/__internal__/src/icons/IconLogicalElement/IconLogicalElement.d.ts +1 -2
  292. package/__internal__/src/icons/IconMBU/IconMBU.d.ts +1 -2
  293. package/__internal__/src/icons/IconMGRP/IconMGRP.d.ts +1 -2
  294. package/__internal__/src/icons/IconMLSP/IconMLSP.d.ts +1 -2
  295. package/__internal__/src/icons/IconMMP/IconMMP.d.ts +1 -2
  296. package/__internal__/src/icons/IconMail/IconMail.d.ts +1 -2
  297. package/__internal__/src/icons/IconMap/IconMap.d.ts +1 -2
  298. package/__internal__/src/icons/IconMaxHeight/IconMaxHeight.d.ts +1 -2
  299. package/__internal__/src/icons/IconMaxWidth/IconMaxWidth.d.ts +1 -2
  300. package/__internal__/src/icons/IconMeatball/IconMeatball.d.ts +1 -2
  301. package/__internal__/src/icons/IconMic/IconMic.d.ts +1 -2
  302. package/__internal__/src/icons/IconMolecules/IconMolecules.d.ts +1 -2
  303. package/__internal__/src/icons/IconMoon/IconMoon.d.ts +1 -2
  304. package/__internal__/src/icons/IconNodeEnd/IconNodeEnd.d.ts +1 -2
  305. package/__internal__/src/icons/IconNodeStart/IconNodeStart.d.ts +1 -2
  306. package/__internal__/src/icons/IconNodeStep/IconNodeStep.d.ts +1 -2
  307. package/__internal__/src/icons/IconNodes/IconNodes.d.ts +1 -2
  308. package/__internal__/src/icons/IconOilBarrel/IconOilBarrel.d.ts +1 -2
  309. package/__internal__/src/icons/IconOpenInNew/IconOpenInNew.d.ts +1 -2
  310. package/__internal__/src/icons/IconOperators/IconOperators.d.ts +1 -2
  311. package/__internal__/src/icons/IconPanelBottom/IconPanelBottom.d.ts +1 -2
  312. package/__internal__/src/icons/IconPanelLeft/IconPanelLeft.d.ts +1 -2
  313. package/__internal__/src/icons/IconPanelRight/IconPanelRight.d.ts +1 -2
  314. package/__internal__/src/icons/IconPanelTop/IconPanelTop.d.ts +1 -2
  315. package/__internal__/src/icons/IconPaste/IconPaste.d.ts +1 -2
  316. package/__internal__/src/icons/IconPause/IconPause.d.ts +1 -2
  317. package/__internal__/src/icons/IconPhone/IconPhone.d.ts +1 -2
  318. package/__internal__/src/icons/IconPhoto/IconPhoto.d.ts +1 -2
  319. package/__internal__/src/icons/IconPicture/IconPicture.d.ts +1 -2
  320. package/__internal__/src/icons/IconPlay/IconPlay.d.ts +1 -2
  321. package/__internal__/src/icons/IconPressureFilled/IconPressureFilled.d.ts +1 -2
  322. package/__internal__/src/icons/IconPressureStroked/IconPressureStroked.d.ts +1 -2
  323. package/__internal__/src/icons/IconPriceLabel/IconPriceLabel.d.ts +1 -2
  324. package/__internal__/src/icons/IconProcessing/IconProcessing.d.ts +1 -2
  325. package/__internal__/src/icons/IconQuestion/IconQuestion.d.ts +1 -2
  326. package/__internal__/src/icons/IconQuote/IconQuote.d.ts +1 -2
  327. package/__internal__/src/icons/IconRUO/IconRUO.d.ts +1 -2
  328. package/__internal__/src/icons/IconRUS/IconRUS.d.ts +1 -2
  329. package/__internal__/src/icons/IconRecord/IconRecord.d.ts +1 -2
  330. package/__internal__/src/icons/IconRemove/IconRemove.d.ts +1 -2
  331. package/__internal__/src/icons/IconRemoveFromComparison/IconRemoveFromComparison.d.ts +1 -2
  332. package/__internal__/src/icons/IconReply/IconReply.d.ts +1 -2
  333. package/__internal__/src/icons/IconResize/IconResize.d.ts +1 -2
  334. package/__internal__/src/icons/IconRestart/IconRestart.d.ts +1 -2
  335. package/__internal__/src/icons/IconRevert/IconRevert.d.ts +1 -2
  336. package/__internal__/src/icons/IconRing/IconRing.d.ts +1 -2
  337. package/__internal__/src/icons/IconRouble/IconRouble.d.ts +1 -2
  338. package/__internal__/src/icons/IconRuler/IconRuler.d.ts +1 -2
  339. package/__internal__/src/icons/IconSave/IconSave.d.ts +1 -2
  340. package/__internal__/src/icons/IconScreen/IconScreen.d.ts +1 -2
  341. package/__internal__/src/icons/IconSearch/IconSearch.d.ts +1 -2
  342. package/__internal__/src/icons/IconSelect/IconSelect.d.ts +1 -2
  343. package/__internal__/src/icons/IconSelectOpen/IconSelectOpen.d.ts +1 -2
  344. package/__internal__/src/icons/IconSendMessage/IconSendMessage.d.ts +1 -2
  345. package/__internal__/src/icons/IconSettings/IconSettings.d.ts +1 -2
  346. package/__internal__/src/icons/IconShape/IconShape.d.ts +1 -2
  347. package/__internal__/src/icons/IconShuffle/IconShuffle.d.ts +1 -2
  348. package/__internal__/src/icons/IconSmile/IconSmile.d.ts +1 -2
  349. package/__internal__/src/icons/IconSnowflake/IconSnowflake.d.ts +1 -2
  350. package/__internal__/src/icons/IconSortDown/IconSortDown.d.ts +1 -2
  351. package/__internal__/src/icons/IconSortDownCenter/IconSortDownCenter.d.ts +1 -2
  352. package/__internal__/src/icons/IconSortUp/IconSortUp.d.ts +1 -2
  353. package/__internal__/src/icons/IconSortUpCenter/IconSortUpCenter.d.ts +1 -2
  354. package/__internal__/src/icons/IconSpeed/IconSpeed.d.ts +1 -2
  355. package/__internal__/src/icons/IconStop/IconStop.d.ts +1 -2
  356. package/__internal__/src/icons/IconStorage/IconStorage.d.ts +1 -2
  357. package/__internal__/src/icons/IconStrikethrough/IconStrikethrough.d.ts +1 -2
  358. package/__internal__/src/icons/IconString/IconString.d.ts +1 -2
  359. package/__internal__/src/icons/IconSun/IconSun.d.ts +1 -2
  360. package/__internal__/src/icons/IconTable/IconTable.d.ts +1 -2
  361. package/__internal__/src/icons/IconTable2/IconTable2.d.ts +1 -2
  362. package/__internal__/src/icons/IconTarget/IconTarget.d.ts +1 -2
  363. package/__internal__/src/icons/IconTeam/IconTeam.d.ts +1 -2
  364. package/__internal__/src/icons/IconTechResponse/IconTechResponse.d.ts +1 -2
  365. package/__internal__/src/icons/IconTest/IconTest.d.ts +1 -2
  366. package/__internal__/src/icons/IconThumbUp/IconThumbUp.d.ts +1 -2
  367. package/__internal__/src/icons/IconTie/IconTie.d.ts +1 -2
  368. package/__internal__/src/icons/IconTop/IconTop.d.ts +1 -2
  369. package/__internal__/src/icons/IconTrajectory/IconTrajectory.d.ts +1 -2
  370. package/__internal__/src/icons/IconTrash/IconTrash.d.ts +1 -2
  371. package/__internal__/src/icons/IconType/IconType.d.ts +1 -2
  372. package/__internal__/src/icons/IconUnderline/IconUnderline.d.ts +1 -2
  373. package/__internal__/src/icons/IconUnlock/IconUnlock.d.ts +1 -2
  374. package/__internal__/src/icons/IconUnsort/IconUnsort.d.ts +1 -2
  375. package/__internal__/src/icons/IconUnsortCenter/IconUnsortCenter.d.ts +1 -2
  376. package/__internal__/src/icons/IconUpload/IconUpload.d.ts +1 -2
  377. package/__internal__/src/icons/IconUser/IconUser.d.ts +1 -2
  378. package/__internal__/src/icons/IconVZD/IconVZD.d.ts +1 -2
  379. package/__internal__/src/icons/IconVideo/IconVideo.d.ts +1 -2
  380. package/__internal__/src/icons/IconWarning/IconWarning.d.ts +1 -2
  381. package/__internal__/src/icons/IconWatch/IconWatch.d.ts +1 -2
  382. package/__internal__/src/icons/IconWellOpen/IconWellOpen.d.ts +1 -2
  383. package/__internal__/src/icons/IconWellPipe/IconWellPipe.d.ts +1 -2
  384. package/__internal__/src/icons/IconWideScreen/IconWideScreen.d.ts +1 -2
  385. package/__internal__/src/icons/IconWorldFilled/IconWorldFilled.d.ts +1 -2
  386. package/__internal__/src/icons/IconWorldStroked/IconWorldStroked.d.ts +1 -2
  387. package/__internal__/src/icons/IconWrench/IconWrench.d.ts +1 -2
  388. package/__internal__/src/icons/IconYandexDzen/IconYandexDzen.d.ts +1 -2
  389. package/__internal__/src/icons/IconYoutube/IconYoutube.d.ts +1 -2
  390. package/__internal__/src/icons/createIcon/createIcon.d.ts +1 -2
  391. package/__internal__/src/icons/createIcon/createIcon.js +1 -1
  392. package/__internal__/src/icons/createIcon/createIcon.js.map +1 -1
  393. package/__internal__/src/utils/fabricIndex.js +1 -1
  394. package/__internal__/src/utils/fabricIndex.js.map +1 -1
  395. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/ComboboxCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/ComboboxCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/SelectCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/SelectCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/UserSelectCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/UserSelectCanary";
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{useRef}from"react";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{TextField}from"../TextField/TextField";import{useForkRef}from"../../hooks/useForkRef";import{cnCanary}from"../../utils/bem";import{withDefaultGetters}from"./helpers";import{useAutoComplete}from"./useAutoComplete";var cnAutoComplete=cnCanary("AutoComplete"),AutoCompleteRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=withDefaultGetters(a),g=f.items,h=f.groups,i=void 0===h?[]:h,j=f.disabled,k=f.getItemLabel,l=f.getItemKey,m=f.isLoading,n=f.getItemGroupKey,o=f.getGroupKey,p=f.getGroupLabel,q=f.onBlur,r=f.inputRef,s=f.onFocus,t=f.dropdownRef,u=void 0===t?c:t,v=f.dropdownClassName,w=f.dropdownForm,x=void 0===w?"default":w,y=f.value,z=f.form,A=void 0===z?defaultPropForm:z,B=f.view,C=void 0===B?defaultPropView:B,D=f.size,E=void 0===D?defaultPropSize:D,F=f.onChange,G=f.inputContainerRef,H=f.style,I=f.renderItem,J=f.searchFunction,K=f.id,L=f.name,M=f.className,N=_objectWithoutProperties(f,_excluded),O=function(a){var b=a.e,c=a.value,d=_objectSpread({},b),e=c?k(c):c;null===F||void 0===F?void 0:F({e:d,value:e,id:K,name:L})},P=useAutoComplete({items:g,groups:i,onChange:function(a){var b=a.e,c=a.value;return O({e:b,value:Array.isArray(c)?c[0]:c})},dropdownRef:u,controlRef:d,disabled:j,searchValue:null!==y&&void 0!==y?y:"",getItemLabel:k,getItemKey:l,getItemGroupKey:n,getGroupKey:o,onBlur:q,onFocus:s,searchFunction:J}),Q=P.getOptionProps,R=P.isOpen,S=P.getKeyProps,T=P.visibleItems,U=P.handleInputFocus,V=P.handleInputBlur,W=P.inputRef;return React.createElement(React.Fragment,null,React.createElement(TextField,Object.assign({},S(),{form:A,view:C,id:K,className:cnAutoComplete(null,[M]),name:L,disabled:j,ref:useForkRef([d,b]),inputRef:useForkRef([r,W]),onBlur:V,inputContainerRef:useForkRef([e,G]),onFocus:U,onChange:F,value:y,style:H,size:E},N)),React.createElement(SelectDropdown,{isOpen:R,size:E,controlRef:e,getOptionProps:Q,dropdownRef:u,form:x,className:cnAutoComplete("List",[v]),renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:k(b),active:c,hovered:d,multiple:!1,disabled:j,size:E,indent:"round"===x?"increased":"normal",onClick:e,onMouseEnter:f})},getGroupLabel:p,visibleItems:T,isLoading:m,hasItems:0!==g.length,style:"number"==typeof(null===H||void 0===H?void 0:H.zIndex)?{zIndex:H.zIndex+1}:void 0}))};export var AutoComplete=React.forwardRef(AutoCompleteRender);export*from"./types";
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className","virtualScroll","onScrollToBottom","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{useCallback,useRef}from"react";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{TextField}from"../TextField/TextField";import{useForkRef}from"../../hooks/useForkRef";import{useMutableRef}from"../../hooks/useMutableRef";import{cnCanary}from"../../utils/bem";import{withDefaultGetters}from"./helpers";import{useAutoComplete}from"./useAutoComplete";var cnAutoComplete=cnCanary("AutoComplete"),AutoCompleteRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=withDefaultGetters(a),g=f.items,h=f.groups,i=void 0===h?[]:h,j=f.disabled,k=f.getItemLabel,l=f.getItemKey,m=f.isLoading,n=f.getItemGroupKey,o=f.getGroupKey,p=f.getGroupLabel,q=f.onBlur,r=f.inputRef,s=f.onFocus,t=f.dropdownRef,u=void 0===t?c:t,v=f.dropdownClassName,w=f.dropdownForm,x=void 0===w?"default":w,y=f.value,z=f.form,A=void 0===z?defaultPropForm:z,B=f.view,C=void 0===B?defaultPropView:B,D=f.size,E=void 0===D?defaultPropSize:D,F=f.onChange,G=f.inputContainerRef,H=f.style,I=f.renderItem,J=f.searchFunction,K=f.id,L=f.name,M=f.className,N=f.virtualScroll,O=f.onScrollToBottom,P=f.onDropdownOpen,Q=f.dropdownOpen,R=f.ignoreOutsideClicksRefs,S=_objectWithoutProperties(f,_excluded),T=useMutableRef(F),U=useCallback(function(a){var b,c=a.e,d=a.value,e=_objectSpread({},c),f=d?k(d):d;null===(b=T.current)||void 0===b?void 0:b.call(T,f,{e:e,id:null===K||void 0===K?void 0:K.toString(),name:L})},[K,L]),V=useCallback(function(a){var b,c=a.value,d=a.id,f=a.name,g=a.e;null===(b=T.current)||void 0===b?void 0:b.call(T,c,{id:null===d||void 0===d?void 0:d.toString(),name:f,e:g})},[]),W=useAutoComplete({items:g,groups:i,onChange:U,dropdownRef:u,controlRef:d,disabled:j,searchValue:null!==y&&void 0!==y?y:"",getItemLabel:k,getItemKey:l,getItemGroupKey:n,getGroupKey:o,onBlur:q,onFocus:s,searchFunction:J,isLoading:m,onDropdownOpen:P,dropdownOpen:Q,ignoreOutsideClicksRefs:R}),X=W.getOptionProps,Y=W.isOpen,Z=W.getKeyProps,$=W.visibleItems,_=W.handleInputFocus,aa=W.handleInputBlur,ba=W.inputRef,ca=W.optionsRefs;return React.createElement(React.Fragment,null,React.createElement(TextField,Object.assign({},Z(),{form:A,view:C,id:K,className:cnAutoComplete(null,[M]),name:L,disabled:j,ref:useForkRef([d,b]),inputRef:useForkRef([r,ba]),onBlur:aa,inputContainerRef:useForkRef([e,G]),onClick:_,onChange:V,value:y,style:H,size:E,width:"full"},S)),React.createElement(SelectDropdown,{isOpen:Y,size:E,controlRef:e,getOptionProps:X,dropdownRef:u,form:x,className:cnAutoComplete("List",[v]),renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(SelectItem,{label:k(b),active:c,hovered:d,multiple:!1,disabled:j,size:E,indent:"round"===x?"increased":"normal",onClick:e,onMouseEnter:f,ref:g})},getGroupLabel:p,visibleItems:$,isLoading:m,hasItems:0!==g.length,itemsRefs:ca,virtualScroll:!0,style:"number"==typeof(null===H||void 0===H?void 0:H.zIndex)?{zIndex:H.zIndex+1}:void 0,onScrollToBottom:O}))};export var AutoComplete=React.forwardRef(AutoCompleteRender);export*from"./types";
2
2
  //# sourceMappingURL=AutoCompleteCanary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteCanary.js","names":["React","useRef","SelectDropdown","SelectItem","defaultPropForm","defaultPropSize","defaultPropView","TextField","useForkRef","cnCanary","withDefaultGetters","useAutoComplete","cnAutoComplete","AutoCompleteRender","props","ref","defaultDropdownRef","controlRef","containerRef","items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className","otherProps","handleSelectChange","e","copyEvent","newValue","Array","isArray","searchValue","getOptionProps","isOpen","getKeyProps","visibleItems","handleInputFocus","handleInputBlur","inputControlRef","renderItemDefault","item","active","hovered","onClick","onMouseEnter","length","zIndex","AutoComplete","forwardRef"],"sources":["../../../../../src/components/AutoCompleteCanary/AutoCompleteCanary.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { PropRenderItem } from '##/components/Select';\nimport { SelectDropdown } from '##/components/SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponents/SelectItem/SelectItem';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { TextField } from '##/components/TextField/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnCanary } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helpers';\nimport {\n AutoCompleteComponent,\n AutoCompleteGroupDefault,\n AutoCompleteItemDefault,\n AutoCompleteProps,\n} from './types';\nimport { useAutoComplete } from './useAutoComplete';\n\nconst cnAutoComplete = cnCanary('AutoComplete');\n\nconst AutoCompleteRender = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const {\n items,\n groups = [],\n disabled,\n getItemLabel,\n getItemKey,\n isLoading,\n getItemGroupKey,\n getGroupKey,\n getGroupLabel,\n onBlur,\n inputRef,\n onFocus,\n dropdownRef = defaultDropdownRef,\n dropdownClassName,\n dropdownForm = 'default',\n value,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n onChange,\n inputContainerRef,\n style,\n renderItem,\n searchFunction,\n id,\n name,\n className,\n ...otherProps\n } = withDefaultGetters(props);\n\n const handleSelectChange = ({\n e,\n value,\n }: {\n value: ITEM | null;\n e: React.SyntheticEvent;\n }) => {\n const copyEvent = { ...e } as React.KeyboardEvent;\n const newValue = (value ? getItemLabel(value) : value) as string;\n onChange?.({ e: copyEvent, value: newValue, id, name });\n };\n\n const {\n getOptionProps,\n isOpen,\n getKeyProps,\n visibleItems,\n handleInputFocus,\n handleInputBlur,\n inputRef: inputControlRef,\n } = useAutoComplete({\n items,\n groups,\n onChange: ({ e, value }) =>\n handleSelectChange({ e, value: Array.isArray(value) ? value[0] : value }),\n dropdownRef,\n controlRef,\n disabled,\n searchValue: value ?? '',\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getGroupKey,\n onBlur,\n onFocus,\n searchFunction,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n disabled={disabled}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n />\n );\n };\n\n return (\n <>\n <TextField\n {...getKeyProps()}\n form={form}\n view={view}\n id={id}\n className={cnAutoComplete(null, [className])}\n name={name}\n disabled={disabled}\n ref={useForkRef([controlRef, ref])}\n inputRef={useForkRef([inputRef, inputControlRef])}\n onBlur={handleInputBlur}\n inputContainerRef={useForkRef([containerRef, inputContainerRef])}\n onFocus={handleInputFocus}\n onChange={onChange}\n value={value}\n style={style}\n size={size}\n {...otherProps}\n />\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={containerRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={cnAutoComplete('List', [dropdownClassName])}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n isLoading={isLoading}\n hasItems={items.length !== 0}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const AutoComplete = React.forwardRef(\n AutoCompleteRender,\n) as AutoCompleteComponent;\n\nexport * from './types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"AutoCompleteCanary.js","names":["React","useCallback","useRef","defaultPropForm","defaultPropSize","defaultPropView","SelectDropdown","SelectItem","TextField","useForkRef","useMutableRef","cnCanary","withDefaultGetters","useAutoComplete","cnAutoComplete","AutoCompleteRender","props","ref","defaultDropdownRef","controlRef","containerRef","items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className","virtualScroll","onScrollToBottom","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","otherProps","onChangeRef","handleSelectChange","e","copyEvent","newValue","current","toString","handleInputChange","searchValue","getOptionProps","isOpen","getKeyProps","visibleItems","handleInputFocus","handleInputBlur","inputControlRef","optionsRefs","renderItemDefault","item","active","hovered","onClick","onMouseEnter","length","zIndex","AutoComplete","forwardRef"],"sources":["../../../../../src/components/AutoCompleteCanary/AutoCompleteCanary.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\n\nimport { PropRenderItem } from '##/components/SelectCanary';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport {\n TextField,\n TextFieldPropOnChange,\n} from '##/components/TextField/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { cnCanary } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helpers';\nimport {\n AutoCompleteComponent,\n AutoCompleteGroupDefault,\n AutoCompleteItemDefault,\n AutoCompleteProps,\n} from './types';\nimport { useAutoComplete } from './useAutoComplete';\n\nconst cnAutoComplete = cnCanary('AutoComplete');\n\nconst AutoCompleteRender = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const {\n items,\n groups = [],\n disabled,\n getItemLabel,\n getItemKey,\n isLoading,\n getItemGroupKey,\n getGroupKey,\n getGroupLabel,\n onBlur,\n inputRef,\n onFocus,\n dropdownRef = defaultDropdownRef,\n dropdownClassName,\n dropdownForm = 'default',\n value,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n onChange,\n inputContainerRef,\n style,\n renderItem,\n searchFunction,\n id,\n name,\n className,\n virtualScroll,\n onScrollToBottom,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = withDefaultGetters(props);\n\n const onChangeRef = useMutableRef(onChange);\n\n const handleSelectChange = useCallback(\n ({ e, value }: { value: ITEM | null; e: React.SyntheticEvent }) => {\n const copyEvent = { ...e } as React.KeyboardEvent;\n const newValue = (value ? getItemLabel(value) : value) as string;\n onChangeRef.current?.(newValue, {\n e: copyEvent,\n id: id?.toString(),\n name,\n });\n },\n [id, name],\n );\n\n const handleInputChange: TextFieldPropOnChange = useCallback(\n ({ value, id, name, e }) => {\n onChangeRef.current?.(value, { id: id?.toString(), name, e });\n },\n [],\n );\n\n const {\n getOptionProps,\n isOpen,\n getKeyProps,\n visibleItems,\n handleInputFocus,\n handleInputBlur,\n inputRef: inputControlRef,\n optionsRefs,\n } = useAutoComplete({\n items,\n groups,\n onChange: handleSelectChange,\n dropdownRef,\n controlRef,\n disabled,\n searchValue: value ?? '',\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getGroupKey,\n onBlur,\n onFocus,\n searchFunction,\n isLoading,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n disabled={disabled}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={ref}\n />\n );\n };\n\n return (\n <>\n <TextField\n {...getKeyProps()}\n form={form}\n view={view}\n id={id}\n className={cnAutoComplete(null, [className])}\n name={name}\n disabled={disabled}\n ref={useForkRef([controlRef, ref])}\n inputRef={useForkRef([inputRef, inputControlRef])}\n onBlur={handleInputBlur}\n inputContainerRef={useForkRef([containerRef, inputContainerRef])}\n onClick={handleInputFocus}\n onChange={handleInputChange}\n value={value}\n style={style}\n size={size}\n width=\"full\"\n {...otherProps}\n />\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={containerRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={cnAutoComplete('List', [dropdownClassName])}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n isLoading={isLoading}\n hasItems={items.length !== 0}\n itemsRefs={optionsRefs}\n virtualScroll\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n onScrollToBottom={onScrollToBottom}\n />\n </>\n );\n};\n\nexport const AutoComplete = React.forwardRef(\n AutoCompleteRender,\n) as AutoCompleteComponent;\n\nexport * from './types';\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare const defaultGetGroupLabel: AutoCompletePropGetGroupLabel<AutoCom
8
8
  export declare function withDefaultGetters<TYPE extends string, ITEM = AutoCompleteItemDefault, GROUP = AutoCompleteGroupDefault>(props: AutoCompleteProps<TYPE, ITEM, GROUP>): {
9
9
  items: ITEM[];
10
10
  groups?: GROUP[] | undefined;
11
- renderItem?: import("../Select").PropRenderItem<ITEM> | undefined;
11
+ renderItem?: import("../SelectCanary").PropRenderItem<ITEM> | undefined;
12
12
  dropdownClassName?: string | undefined;
13
13
  dropdownForm?: import("./types").AutoCompletePropDropdownForm | undefined;
14
14
  isLoading?: boolean | undefined;
@@ -19,7 +19,13 @@ export declare function withDefaultGetters<TYPE extends string, ITEM = AutoCompl
19
19
  getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM> | undefined;
20
20
  getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP> | undefined;
21
21
  getGroupKey?: AutoCompletePropGetGroupId<GROUP> | undefined;
22
- } & Omit<import("../TextField").TextFieldProps<TYPE>, "step" | "max" | "min" | "incrementButtons"> & (ITEM extends {
22
+ onChange?: import("./types").AutoCompletePropOnChange | undefined;
23
+ virtualScroll?: boolean | undefined;
24
+ onScrollToBottom?: (() => void) | undefined;
25
+ onDropdownOpen?: ((isOpen: boolean) => void) | undefined;
26
+ dropdownOpen?: boolean | undefined;
27
+ ignoreOutsideClicksRefs?: readonly import("react").RefObject<HTMLElement>[] | undefined;
28
+ } & Omit<import("../TextField").TextFieldProps<TYPE>, "onChange" | "step" | "max" | "min" | "width" | "incrementButtons"> & (ITEM extends {
23
29
  label: string;
24
30
  } ? {} : {
25
31
  getItemLabel: AutoCompletePropGetItemLabel<ITEM>;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PropRenderItem } from "../Select";
2
+ import { PropRenderItem } from "../SelectCanary";
3
3
  import { TextFieldProps } from "../TextField";
4
4
  export declare type AutoCompleteItemDefault = {
5
5
  id: string | number;
@@ -17,6 +17,11 @@ export declare type AutoCompletePropGetItemGroupId<ITEM> = (item: ITEM) => numbe
17
17
  export declare type AutoCompletePropGetGroupLabel<GROUP> = (group: GROUP) => string;
18
18
  export declare type AutoCompletePropGetGroupId<GROUP> = (group: GROUP) => number | string;
19
19
  export declare type AutoCompletePropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;
20
+ export declare type AutoCompletePropOnChange = (value: string | null, props: {
21
+ e: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;
22
+ id?: string;
23
+ name?: string;
24
+ }) => void;
20
25
  export declare type AutoCompleteProps<TYPE extends string, ITEM = AutoCompleteItemDefault, GROUP = AutoCompleteGroupDefault> = {
21
26
  items: ITEM[];
22
27
  groups?: GROUP[];
@@ -31,7 +36,13 @@ export declare type AutoCompleteProps<TYPE extends string, ITEM = AutoCompleteIt
31
36
  getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM>;
32
37
  getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP>;
33
38
  getGroupKey?: AutoCompletePropGetGroupId<GROUP>;
34
- } & Omit<TextFieldProps<TYPE>, 'max' | 'min' | 'step' | 'incrementButtons'> & (ITEM extends {
39
+ onChange?: AutoCompletePropOnChange;
40
+ virtualScroll?: boolean;
41
+ onScrollToBottom?: () => void;
42
+ onDropdownOpen?: (isOpen: boolean) => void;
43
+ dropdownOpen?: boolean;
44
+ ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
45
+ } & Omit<TextFieldProps<TYPE>, 'max' | 'min' | 'step' | 'incrementButtons' | 'onChange' | 'width'> & (ITEM extends {
35
46
  label: AutoCompleteItemDefault['label'];
36
47
  } ? {} : {
37
48
  getItemLabel: AutoCompletePropGetItemLabel<ITEM>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/AutoCompleteCanary/types.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropRenderItem } from '##/components/Select';\nimport { TextFieldProps } from '##/components/TextField';\n\nexport type AutoCompleteItemDefault = {\n id: string | number;\n label: string;\n groupId?: number;\n};\n\nexport type AutoCompleteGroupDefault = {\n label: string;\n id: number | string;\n};\n\nexport type AutoCompletePropDropdownForm = 'default' | 'brick' | 'round';\n\nexport type AutoCompletePropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type AutoCompletePropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type AutoCompletePropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => number | undefined;\nexport type AutoCompletePropGetGroupLabel<GROUP> = (group: GROUP) => string;\nexport type AutoCompletePropGetGroupId<GROUP> = (\n group: GROUP,\n) => number | string;\n\nexport type AutoCompletePropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\n\nexport type AutoCompleteProps<\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n> = {\n items: ITEM[];\n groups?: GROUP[];\n renderItem?: PropRenderItem<ITEM>;\n dropdownClassName?: string;\n dropdownForm?: AutoCompletePropDropdownForm;\n isLoading?: boolean;\n searchFunction?: AutoCompletePropSearchFunction<ITEM>;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n getItemLabel?: AutoCompletePropGetItemLabel<ITEM>;\n getItemKey?: AutoCompletePropGetItemKey<ITEM>;\n getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM>;\n getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP>;\n getGroupKey?: AutoCompletePropGetGroupId<GROUP>;\n} & Omit<TextFieldProps<TYPE>, 'max' | 'min' | 'step' | 'incrementButtons'> &\n (ITEM extends { label: AutoCompleteItemDefault['label'] }\n ? {}\n : {\n getItemLabel: AutoCompletePropGetItemLabel<ITEM>;\n }) &\n (ITEM extends { id: AutoCompleteItemDefault['id'] }\n ? {}\n : { getItemKey: AutoCompletePropGetItemKey<ITEM> }) &\n (GROUP extends { label: AutoCompleteGroupDefault['label'] }\n ? {}\n : { getGroupLabel: AutoCompletePropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: AutoCompleteGroupDefault['id'] }\n ? {}\n : { getGroupKey: AutoCompletePropGetGroupId<GROUP> });\n\nexport type AutoCompleteComponent = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n) => React.ReactElement | null;\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/AutoCompleteCanary/types.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropRenderItem } from '##/components/SelectCanary';\nimport { TextFieldProps } from '##/components/TextField';\n\nexport type AutoCompleteItemDefault = {\n id: string | number;\n label: string;\n groupId?: number;\n};\n\nexport type AutoCompleteGroupDefault = {\n label: string;\n id: number | string;\n};\n\nexport type AutoCompletePropDropdownForm = 'default' | 'brick' | 'round';\n\nexport type AutoCompletePropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type AutoCompletePropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type AutoCompletePropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => number | undefined;\nexport type AutoCompletePropGetGroupLabel<GROUP> = (group: GROUP) => string;\nexport type AutoCompletePropGetGroupId<GROUP> = (\n group: GROUP,\n) => number | string;\n\nexport type AutoCompletePropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\n\nexport type AutoCompletePropOnChange = (\n value: string | null,\n props: {\n e: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;\n id?: string;\n name?: string;\n },\n) => void;\n\nexport type AutoCompleteProps<\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n> = {\n items: ITEM[];\n groups?: GROUP[];\n renderItem?: PropRenderItem<ITEM>;\n dropdownClassName?: string;\n dropdownForm?: AutoCompletePropDropdownForm;\n isLoading?: boolean;\n searchFunction?: AutoCompletePropSearchFunction<ITEM>;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n getItemLabel?: AutoCompletePropGetItemLabel<ITEM>;\n getItemKey?: AutoCompletePropGetItemKey<ITEM>;\n getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM>;\n getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP>;\n getGroupKey?: AutoCompletePropGetGroupId<GROUP>;\n onChange?: AutoCompletePropOnChange;\n virtualScroll?: boolean;\n onScrollToBottom?: () => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n} & Omit<\n TextFieldProps<TYPE>,\n 'max' | 'min' | 'step' | 'incrementButtons' | 'onChange' | 'width'\n> &\n (ITEM extends { label: AutoCompleteItemDefault['label'] }\n ? {}\n : {\n getItemLabel: AutoCompletePropGetItemLabel<ITEM>;\n }) &\n (ITEM extends { id: AutoCompleteItemDefault['id'] }\n ? {}\n : { getItemKey: AutoCompletePropGetItemKey<ITEM> }) &\n (GROUP extends { label: AutoCompleteGroupDefault['label'] }\n ? {}\n : { getGroupLabel: AutoCompletePropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: AutoCompleteGroupDefault['id'] }\n ? {}\n : { getGroupKey: AutoCompletePropGetGroupId<GROUP> });\n\nexport type AutoCompleteComponent = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n) => React.ReactElement | null;\n"],"mappings":""}
@@ -20,10 +20,15 @@ declare type UseAutoCompleteProps<ITEM, GROUP> = {
20
20
  onBlur?: React.FocusEventHandler<HTMLInputElement>;
21
21
  searchValue?: string;
22
22
  onChange: OnChangeProp<ITEM>;
23
+ isLoading?: boolean;
24
+ dropdownOpen?: boolean;
25
+ onDropdownOpen?: (isOpen: boolean) => void;
26
+ ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
23
27
  };
24
28
  declare type OptionProps<ITEM> = {
25
29
  index: number;
26
30
  item: ITEM;
31
+ keyPrefix: number;
27
32
  };
28
33
  declare type GetOptionPropsResult = {
29
34
  onClick: (e: React.SyntheticEvent) => void;
@@ -41,5 +46,6 @@ export declare function useAutoComplete<ITEM, GROUP>(params: UseAutoCompleteProp
41
46
  inputRef: React.RefObject<HTMLInputElement>;
42
47
  getKeyProps: (rest?: import("../../hooks/useKeys").KeyProps | undefined) => import("../../hooks/useKeys").KeyProps;
43
48
  hasItems: boolean;
49
+ optionsRefs: React.RefObject<HTMLDivElement>[];
44
50
  };
45
51
  export {};
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../hooks/useClickOutside";import{useFlag}from"../../hooks/useFlag";import{useKeys}from"../../hooks/useKeys";import{getGroups}from"../../utils/getGroups";export function useAutoComplete(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.getItemLabel,h=a.getItemKey,i=a.searchFunction,j=a.getItemGroupKey,k=a.groups,l=a.getGroupKey,m=a.onFocus,n=a.onBlur,o=a.searchValue,p=useRef(null),q=useFlag(),r=_slicedToArray(q,2),s=r[0],t=r[1],u=useState(0),v=_slicedToArray(u,2),w=v[0],x=v[1],y=function(a,b){return!!b&&-1!==g(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},z=useMemo(function(){return b.filter(function(a){return i?i(a,o||""):y(a,o||"")})},[o,b]),A=useMemo(function(){var a=getGroups(z,null!==k&&void 0!==k&&k.length?j:void 0,k,l,void 0);return a},[z,k,j,l]),B=useMemo(function(){return!!A.find(function(a){return 0<a.items.length})},[A]),C=useCallback(function(a){x(Math.min(Math.max(0,"function"==typeof a?a(w):a),z.length-1))},[z,w]),D=function(b,c){f||a.onChange({value:c,e:b})},E=function(a,b){b.preventDefault(),C(function(a){return a-1})},F=function(a,b){b.preventDefault(),C(function(a){return a+1})},G=useKeys({ArrowUp:E,ArrowDown:F,PageUp:E,PageDown:F,Home:E,End:F,Enter:function Enter(a,b){if(s){(o||z[w])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(A);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(e.items.length+c>a)return e.items[a-c];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}},d=c(w);d&&D(b,d)}},Escape:function Escape(){t.off()},Tab:function Tab(){t.off()}});useClickOutside({isActive:s,ignoreClicksInsideRefs:[c,d],handler:t.off}),useEffect(function(){if(f){var a;t.off(),null===(a=p.current)||void 0===a?void 0:a.blur()}},[f]);return{isOpen:!!(s&&B),visibleItems:A,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=h(c);return{onClick:function onClick(a){D(a,c)},onMouseEnter:function onMouseEnter(){C(b)},active:!1,hovered:b===w,key:d}},handleInputFocus:function handleInputFocus(a){f||(!s&&t.on(),"function"==typeof m&&m(a))},handleInputBlur:function handleInputBlur(a){if(s){var b;return void(null===(b=p.current)||void 0===b?void 0:b.focus())}"function"==typeof n&&n(a)},inputRef:p,getKeyProps:G,hasItems:B}}
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{scrollToIndex}from"../SelectComponentsCanary/useSelect/helpers";import{useClickOutside}from"../../hooks/useClickOutside";import{useFlag}from"../../hooks/useFlag";import{useKeys}from"../../hooks/useKeys";import{useRefs}from"../../hooks/useRefs";import{getGroups}from"../../utils/getGroups";export function useAutoComplete(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.getItemLabel,h=a.getItemKey,i=a.searchFunction,j=a.getItemGroupKey,k=a.groups,l=a.getGroupKey,m=a.onFocus,n=a.onBlur,o=a.searchValue,p=a.isLoading,q=a.dropdownOpen,r=a.onDropdownOpen,s=a.ignoreOutsideClicksRefs,t=useRef(null),u=useFlag(),v=_slicedToArray(u,2),w=v[0],x=v[1],y=useState(0),z=_slicedToArray(y,2),A=z[0],B=z[1],C=function(a,b){return!!b&&-1!==g(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},D=useMemo(function(){return b.filter(function(a){return i?i(a,o||""):C(a,o||"")})},[o,b]),E=useMemo(function(){var a=getGroups(D,null!==k&&void 0!==k&&k.length?j:void 0,k,l,void 0);return a},[D,k,j,l]),F=useMemo(function(){return!!E.find(function(a){return 0<a.items.length})},[E]),G=useCallback(function(a){B(Math.min(Math.max(0,"function"==typeof a?a(A):a),D.length-1))},[D,A]),H=function(b,c){f||a.onChange({value:c,e:b})},I=function(a,b){f||(b.preventDefault(),x.on(),G(function(a){return a-1}))},J=function(a,b){f||(b.preventDefault(),x.on(),G(function(a){return a+1}))},K=useKeys({ArrowUp:I,ArrowDown:J,PageUp:I,PageDown:J,Home:I,End:J,Enter:function Enter(a,b){if(w){(o||D[A])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(E);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(e.items.length+c>a)return e.items[a-c];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}},d=c(A);d&&H(b,d)}else x.on()},Escape:function Escape(){x.off()},Tab:function Tab(a,b){x.off(),w&&F&&b.preventDefault()}}),L=useRefs(D.length,[w]);return useClickOutside({isActive:w,ignoreClicksInsideRefs:[c,d].concat(_toConsumableArray(s||[])),handler:x.off}),useEffect(function(){if(f){var a;x.off(),null===(a=t.current)||void 0===a?void 0:a.blur()}},[f]),useEffect(function(){0<D.length&&scrollToIndex(A,c,L,function(){return G(0)}),x.on()},[A]),useEffect(function(){null===r||void 0===r?void 0:r(w)},[w]),useEffect(function(){x.set(q||!1)},[q]),useEffect(function(){o&&x.on()},[o]),{isOpen:!!(w&&(!!p||F)),visibleItems:E,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=h(c);return{onClick:function onClick(a){H(a,c)},onMouseEnter:function onMouseEnter(){G(b)},active:!1,hovered:b===A,key:d}},handleInputFocus:function handleInputFocus(a){f||(x.toggle(),"function"==typeof m&&m(a))},handleInputBlur:function handleInputBlur(a){if(w){var b;return void(null===(b=t.current)||void 0===b?void 0:b.focus())}"function"==typeof n&&n(a)},inputRef:t,getKeyProps:K,hasItems:F,optionsRefs:L}}
2
2
  //# sourceMappingURL=useAutoComplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoComplete.js","names":["useCallback","useEffect","useMemo","useRef","useState","useClickOutside","useFlag","useKeys","getGroups","useAutoComplete","params","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","getGroupKey","onFocus","onBlur","searchValue","inputRef","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","searchFunctionDefault","item","toLocaleLowerCase","indexOf","filteredOptions","filter","visibleItems","resultGroups","length","hasItems","find","group","highlightIndex","indexForHighlight","Math","min","max","onChange","e","value","ArrowUp","_","preventDefault","old","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getItem","index","couter","Escape","off","Tab","isActive","ignoreClicksInsideRefs","handler","current","blur","getOptionProps","key","onClick","onMouseEnter","active","hovered","handleInputFocus","on","handleInputBlur","focus"],"sources":["../../../../../src/components/AutoCompleteCanary/useAutoComplete.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useFlag } from '##/hooks/useFlag';\nimport { KeyHandler, useKeys } from '##/hooks/useKeys';\nimport { getGroups } from '##/utils/getGroups';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\n\ntype OnChangeProp<ITEM> = (props: {\n value: ITEM | null;\n e: React.SyntheticEvent;\n}) => void;\n\ntype UseAutoCompleteProps<ITEM, GROUP> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n searchValue?: string;\n onChange: OnChangeProp<ITEM>;\n};\n\ntype OptionProps<ITEM> = {\n index: number;\n item: ITEM;\n};\n\ntype GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nexport function useAutoComplete<ITEM, GROUP>(\n params: UseAutoCompleteProps<ITEM, GROUP>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n getGroupKey,\n onFocus,\n onBlur,\n searchValue,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isOpen, setIsOpen] = useFlag();\n const [highlightedIndex, setHighlightedIndex] = useState<number>(0);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) => {\n if (!searchValue) {\n return false;\n }\n return (\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n };\n\n const filteredOptions = useMemo(\n () =>\n items.filter((item) =>\n searchFunction\n ? searchFunction(item, searchValue || '')\n : searchFunctionDefault(item, searchValue || ''),\n ),\n [searchValue, items],\n );\n\n const visibleItems = useMemo(() => {\n const resultGroups = getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n undefined,\n );\n\n return resultGroups;\n }, [filteredOptions, groups, getItemGroupKey, getGroupKey]);\n\n const hasItems = useMemo(() => {\n return !!visibleItems.find((group) => group.items.length > 0);\n }, [visibleItems]);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight) => {\n setHighlightedIndex(\n Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(highlightedIndex)\n : indexForHighlight,\n ),\n filteredOptions.length - 1,\n ),\n );\n },\n [filteredOptions, highlightedIndex],\n );\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (!disabled) {\n params.onChange({ value: item, e });\n }\n };\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n highlightIndex((old) => old - 1);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n highlightIndex((old) => old + 1);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getItem = (index: number) => {\n let couter = 0;\n for (const group of visibleItems) {\n if (group.items.length + couter > index) {\n return group.items[index - couter];\n }\n couter += group.items.length;\n }\n return undefined;\n };\n\n const item = getItem(highlightedIndex);\n\n if (item) {\n onChange(e, item);\n }\n }\n };\n\n const Escape = (): void => {\n setIsOpen.off();\n };\n\n const Tab = (): void => {\n setIsOpen.off();\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n });\n\n const getOptionProps = ({\n index,\n item,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index);\n },\n active: false,\n hovered: index === highlightedIndex,\n key,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [dropdownRef, controlRef],\n handler: setIsOpen.off,\n });\n\n useEffect(() => {\n if (disabled) {\n setIsOpen.off();\n inputRef.current?.blur();\n }\n }, [disabled]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isOpen) {\n setIsOpen.on();\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n return {\n isOpen: Boolean(isOpen && hasItems),\n visibleItems,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n inputRef,\n getKeyProps,\n hasItems,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useAutoComplete.js","names":["useCallback","useEffect","useMemo","useRef","useState","scrollToIndex","useClickOutside","useFlag","useKeys","useRefs","getGroups","useAutoComplete","params","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","getGroupKey","onFocus","onBlur","searchValue","isLoading","dropdownOpen","onDropdownOpen","ignoreOutsideClicksRefs","inputRef","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","searchFunctionDefault","item","toLocaleLowerCase","indexOf","filteredOptions","filter","visibleItems","resultGroups","length","hasItems","find","group","highlightIndex","indexForHighlight","Math","min","max","onChange","e","value","ArrowUp","_","preventDefault","on","old","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getItem","index","couter","Escape","off","Tab","optionsRefs","isActive","ignoreClicksInsideRefs","handler","current","blur","set","getOptionProps","key","onClick","onMouseEnter","active","hovered","handleInputFocus","toggle","handleInputBlur","focus"],"sources":["../../../../../src/components/AutoCompleteCanary/useAutoComplete.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { scrollToIndex } from '##/components/SelectComponentsCanary/useSelect/helpers';\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useFlag } from '##/hooks/useFlag';\nimport { KeyHandler, useKeys } from '##/hooks/useKeys';\nimport { useRefs } from '##/hooks/useRefs';\nimport { getGroups } from '##/utils/getGroups';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\n\ntype OnChangeProp<ITEM> = (props: {\n value: ITEM | null;\n e: React.SyntheticEvent;\n}) => void;\n\ntype UseAutoCompleteProps<ITEM, GROUP> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n searchValue?: string;\n onChange: OnChangeProp<ITEM>;\n isLoading?: boolean;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\ntype OptionProps<ITEM> = {\n index: number;\n item: ITEM;\n keyPrefix: number;\n};\n\ntype GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nexport function useAutoComplete<ITEM, GROUP>(\n params: UseAutoCompleteProps<ITEM, GROUP>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n getGroupKey,\n onFocus,\n onBlur,\n searchValue,\n isLoading,\n dropdownOpen,\n onDropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isOpen, setIsOpen] = useFlag();\n const [highlightedIndex, setHighlightedIndex] = useState<number>(0);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) => {\n if (!searchValue) {\n return false;\n }\n return (\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n };\n\n const filteredOptions = useMemo(\n () =>\n items.filter((item) =>\n searchFunction\n ? searchFunction(item, searchValue || '')\n : searchFunctionDefault(item, searchValue || ''),\n ),\n [searchValue, items],\n );\n\n const visibleItems = useMemo(() => {\n const resultGroups = getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n undefined,\n );\n\n return resultGroups;\n }, [filteredOptions, groups, getItemGroupKey, getGroupKey]);\n\n const hasItems = useMemo(() => {\n return !!visibleItems.find((group) => group.items.length > 0);\n }, [visibleItems]);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight) => {\n setHighlightedIndex(\n Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(highlightedIndex)\n : indexForHighlight,\n ),\n filteredOptions.length - 1,\n ),\n );\n },\n [filteredOptions, highlightedIndex],\n );\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (!disabled) {\n params.onChange({ value: item, e });\n }\n };\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n if (!disabled) {\n e.preventDefault();\n setIsOpen.on();\n highlightIndex((old) => old - 1);\n }\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n if (!disabled) {\n e.preventDefault();\n setIsOpen.on();\n highlightIndex((old) => old + 1);\n }\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getItem = (index: number) => {\n let couter = 0;\n for (const group of visibleItems) {\n if (group.items.length + couter > index) {\n return group.items[index - couter];\n }\n couter += group.items.length;\n }\n return undefined;\n };\n\n const item = getItem(highlightedIndex);\n\n if (item) {\n onChange(e, item);\n }\n } else {\n setIsOpen.on();\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setIsOpen.off();\n };\n\n const Tab: KeyHandler = (_, e): void => {\n setIsOpen.off();\n if (isOpen && hasItems) {\n e.preventDefault();\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n });\n\n const getOptionProps = ({\n index,\n item,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index);\n },\n active: false,\n hovered: index === highlightedIndex,\n key,\n };\n };\n\n const optionsRefs = useRefs<HTMLDivElement>(filteredOptions.length, [isOpen]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n setIsOpen.toggle();\n\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: setIsOpen.off,\n });\n\n useEffect(() => {\n if (disabled) {\n setIsOpen.off();\n inputRef.current?.blur();\n }\n }, [disabled]);\n\n useEffect(() => {\n if (filteredOptions.length > 0) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0),\n );\n }\n setIsOpen.on();\n }, [highlightedIndex]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n setIsOpen.set(dropdownOpen || false);\n }, [dropdownOpen]);\n\n useEffect(() => {\n if (searchValue) {\n setIsOpen.on();\n }\n }, [searchValue]);\n\n return {\n isOpen: Boolean(isOpen && (isLoading ? true : hasItems)),\n visibleItems,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n inputRef,\n getKeyProps,\n hasItems,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .BookmarkTabs{display:flex;flex-wrap:nowrap;height:var(--bookmark-tabs-tab-size);max-width:100%;white-space:nowrap;width:100%}.BookmarkTabs-Wrapper{display:inline-flex;max-width:100%;overflow-x:auto;width:-moz-max-content;width:max-content}.BookmarkTabs-Wrapper::-webkit-scrollbar:horizontal{display:none;height:0;width:0}.BookmarkTabs-Wrapper::-webkit-scrollbar-thumb:horizontal{display:none}.BookmarkTabs-List{display:inline-flex;height:var(--bookmark-tabs-tab-size);max-width:var(--bookmarks-list-width);width:-moz-max-content;width:max-content}.BookmarkTabs-List>.BookmarkTabsTab{flex:1}.BookmarkTabs-List>.BookmarkTabsTab:not(.BookmarkTabsTab_form_round.BookmarkTabsTab_active):not(.BookmarkTabsTab_form_round:has(+.BookmarkTabsTab_active)):after{background:var(--color-bg-border);content:"";height:var(--bookmark-divider-height);position:absolute;right:0;top:var(--bookmark-divider-top);width:1px}.BookmarkTabs-List:has(+.BookmarkTabs-List>.BookmarkTabsTab:first-child.BookmarkTabsTab_active)>.BookmarkTabsTab_form_round:last-child:after{display:none}.BookmarkTabs-List:last-child>.BookmarkTabsTab:last-child:after{display:none}.BookmarkTabs_form_brick{--bookmark-divider-height:100%;--bookmark-divider-top:0}.BookmarkTabs_form_round{--bookmark-divider-top:calc(var(--space-l)/2);--bookmark-divider-height:calc(100% - var(--space-l))}.BookmarkTabs_size_s{--bookmark-tabs-tab-size:var(--space-2xl)}.BookmarkTabs_size_m{--bookmark-tabs-tab-size:var(--space-3xl)}.BookmarkTabs_view_ghost{background:var(--color-bg-secondary)}.BookmarkTabs-Empty{flex:auto}.BookmarkTabs-Button,.BookmarkTabs-Empty{border-bottom:1px solid var(--color-bg-border)}.BookmarkTabs-Button{align-items:center;display:inline-flex;justify-content:center;min-height:var(--bookmark-tabs-tab-size);min-width:var(--bookmark-tabs-tab-size);position:relative}.BookmarkTabs-Button_type_add:before{background:var(--color-bg-border);content:"";height:var(--bookmark-divider-height);left:0;position:absolute;top:var(--bookmark-divider-top);width:1px}.BookmarkTabs-Block{max-width:100%;width:-moz-max-content;width:max-content}.BookmarkTabs-ScrollControls{align-items:center;display:inline-flex;justify-content:center}.BookmarkTabs-ScrollControls>*{border-right:1px solid var(--color-bg-border)}
@@ -0,0 +1,4 @@
1
+ import './BookmarkTabs.css';
2
+ import { BookmarkTabsComponent } from './types';
3
+ export declare const cnBookmarkTabs: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const BookmarkTabs: BookmarkTabsComponent;
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["item","attributes"],_excluded2=["items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","size","form","view","withNavigationButtons","className","id"];import"./BookmarkTabs.css";import{IconAdd}from"@consta/icons/IconAdd";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef";import{cn}from"../../utils/bem";import{Button}from"../Button";import{BookmarkTabsTab}from"./BookmarkTabsTab";import{withDefaultGetters}from"./helper";import{bookmarkTabsPropFormDefault,bookmarkTabsPropSizeDefault,bookmarkTabsPropViewDefault}from"./types";import{useBookmarkTabs}from"./useBookmarkTabs";export var cnBookmarkTabs=cn("BookmarkTabs");var renderItemDefault=function(a){var b=a.item,c=a.attributes,d=void 0===c?{}:c,e=_objectWithoutProperties(a,_excluded);return React.createElement(BookmarkTabsTab,Object.assign({},d,e))},BookmarkTabsRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=void 0===d?[]:d,f=c.value,g=c.onCreate,h=c.getItemKey,i=c.getItemLabel,j=c.getItemLeftIcon,k=c.getItemRightIcon,l=c.getItemAs,m=c.getItemRef,n=c.getItemAttributes,o=c.getItemFixed,p=c.onChange,q=c.onRemove,r=c.renderItem,s=void 0===r?renderItemDefault:r,t=c.size,u=void 0===t?bookmarkTabsPropSizeDefault:t,v=c.form,w=void 0===v?bookmarkTabsPropFormDefault:v,x=c.view,y=void 0===x?bookmarkTabsPropViewDefault:x,z=c.withNavigationButtons,A=c.className,B=c.id,C=_objectWithoutProperties(c,_excluded2),D=function(a){return!!f&&h(a)===h(f)},E=useBookmarkTabs({items:e,getItemFixed:o,size:u,withNavigationButtons:z,withAddButton:!!g}),F=E.refs,G=E.fixedTabs,H=E.fixedTabsRef,I=E.otherTabs,J=E.otherTabsRef,K=E.showControls,L=E.wrapperRef,M=E.containerRef,N=E.controlsRef,O=E.addButtonRef,P=E.navigate,Q=E.sizes,R=useComponentSize(H),S=R.width,T=function(a,b,c,d){var e;return s({item:a,onClick:function onClick(b){return null===p||void 0===p?void 0:p(a,{e:b})},active:D(a),label:i(a),leftIcon:j(a),rightIcon:k(a),as:null!==(e=l(a))&&void 0!==e?e:"button",attributes:n(a),tabRef:m(a),controlRef:c,fixed:b,onClose:q?function(b){return q(a,{e:b})}:void 0,size:u,view:y,form:w,tabWidth:d})};return React.createElement("div",Object.assign({className:cnBookmarkTabs({size:u,view:y,form:w},[A]),ref:useForkRef([b,M]),id:B},C),K&&React.createElement("div",{ref:N,className:cnBookmarkTabs("ScrollControls")},React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return P("prev")},iconLeft:IconArrowLeft,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",onClick:function onClick(){return P("next")},iconLeft:IconArrowRight,onlyIcon:!0}))),React.createElement("div",{ref:L,className:cnBookmarkTabs("Wrapper")},React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","max-content"),ref:H,className:cnBookmarkTabs("List")},G.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!0,F[b]))})),React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","calc(100% - ".concat(S,"px)")),className:cnBookmarkTabs("List"),ref:J},I.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!1,F[G.length+b],Q[b]))}))),g&&React.createElement("div",{ref:O,className:cnBookmarkTabs("Button",{type:"add"})},React.createElement(Button,{view:"clear",size:"xs",onClick:g,iconLeft:IconAdd,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Empty")}))};export var BookmarkTabs=forwardRef(BookmarkTabsRender);
2
+ //# sourceMappingURL=BookmarkTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BookmarkTabs.js","names":["IconAdd","IconArrowLeft","IconArrowRight","React","forwardRef","useComponentSize","useForkRef","cn","Button","BookmarkTabsTab","withDefaultGetters","bookmarkTabsPropFormDefault","bookmarkTabsPropSizeDefault","bookmarkTabsPropViewDefault","useBookmarkTabs","cnBookmarkTabs","renderItemDefault","props","_item","item","attributes","otherProps","BookmarkTabsRender","ref","items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","renderItemProp","size","form","view","withNavigationButtons","className","id","getItemActive","withAddButton","refs","fixedTabs","fixedTabsRef","otherTabs","otherTabsRef","showControls","wrapperRef","containerRef","controlsRef","addButtonRef","navigate","sizes","fixedWidth","width","fixed","controlRef","tabWidth","onClick","e","active","label","leftIcon","rightIcon","as","tabRef","onClose","map","index","length","type","BookmarkTabs"],"sources":["../../../../../src/components/BookmarkTabsCanary/BookmarkTabs.tsx"],"sourcesContent":["import './BookmarkTabs.css';\n\nimport { IconAdd } from '@consta/icons/IconAdd';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cn } from '##/utils/bem';\n\nimport { Button } from '../Button';\nimport { BookmarkTabsTab } from './BookmarkTabsTab';\nimport { withDefaultGetters } from './helper';\nimport {\n BookmarkTabsComponent,\n bookmarkTabsPropFormDefault,\n BookmarkTabsProps,\n bookmarkTabsPropSizeDefault,\n bookmarkTabsPropViewDefault,\n BookmarkTabsRenderItemProps,\n} from './types';\nimport { useBookmarkTabs } from './useBookmarkTabs';\n\nexport const cnBookmarkTabs = cn('BookmarkTabs');\n\nconst renderItemDefault = <ITEM,>(\n props: BookmarkTabsRenderItemProps<ITEM>,\n): React.ReactElement => {\n const { item: _item, attributes = {}, ...otherProps } = props;\n return <BookmarkTabsTab {...attributes} {...otherProps} />;\n};\n\nconst BookmarkTabsRender = (\n props: BookmarkTabsProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items = [],\n value,\n onCreate,\n getItemKey,\n getItemLabel,\n getItemLeftIcon,\n getItemRightIcon,\n getItemAs,\n getItemRef,\n getItemAttributes,\n getItemFixed,\n onChange,\n onRemove,\n renderItem: renderItemProp = renderItemDefault,\n size = bookmarkTabsPropSizeDefault,\n form = bookmarkTabsPropFormDefault,\n view = bookmarkTabsPropViewDefault,\n withNavigationButtons,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n type Item = typeof items[number];\n\n const getItemActive = (item: Item) => {\n return value ? getItemKey(item) === getItemKey(value) : false;\n };\n\n const {\n refs,\n fixedTabs,\n fixedTabsRef,\n otherTabs,\n otherTabsRef,\n showControls,\n wrapperRef,\n containerRef,\n controlsRef,\n addButtonRef,\n navigate,\n sizes,\n } = useBookmarkTabs({\n items,\n getItemFixed,\n size,\n withNavigationButtons,\n withAddButton: !!onCreate,\n });\n\n const { width: fixedWidth } = useComponentSize(fixedTabsRef);\n\n const renderItem = (\n item: Item,\n fixed: boolean,\n controlRef: React.RefObject<HTMLElement>,\n tabWidth?: string,\n ) =>\n renderItemProp({\n item,\n onClick: (e) => onChange?.(item, { e }),\n active: getItemActive(item),\n label: getItemLabel(item),\n leftIcon: getItemLeftIcon(item),\n rightIcon: getItemRightIcon(item),\n as: getItemAs(item) ?? 'button',\n attributes: getItemAttributes(item),\n tabRef: getItemRef(item),\n controlRef,\n fixed,\n onClose: onRemove ? (e) => onRemove(item, { e }) : undefined,\n size,\n view,\n form,\n tabWidth,\n });\n\n return (\n <div\n className={cnBookmarkTabs({ size, view, form }, [className])}\n ref={useForkRef([ref, containerRef])}\n id={id}\n {...otherProps}\n >\n {showControls && (\n <div ref={controlsRef} className={cnBookmarkTabs('ScrollControls')}>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('prev')}\n iconLeft={IconArrowLeft}\n onlyIcon\n />\n </div>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n onClick={() => navigate('next')}\n iconLeft={IconArrowRight}\n onlyIcon\n />\n </div>\n </div>\n )}\n <div ref={wrapperRef} className={cnBookmarkTabs('Wrapper')}>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `max-content`,\n }}\n ref={fixedTabsRef}\n className={cnBookmarkTabs('List')}\n >\n {fixedTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(item, true, refs[index])}\n </React.Fragment>\n ))}\n </div>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `calc(100% - ${fixedWidth}px)`,\n }}\n className={cnBookmarkTabs('List')}\n ref={otherTabsRef}\n >\n {otherTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n false,\n refs[fixedTabs.length + index],\n sizes[index],\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n {onCreate && (\n <div\n ref={addButtonRef}\n className={cnBookmarkTabs('Button', { type: 'add' })}\n >\n <Button\n view=\"clear\"\n size=\"xs\"\n onClick={onCreate}\n iconLeft={IconAdd}\n onlyIcon\n />\n </div>\n )}\n <div className={cnBookmarkTabs('Empty')} />\n </div>\n );\n};\n\nexport const BookmarkTabs = forwardRef(\n BookmarkTabsRender,\n) as BookmarkTabsComponent;\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .BookmarkTabsTab{--bookmark-tabs-tab-close-size:0px;--bookmark-tabs-tab-right-icon-size:0px;align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--bookmark-tabs-tab-size);max-height:100%;max-width:200px;min-width:calc(var(--bookmark-tabs-tab-close-size) + var(--bookmark-tabs-tab-right-icon-size) + var(--bookmark-tabs-tab-left-icon-size) + var(--space-3xl) + var(--space-m));overflow:hidden;padding:var(--bookmark-tabs-tab-padding-top) var(--space-xs);position:relative;transition:background-color .3s,box-shadow .3s;width:var(--bookmarks-tab-width)}.BookmarkTabsTab:hover,.BookmarkTabsTab:not(.BookmarkTabsTab_active):focus{--bookmark-tabs-tab-color:var(--color-control-typo-ghost-hover);background-color:var(--color-control-bg-ghost-hover)}.BookmarkTabsTab:not(.BookmarkTabsTab_active){border-bottom:1px solid var(--color-bg-border)}.BookmarkTabsTab:not(.BookmarkTabsTab_withLeftIcon){--bookmark-tabs-tab-left-icon-size:0px}.BookmarkTabsTab_withCloseButton{--bookmark-tabs-tab-close-size:var(--space-2xl)}.BookmarkTabsTab_withRightIcon{--bookmark-tabs-tab-right-icon-size:var(--space-l)}.BookmarkTabsTab_view_ghost{--bookmark-tabs-tab-color:var(--color-typo-primary);background:var(--color-bg-secondary)}.BookmarkTabsTab_view_clear{--bookmark-tabs-tab-color:var(--color-typo-secondary)}.BookmarkTabsTab_size_s{--bookmark-tabs-tab-size:var(--space-2xl);--bookmark-tabs-tab-padding-top:var(--space-2xs);--bookmark-tabs-tab-left-icon-size:var(--space-l)}.BookmarkTabsTab_size_m{--bookmark-tabs-tab-size:var(--space-3xl);--bookmark-tabs-tab-padding-top:var(--space-xs);--bookmark-tabs-tab-left-icon-size:var(--space-2xl)}.BookmarkTabsTab_form_round{border-radius:var(--space-xs) var(--space-xs) 0 0}.BookmarkTabsTab_form_round.BookmarkTabsTab_active{border-left:1px solid var(--color-bg-border);border-right:1px solid var(--color-bg-border);border-top:1px solid var(--color-bg-border);padding-top:calc(var(--bookmark-tabs-tab-padding-top) - 1px)}.BookmarkTabsTab_fixed{--bookmark-tabs-tab-padding-top:var(--space-xs);min-width:var(--bookmark-tabs-tab-size);width:var(--bookmark-tabs-tab-size)}.BookmarkTabsTab_active{--bookmark-tabs-tab-color:var(--color-typo-primary);background:var(--color-bg-default)}.BookmarkTabsTab-Icon_side_left,.BookmarkTabsTab-Label.Text{color:var(--bookmark-tabs-tab-color);transition:color .3s}.BookmarkTabsTab-Icon{display:block;min-width:var(--icon-size)}.BookmarkTabsTab-Label{flex:auto;min-width:var(--space-3xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@@ -0,0 +1,4 @@
1
+ import './BookmarkTabsTab.css';
2
+ import { BookmarkTabsTabComponent } from '../types';
3
+ export declare const cnBookmarkTabsTab: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const BookmarkTabsTab: BookmarkTabsTabComponent;
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["label","leftIcon","rightIcon","as","onClick","size","form","active","fixed","tabRef","controlRef","onClose","view","className","tabWidth","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BookmarkTabsTab.css";import{IconClose}from"@consta/icons/IconClose";import React,{forwardRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";export var cnBookmarkTabsTab=cn("BookmarkTabsTab");var BookmarkTabsTabRender=function(a,b){var c=a.label,d=a.leftIcon,e=a.rightIcon,f=a.as,g=void 0===f?"button":f,h=a.onClick,i=a.size,j=a.form,k=a.active,l=a.fixed,m=a.tabRef,n=a.controlRef,o=a.onClose,p=a.view,q=a.className,r=a.tabWidth,s=void 0===r?"100%":r,t=a.style,u=_objectWithoutProperties(a,_excluded);return React.createElement(g,Object.assign({className:cnBookmarkTabsTab({size:i,form:j,view:p,active:k,fixed:l,withCloseButton:!!o,withLeftIcon:!!d,withRightIcon:!!e},[q]),role:"tab",type:"button",onClick:h,ref:useForkRef([b,m,n]),style:_objectSpread(_defineProperty({},"--bookmarks-tab-width",s),t)},u),d&&React.createElement(d,{className:cnBookmarkTabsTab("Icon",{side:"left"},[l?void 0:cnMixSpace({mR:"s"===i?"2xs":"xs"})]),size:i}),!l&&React.createElement(React.Fragment,null,React.createElement(Text,{align:"left",className:cnBookmarkTabsTab("Label"),size:i},c),e&&React.createElement(e,{className:cnBookmarkTabsTab("Icon",{side:"right"},[cnMixSpace({mL:"xs"})]),size:"xs",view:"secondary"}),o&&React.createElement(Button,{size:"xs",onlyIcon:!0,as:"div",view:"clear",className:cnBookmarkTabsTab("Button",[cnMixSpace({mL:"xs"})]),onClick:o,iconLeft:IconClose})))};export var BookmarkTabsTab=forwardRef(BookmarkTabsTabRender);
2
+ //# sourceMappingURL=BookmarkTabsTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BookmarkTabsTab.js","names":["IconClose","React","forwardRef","Button","Text","useForkRef","cnMixSpace","cn","cnBookmarkTabsTab","BookmarkTabsTabRender","props","ref","label","LeftIcon","leftIcon","RightIcon","rightIcon","as","Tag","onClick","size","form","active","fixed","tabRef","controlRef","onClose","view","className","tabWidth","style","otherProps","withCloseButton","withLeftIcon","withRightIcon","side","mR","mL","BookmarkTabsTab"],"sources":["../../../../../../src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.tsx"],"sourcesContent":["import './BookmarkTabsTab.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React, { forwardRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cn } from '##/utils/bem';\n\nimport { BookmarkTabsTabComponent, BookmarkTabsTabProps } from '../types';\n\nexport const cnBookmarkTabsTab = cn('BookmarkTabsTab');\n\nconst BookmarkTabsTabRender = (\n props: BookmarkTabsTabProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const {\n label,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n as: Tag = 'button',\n onClick,\n size,\n form,\n active,\n fixed,\n tabRef,\n controlRef,\n onClose,\n view,\n className,\n tabWidth = '100%',\n style,\n ...otherProps\n } = props;\n\n return (\n <Tag\n className={cnBookmarkTabsTab(\n {\n size,\n form,\n view,\n active,\n fixed,\n withCloseButton: !!onClose,\n withLeftIcon: !!LeftIcon,\n withRightIcon: !!RightIcon,\n },\n [className],\n )}\n role=\"tab\"\n type=\"button\"\n onClick={onClick}\n ref={useForkRef([ref, tabRef, controlRef])}\n style={{\n ['--bookmarks-tab-width' as string]: tabWidth,\n ...style,\n }}\n {...otherProps}\n >\n {LeftIcon && (\n <LeftIcon\n className={cnBookmarkTabsTab('Icon', { side: 'left' }, [\n fixed ? undefined : cnMixSpace({ mR: size === 's' ? '2xs' : 'xs' }),\n ])}\n size={size}\n />\n )}\n {!fixed && (\n <>\n <Text align=\"left\" className={cnBookmarkTabsTab('Label')} size={size}>\n {label}\n </Text>\n {RightIcon && (\n <RightIcon\n className={cnBookmarkTabsTab('Icon', { side: 'right' }, [\n cnMixSpace({ mL: 'xs' }),\n ])}\n size=\"xs\"\n view=\"secondary\"\n />\n )}\n {onClose && (\n <Button\n size=\"xs\"\n onlyIcon\n as=\"div\"\n view=\"clear\"\n className={cnBookmarkTabsTab('Button', [\n cnMixSpace({ mL: 'xs' }),\n ])}\n onClick={onClose}\n iconLeft={IconClose}\n />\n )}\n </>\n )}\n </Tag>\n );\n};\n\nexport const BookmarkTabsTab = forwardRef(\n BookmarkTabsTabRender,\n) as BookmarkTabsTabComponent;\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './BookmarkTabsTab';
@@ -0,0 +1,2 @@
1
+ export*from"./BookmarkTabsTab";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/BookmarkTabsCanary/BookmarkTabsTab/index.ts"],"sourcesContent":["export * from './BookmarkTabsTab';\n"],"mappings":"AAAA"}