@moysklad/uikit 28.1.0 → 30.4.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 (372) hide show
  1. package/README.md +3 -0
  2. package/dist/colorVariables.css +10 -0
  3. package/dist/components/AutoComplete/AutoComplete.d.ts +4 -2
  4. package/dist/components/AutoComplete/AutoComplete.js +45 -31
  5. package/dist/components/Badge/Badge.js +2 -3
  6. package/dist/components/Badge/Badge_module.css +2 -3
  7. package/dist/components/BottomSheet/BottomSheet.js +2 -2
  8. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts +5 -3
  9. package/dist/components/Breadcrumbs/BreadcrumbItem.js +39 -8
  10. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -1
  11. package/dist/components/Breadcrumbs/Breadcrumbs.js +10 -6
  12. package/dist/components/Button/Button.d.ts +1 -0
  13. package/dist/components/Button/Button.js +2 -2
  14. package/dist/components/Button/Button.module.js +1 -0
  15. package/dist/components/Button/Button_module.css +4 -0
  16. package/dist/components/Carousel/Carousel.js +5 -4
  17. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  18. package/dist/components/Chip/Chip.helpers.js +5 -2
  19. package/dist/components/Chip/Chip.js +9 -3
  20. package/dist/components/Chip/Chip.legacy_module.css +2 -2
  21. package/dist/components/Chip/Chip.types.d.ts +10 -4
  22. package/dist/components/Chip/Chip_module.css +5 -5
  23. package/dist/components/Chip/components/ChipLabel.d.ts +3 -1
  24. package/dist/components/Chip/components/ChipLabel.js +4 -2
  25. package/dist/components/Chip/components/ChipMainButton.d.ts +3 -4
  26. package/dist/components/Chip/components/ChipMainButton.js +2 -1
  27. package/dist/components/Chip/components/ChipRoot.d.ts +3 -2
  28. package/dist/components/Chip/components/ChipRoot.js +2 -1
  29. package/dist/components/Dropdown/Dropdown.d.ts +2 -0
  30. package/dist/components/Dropdown/Dropdown.js +7 -4
  31. package/dist/components/Dropdown/hooks/usePosition.d.ts +2 -1
  32. package/dist/components/Dropdown/hooks/usePosition.js +3 -3
  33. package/dist/components/EditableTitle/EditableTitle.js +1 -1
  34. package/dist/components/FieldLabel/FieldLabel.constants.d.ts +1 -0
  35. package/dist/components/FieldLabel/FieldLabel.constants.js +5 -0
  36. package/dist/components/FieldLabel/FieldLabel.d.ts +17 -0
  37. package/dist/components/FieldLabel/FieldLabel.js +76 -0
  38. package/dist/components/FieldLabel/FieldLabel.module.js +11 -0
  39. package/dist/components/FieldLabel/FieldLabel_module.css +42 -0
  40. package/dist/components/FieldLabel/components/HelpButton.d.ts +8 -0
  41. package/dist/components/FieldLabel/components/HelpButton.js +15 -0
  42. package/dist/components/FieldLabel/components/HelpButton.module.js +5 -0
  43. package/dist/components/FieldLabel/components/HelpButton_module.css +8 -0
  44. package/dist/components/FieldLabel/components/index.d.ts +1 -0
  45. package/dist/components/FieldLabel/components/index.js +1 -0
  46. package/dist/components/FileUploader/FileUploader.helpers.d.ts +1 -0
  47. package/dist/components/FileUploader/FileUploader.helpers.js +4 -1
  48. package/dist/components/FileUploader/FileUploader.js +3 -1
  49. package/dist/components/FileUploader/FileUploader.types.d.ts +1 -0
  50. package/dist/components/FileUploader/components/FileUploaderPreview/FileUploaderPreview.js +4 -4
  51. package/dist/components/Help/Help.d.ts +12 -5
  52. package/dist/components/Help/Help.js +22 -7
  53. package/dist/components/Help/Help.module.js +6 -2
  54. package/dist/components/Help/Help_module.css +36 -8
  55. package/dist/components/Hint/Hint.js +4 -5
  56. package/dist/components/Hint/Hint.module.js +2 -3
  57. package/dist/components/Hint/Hint_module.css +0 -9
  58. package/dist/components/Info/Info.d.ts +1 -4
  59. package/dist/components/Info/Info.js +27 -4
  60. package/dist/components/Info/Info.module.js +4 -1
  61. package/dist/components/Info/Info_module.css +21 -0
  62. package/dist/components/Input/Input.d.ts +10 -0
  63. package/dist/components/Input/Input.js +93 -42
  64. package/dist/components/Input/Input.module.js +19 -3
  65. package/dist/components/Input/Input_module.css +156 -19
  66. package/dist/components/Input/components/InfoBlock.d.ts +12 -0
  67. package/dist/components/Input/components/InfoBlock.js +29 -0
  68. package/dist/components/InputClear/InputClear.d.ts +5 -2
  69. package/dist/components/InputClear/InputClear.js +10 -4
  70. package/dist/components/InputClear/InputClear.module.js +3 -1
  71. package/dist/components/InputClear/InputClear_module.css +23 -10
  72. package/dist/components/InputUnit/InputUnit.d.ts +3 -0
  73. package/dist/components/InputUnit/InputUnit.js +42 -32
  74. package/dist/components/InputUnit/InputUnit.module.js +6 -1
  75. package/dist/components/InputUnit/InputUnit_module.css +27 -29
  76. package/dist/components/InputUnit/SelectUnit/SelectUnit.d.ts +1 -1
  77. package/dist/components/InputUnit/SelectUnit/SelectUnit.js +1 -4
  78. package/dist/components/InputUnit/SelectUnit/SelectUnit.module.js +1 -0
  79. package/dist/components/InputUnit/SelectUnit/SelectUnitVisible.d.ts +1 -1
  80. package/dist/components/InputUnit/SelectUnit/SelectUnitVisible.js +7 -2
  81. package/dist/components/InputUnit/SelectUnit/SelectUnit_module.css +29 -37
  82. package/dist/components/InputUnit/SelectUnit/type.d.ts +1 -0
  83. package/dist/components/InputUnit/Unit/Unit.js +1 -2
  84. package/dist/components/InputUnit/Unit/Unit_module.css +1 -0
  85. package/dist/components/Label/Label.d.ts +1 -0
  86. package/dist/components/LabelValue/LabelValue.js +18 -52
  87. package/dist/components/LabelValue/LabelValue.module.js +0 -3
  88. package/dist/components/LabelValue/LabelValue_module.css +0 -17
  89. package/dist/components/LabelValueCheckbox/LabelValueCheckbox.d.ts +10 -0
  90. package/dist/components/LabelValueCheckbox/LabelValueCheckbox.js +22 -0
  91. package/dist/components/LabelValueCheckbox/LabelValueCheckbox.module.js +5 -0
  92. package/dist/components/LabelValueCheckbox/LabelValueCheckbox_module.css +5 -0
  93. package/dist/components/LabelValueSelect/Input/Input_module.css +1 -3
  94. package/dist/components/MentionsTextfield/MentionsTextfield.d.ts +1 -1
  95. package/dist/components/MentionsTextfield/MentionsTextfield.js +41 -25
  96. package/dist/components/MentionsTextfield/OptionForStory/OptionForStory.d.ts +7 -0
  97. package/dist/components/MentionsTextfield/OptionForStory/OptionForStory.js +27 -0
  98. package/dist/components/MentionsTextfield/OptionForStory/OptionForStory.module.js +8 -0
  99. package/dist/components/MentionsTextfield/OptionForStory/OptionForStory_module.css +25 -0
  100. package/dist/components/MentionsTextfield/OptionForStory/index.d.ts +1 -0
  101. package/dist/components/MentionsTextfield/OptionForStory/index.js +1 -0
  102. package/dist/components/Multiselect/DropdownContent/MultiselectDropdownContent.js +5 -4
  103. package/dist/components/Multiselect/Input/Input_module.css +1 -3
  104. package/dist/components/Multiselect/Multiselect.d.ts +4 -0
  105. package/dist/components/Select/Combobox/Combobox_module.css +2 -6
  106. package/dist/components/Select/DropDownWithColors/DropDownWithColors.d.ts +1 -0
  107. package/dist/components/Select/DropDownWithColors/DropDownWithColors.js +2 -1
  108. package/dist/components/Select/DropdownActionsContainer/DropdownActionsContainer.d.ts +3 -0
  109. package/dist/components/Select/DropdownActionsContainer/DropdownActionsContainer.js +17 -0
  110. package/dist/components/Select/DropdownActionsContainer/DropdownActionsContainer.module.js +6 -0
  111. package/dist/components/Select/DropdownActionsContainer/DropdownActionsContainer_module.css +12 -0
  112. package/dist/components/Select/OptionsList/OptionsList.d.ts +2 -1
  113. package/dist/components/Select/OptionsList/OptionsList.js +3 -2
  114. package/dist/components/Select/OptionsList/OptionsList_module.css +4 -0
  115. package/dist/components/Select/Select.d.ts +8 -2
  116. package/dist/components/Select/Select.js +29 -34
  117. package/dist/components/Select/Select.module.js +1 -2
  118. package/dist/components/Select/Select_module.css +2 -14
  119. package/dist/components/Select/ShortVariant/ShortVariant.d.ts +5 -1
  120. package/dist/components/Select/ShortVariant/ShortVariant.js +5 -4
  121. package/dist/components/Select/ShortVariant/ShortVariant.module.js +1 -0
  122. package/dist/components/Select/ShortVariant/ShortVariant_module.css +5 -1
  123. package/dist/components/Select/types.d.ts +1 -0
  124. package/dist/components/Select/useDropdownPadding.d.ts +5 -0
  125. package/dist/components/Select/useDropdownPadding.js +22 -0
  126. package/dist/components/Textfield/Textfield.d.ts +18 -2
  127. package/dist/components/Textfield/Textfield.js +37 -13
  128. package/dist/components/Textfield/Textfield.module.js +2 -1
  129. package/dist/components/Textfield/Textfield_module.css +95 -23
  130. package/dist/components/Textfield/components/ActionButton/ActionButton.d.ts +9 -0
  131. package/dist/components/Textfield/components/ActionButton/ActionButton.js +12 -0
  132. package/dist/components/Textfield/components/ActionButton/ActionButton.module.js +9 -0
  133. package/dist/components/Textfield/components/ActionButton/ActionButton_module.css +54 -0
  134. package/dist/components/Textfield/components/ActionButton/index.d.ts +1 -0
  135. package/dist/components/Textfield/components/ActionButton/index.js +1 -0
  136. package/dist/components/Textfield/components/Container/Container.js +6 -3
  137. package/dist/components/Textfield/components/Counter/Counter.d.ts +3 -1
  138. package/dist/components/Textfield/components/Counter/Counter.js +5 -3
  139. package/dist/components/Textfield/components/Info/Info.d.ts +3 -1
  140. package/dist/components/Textfield/components/Info/Info.js +9 -4
  141. package/dist/components/Textfield/components/InnerContainer/InnerContainer.d.ts +3 -6
  142. package/dist/components/Textfield/components/InnerContainer/InnerContainer.js +2 -8
  143. package/dist/components/Textfield/components/InputContainer/InputContainer.d.ts +14 -3
  144. package/dist/components/Textfield/components/InputContainer/InputContainer.js +74 -5
  145. package/dist/components/Textfield/components/InputContainer/InputContainer.module.js +7 -1
  146. package/dist/components/Textfield/components/InputContainer/InputContainer_module.css +36 -7
  147. package/dist/components/Textfield/components/Label/Label.d.ts +2 -0
  148. package/dist/components/Textfield/components/Label/Label.js +11 -5
  149. package/dist/components/Textfield/components/Label/Label_module.css +1 -1
  150. package/dist/components/Textfield/components/ResizeHandle/ResizeHandle.d.ts +10 -0
  151. package/dist/components/Textfield/components/ResizeHandle/ResizeHandle.js +50 -0
  152. package/dist/components/Textfield/components/ResizeHandle/ResizeHandle.module.js +7 -0
  153. package/dist/components/Textfield/components/ResizeHandle/ResizeHandle_module.css +21 -0
  154. package/dist/components/Textfield/components/ResizeHandle/index.d.ts +1 -0
  155. package/dist/components/Textfield/components/ResizeHandle/index.js +1 -0
  156. package/dist/components/Textfield/consts/index.d.ts +2 -0
  157. package/dist/components/Textfield/consts/index.js +3 -0
  158. package/dist/components/Textfield/types/index.d.ts +12 -0
  159. package/dist/components/Textfield/types/index.js +5 -0
  160. package/dist/components/Textfield/utils/index.d.ts +3 -0
  161. package/dist/components/Textfield/utils/index.js +8 -0
  162. package/dist/components/Tooltip/Tooltip.d.ts +4 -1
  163. package/dist/components/Tooltip/Tooltip.js +9 -9
  164. package/dist/components/Tooltip/Tooltip.module.js +3 -1
  165. package/dist/components/Tooltip/Tooltip_module.css +13 -3
  166. package/dist/components/Tooltip/{consts.d.ts → constants/ArrowAlign.d.ts} +0 -2
  167. package/dist/components/Tooltip/constants/TooltipBodyColor.d.ts +4 -0
  168. package/dist/components/Tooltip/constants/TooltipBodyColor.js +5 -0
  169. package/dist/components/Tooltip/constants/index.d.ts +2 -0
  170. package/dist/components/Tooltip/constants/index.js +2 -0
  171. package/dist/components/Tooltip/hooks.d.ts +2 -2
  172. package/dist/components/Tooltip/hooks.js +1 -1
  173. package/dist/components/Tooltip/types.d.ts +4 -0
  174. package/dist/components/Tooltip/types.js +0 -0
  175. package/dist/components/ViewersStack/ViewersStack.d.ts +13 -0
  176. package/dist/components/ViewersStack/ViewersStack.js +77 -0
  177. package/dist/components/ViewersStack/ViewersStack.module.js +7 -0
  178. package/dist/components/ViewersStack/ViewersStack_module.css +18 -0
  179. package/dist/components/ViewersStack/components/Avatar/Avatar.d.ts +13 -0
  180. package/dist/components/ViewersStack/components/Avatar/Avatar.js +35 -0
  181. package/dist/components/ViewersStack/components/Avatar/Avatar.module.js +13 -0
  182. package/dist/components/ViewersStack/components/Avatar/Avatar_module.css +45 -0
  183. package/dist/components/ViewersStack/components/Counter/Counter.d.ts +9 -0
  184. package/dist/components/ViewersStack/components/Counter/Counter.js +27 -0
  185. package/dist/components/ViewersStack/components/Counter/Counter.module.js +5 -0
  186. package/dist/components/ViewersStack/components/Counter/Counter_module.css +20 -0
  187. package/dist/components/ViewersStack/components/ViewersTooltip/ViewersTooltip.d.ts +15 -0
  188. package/dist/components/ViewersStack/components/ViewersTooltip/ViewersTooltip.js +41 -0
  189. package/dist/components/ViewersStack/components/ViewersTooltip/ViewersTooltip.module.js +6 -0
  190. package/dist/components/ViewersStack/components/ViewersTooltip/ViewersTooltip_module.css +14 -0
  191. package/dist/components/ViewersStack/components/ViewersTooltipOverlayItem/ViewersTooltipOverlayItem.d.ts +6 -0
  192. package/dist/components/ViewersStack/components/ViewersTooltipOverlayItem/ViewersTooltipOverlayItem.js +53 -0
  193. package/dist/components/ViewersStack/components/ViewersTooltipOverlayItem/ViewersTooltipOverlayItem.module.js +7 -0
  194. package/dist/components/ViewersStack/components/ViewersTooltipOverlayItem/ViewersTooltipOverlayItem_module.css +18 -0
  195. package/dist/components/ViewersStack/components/common.module.js +7 -0
  196. package/dist/components/ViewersStack/components/common_module.css +27 -0
  197. package/dist/components/ViewersStack/types.d.ts +22 -0
  198. package/dist/components/ViewersStack/types.js +17 -0
  199. package/dist/components/ViewersStack/utils.d.ts +3 -0
  200. package/dist/components/ViewersStack/utils.js +17 -0
  201. package/dist/components/{EditableTitle → _shared/HintWithSkip}/HintWithSkip.d.ts +1 -1
  202. package/dist/components/{EditableTitle → _shared/HintWithSkip}/HintWithSkip.js +1 -1
  203. package/dist/data-grid/Table/Table.d.ts +14 -22
  204. package/dist/data-grid/Table/Table.js +99 -61
  205. package/dist/data-grid/Table/Table.module.js +2 -0
  206. package/dist/data-grid/Table/Table_module.css +23 -0
  207. package/dist/data-grid/Table/components/Body/Body.d.ts +10 -14
  208. package/dist/data-grid/Table/components/Body/Body.js +11 -47
  209. package/dist/data-grid/Table/components/DraggableRow/DraggableRow.js +1 -1
  210. package/dist/data-grid/Table/components/Footer/Footer.module.js +0 -1
  211. package/dist/data-grid/Table/components/Footer/FooterContent.d.ts +9 -0
  212. package/dist/data-grid/Table/components/Footer/{Footer.js → FooterContent.js} +4 -5
  213. package/dist/data-grid/Table/components/Footer/Footer_module.css +0 -5
  214. package/dist/data-grid/Table/components/Header/Header.module.js +0 -1
  215. package/dist/data-grid/Table/components/Header/HeaderCell.js +3 -1
  216. package/dist/data-grid/Table/components/Header/HeaderContent.d.ts +1 -0
  217. package/dist/data-grid/Table/components/Header/{Header.js → HeaderContent.js} +8 -6
  218. package/dist/data-grid/Table/components/Header/Header_module.css +0 -15
  219. package/dist/data-grid/Table/components/Row/Row.d.ts +13 -0
  220. package/dist/data-grid/Table/components/Row/Row.js +40 -0
  221. package/dist/data-grid/Table/components/Row/Row.module.js +14 -0
  222. package/dist/data-grid/Table/components/{TableRow/TableRow_module.css → Row/Row_module.css} +7 -7
  223. package/dist/data-grid/Table/components/SubRows/SubRows.d.ts +5 -4
  224. package/dist/data-grid/Table/components/SubRows/SubRows.js +3 -3
  225. package/dist/data-grid/Table/components/TableCell/TableCell.js +2 -0
  226. package/dist/data-grid/Table/components/TableDragOverlay/TableDragOverlay.d.ts +5 -6
  227. package/dist/data-grid/Table/components/TableDragOverlay/TableDragOverlay.js +2 -2
  228. package/dist/data-grid/Table/components/TableRow/TableRow.d.ts +6 -14
  229. package/dist/data-grid/Table/components/TableRow/TableRow.js +34 -25
  230. package/dist/data-grid/Table/components/VirtualTable/VirtualTable.d.ts +10 -0
  231. package/dist/data-grid/Table/components/VirtualTable/VirtualTable.js +78 -0
  232. package/dist/data-grid/Table/components/VirtualTable/VirtualTableRow.d.ts +11 -0
  233. package/dist/data-grid/Table/components/VirtualTable/VirtualTableRow.js +18 -0
  234. package/dist/data-grid/Table/components/index.d.ts +3 -3
  235. package/dist/data-grid/Table/components/index.js +2 -2
  236. package/dist/data-grid/Table/constants.d.ts +2 -0
  237. package/dist/data-grid/Table/constants.js +3 -1
  238. package/dist/data-grid/Table/hooks/index.d.ts +1 -0
  239. package/dist/data-grid/Table/hooks/index.js +1 -0
  240. package/dist/data-grid/Table/hooks/useRowContext.d.ts +16 -0
  241. package/dist/data-grid/Table/hooks/useRowContext.js +44 -0
  242. package/dist/data-grid/Table/hooks/useTableContext.d.ts +7 -2
  243. package/dist/data-grid/Table/hooks/useTableContext.js +12 -2
  244. package/dist/data-grid/Table/index.d.ts +2 -2
  245. package/dist/data-grid/Table/types.d.ts +8 -1
  246. package/dist/data-grid/Table/types.js +5 -0
  247. package/dist/data-grid/Table/utils/compareColumnIds.d.ts +1 -0
  248. package/dist/data-grid/Table/utils/compareColumnIds.js +6 -0
  249. package/dist/data-grid/Table/utils/getColumnWidthStyles.d.ts +5 -0
  250. package/dist/data-grid/Table/utils/getColumnWidthStyles.js +4 -1
  251. package/dist/data-grid/Table/utils/getTableColumnIds.d.ts +3 -0
  252. package/dist/data-grid/Table/utils/getTableColumnIds.js +5 -0
  253. package/dist/data-grid/Table/utils/index.d.ts +2 -0
  254. package/dist/data-grid/Table/utils/index.js +2 -0
  255. package/dist/data-grid/Table/utils/withDnD.js +1 -1
  256. package/dist/data-grid/base/DropdownItem/DropdownItem.d.ts +3 -3
  257. package/dist/data-grid/base/DropdownItem/DropdownItem.js +3 -2
  258. package/dist/data-grid/base/OverflowHint/OverflowHint.d.ts +1 -0
  259. package/dist/data-grid/base/OverflowHint/OverflowHint.js +5 -3
  260. package/dist/data-grid/base/OverflowHint/utils.d.ts +1 -0
  261. package/dist/data-grid/base/OverflowHint/utils.js +7 -0
  262. package/dist/data-grid/cells/AutoCompleteCell/AutoCompleteCell.js +3 -4
  263. package/dist/data-grid/cells/DecimalCell/DecimalCell_module.css +1 -1
  264. package/dist/data-grid/cells/FileCell/FileCell_module.css +1 -1
  265. package/dist/data-grid/cells/ImageCell/ImageCell.d.ts +1 -0
  266. package/dist/data-grid/cells/ImageCell/ImageCell.js +5 -2
  267. package/dist/data-grid/cells/IndexCheckboxDndCell/IndexCheckboxDndCell.d.ts +7 -2
  268. package/dist/data-grid/cells/IndexCheckboxDndCell/IndexCheckboxDndCell.js +6 -4
  269. package/dist/data-grid/cells/InputCell/InputCell.js +3 -4
  270. package/dist/data-grid/cells/IntegerCell/IntegerCell_module.css +1 -1
  271. package/dist/data-grid/cells/LinkCell/LinkCell_module.css +1 -1
  272. package/dist/data-grid/cells/NameCell/NameCell.js +3 -0
  273. package/dist/data-grid/cells/NameCell/NameCell_module.css +2 -2
  274. package/dist/data-grid/cells/NumberInputCell/NumberInputCell.js +19 -17
  275. package/dist/data-grid/cells/SelectCell/SelectCell.js +3 -4
  276. package/dist/data-grid/cells/TextCell/TextCell_module.css +1 -1
  277. package/dist/data-grid/cells/ToggleCell/ToggleCell_module.css +1 -1
  278. package/dist/data-grid/cells/components/EditableCellWrapper/EditableCellWrapper.d.ts +3 -0
  279. package/dist/data-grid/cells/components/EditableCellWrapper/EditableCellWrapper.js +9 -0
  280. package/dist/data-grid/cells/components/EditableCellWrapper/EditableCellWrapper.module.js +5 -0
  281. package/dist/data-grid/cells/{NumberInputCell/NumberInputCell_module.css → components/EditableCellWrapper/EditableCellWrapper_module.css} +2 -2
  282. package/dist/data-grid/cells/components/EditableCellWrapper/index.d.ts +1 -0
  283. package/dist/data-grid/cells/components/EditableCellWrapper/index.js +1 -0
  284. package/dist/data-grid/cells/components/RowActionsMenu/RowActionsMenu.d.ts +4 -3
  285. package/dist/data-grid/cells/components/RowActionsMenu/RowActionsMenu.js +13 -13
  286. package/dist/data-grid/cells/components/TableInput/TableInput.js +19 -3
  287. package/dist/data-grid/cells/components/TableInput/TableInput_module.css +1 -1
  288. package/dist/data-grid/cells/components/TableNumberInput/TableNumberInput.d.ts +4 -3
  289. package/dist/data-grid/cells/components/TableNumberInput/TableNumberInput.js +44 -55
  290. package/dist/data-grid/cells/components/TableSelect/ActionButton/ActionButton.d.ts +4 -1
  291. package/dist/data-grid/cells/components/TableSelect/ActionButton/ActionButton.js +4 -3
  292. package/dist/data-grid/cells/components/TableSelect/TableSelect.d.ts +15 -10
  293. package/dist/data-grid/cells/components/TableSelect/TableSelect.js +11 -7
  294. package/dist/data-grid/cells/components/index.d.ts +1 -0
  295. package/dist/data-grid/cells/components/index.js +1 -0
  296. package/dist/data-grid/cells/index.d.ts +1 -1
  297. package/dist/data-grid/cells/index.js +1 -1
  298. package/dist/data-grid/headers/PlainTextHeader.js +3 -2
  299. package/dist/data-grid/headers/components/Dropdown/DropdownArrowBtn/DropdownArrowBtn.js +5 -1
  300. package/dist/data-grid/headers/components/Dropdown/Option/Option.d.ts +1 -1
  301. package/dist/data-grid/headers/components/Dropdown/Option/Option.js +2 -2
  302. package/dist/data-grid/headers/components/Dropdown/Option/Option_module.css +10 -2
  303. package/dist/data-grid/headers/components/HeaderBuilder/HeaderBuilder.d.ts +13 -3
  304. package/dist/data-grid/headers/components/HeaderBuilder/HeaderBuilder.js +64 -83
  305. package/dist/data-grid/headers/components/HeaderBuilder/HeaderBuilder.module.js +2 -1
  306. package/dist/data-grid/headers/components/HeaderBuilder/HeaderBuilder_module.css +21 -0
  307. package/dist/data-grid/headers/components/HeaderSortGroups/components/SortByOption/SortByOption.js +7 -15
  308. package/dist/data-grid/headers/components/HideColumn/HideColumn.js +8 -13
  309. package/dist/data-grid/headers/components/ResetFilter/ResetFilter.js +7 -10
  310. package/dist/data-grid/headers/components/ResetFilter/ResetFilter.module.js +0 -1
  311. package/dist/data-grid/headers/components/ResetFilter/ResetFilter_module.css +1 -21
  312. package/dist/data-grid/headers/components/index.d.ts +1 -1
  313. package/dist/data-grid/headers/index.d.ts +1 -1
  314. package/dist/data-grid/headers/types/types.d.ts +1 -0
  315. package/dist/data-grid/types/index.d.ts +1 -0
  316. package/dist/data-grid/utils/isOverflowed.js +21 -1
  317. package/dist/hooks/useDebounceCallback/useDebounceCallback.d.ts +2 -0
  318. package/dist/hooks/useDebounceCallback/useDebounceCallback.js +21 -0
  319. package/dist/hooks/useDismissOnFocusOutside/index.d.ts +2 -1
  320. package/dist/hooks/useDismissOnFocusOutside/index.js +4 -3
  321. package/dist/hooks/useDismissOnOutsideClick/index.d.ts +2 -1
  322. package/dist/hooks/useDismissOnOutsideClick/index.js +4 -3
  323. package/dist/hooks/useTextField/useTextField.d.ts +4 -5
  324. package/dist/hooks/useTextField/useTextField.js +6 -24
  325. package/dist/hooks/useUnmount/useUnmount.d.ts +1 -0
  326. package/dist/hooks/useUnmount/useUnmount.js +9 -0
  327. package/dist/icon/components/MyApps12Icon.d.ts +8 -0
  328. package/dist/icon/components/MyApps12Icon.js +18 -0
  329. package/dist/icon/components/MyApps16Icon.d.ts +8 -0
  330. package/dist/icon/components/MyApps16Icon.js +17 -0
  331. package/dist/icon/components/MyApps20Icon.d.ts +8 -0
  332. package/dist/icon/components/MyApps20Icon.js +18 -0
  333. package/dist/icon/components/Smile12Icon.d.ts +8 -0
  334. package/dist/icon/components/Smile12Icon.js +17 -0
  335. package/dist/icon/components/Smile16Icon.d.ts +8 -0
  336. package/dist/icon/components/Smile16Icon.js +16 -0
  337. package/dist/icon/components/Smile20Icon.d.ts +8 -0
  338. package/dist/icon/components/Smile20Icon.js +17 -0
  339. package/dist/icon/index.d.ts +6 -0
  340. package/dist/icon/index.js +6 -0
  341. package/dist/index.d.ts +4 -4
  342. package/dist/index.js +3 -1
  343. package/dist/utils/debounce/debounce.d.ts +10 -0
  344. package/dist/utils/debounce/debounce.js +73 -0
  345. package/dist/utils/isRecordEqual/isRecordEqual.d.ts +1 -0
  346. package/dist/utils/isRecordEqual/isRecordEqual.js +9 -0
  347. package/dist/utils/utils.d.ts +2 -0
  348. package/dist/utils/utils.js +2 -0
  349. package/package.json +22 -3
  350. package/dist/components/LabelValue/HelpButton/HelpButton.module.js +0 -8
  351. package/dist/components/LabelValue/HelpButton/HelpButton_module.css +0 -44
  352. package/dist/components/LabelValue/HelpButton/index.d.ts +0 -8
  353. package/dist/components/LabelValue/HelpButton/index.js +0 -36
  354. package/dist/components/Textfield/components/ClearIcon/ClearIcon.d.ts +0 -6
  355. package/dist/components/Textfield/components/ClearIcon/ClearIcon.js +0 -13
  356. package/dist/components/Textfield/components/ClearIcon/ClearIcon.module.js +0 -6
  357. package/dist/components/Textfield/components/ClearIcon/ClearIcon_module.css +0 -11
  358. package/dist/data-grid/Table/components/Footer/Footer.d.ts +0 -9
  359. package/dist/data-grid/Table/components/Header/Header.d.ts +0 -8
  360. package/dist/data-grid/Table/components/TableRow/TableRow.module.js +0 -14
  361. package/dist/data-grid/cells/AutoCompleteCell/AutoCompleteCell.module.js +0 -5
  362. package/dist/data-grid/cells/AutoCompleteCell/AutoCompleteCell_module.css +0 -8
  363. package/dist/data-grid/cells/InputCell/InputCell.module.js +0 -5
  364. package/dist/data-grid/cells/InputCell/InputCell_module.css +0 -8
  365. package/dist/data-grid/cells/NumberInputCell/NumberInputCell.module.js +0 -5
  366. package/dist/data-grid/cells/SelectCell/SelectCell.module.js +0 -8
  367. package/dist/data-grid/cells/SelectCell/SelectCell_module.css +0 -33
  368. package/dist/data-grid/headers/components/HeaderSortGroups/components/SortByOption/SortByOption.module.js +0 -7
  369. package/dist/data-grid/headers/components/HeaderSortGroups/components/SortByOption/SortByOption_module.css +0 -22
  370. package/dist/data-grid/headers/components/HideColumn/HideColumn.module.js +0 -6
  371. package/dist/data-grid/headers/components/HideColumn/HideColumn_module.css +0 -20
  372. /package/dist/components/Tooltip/{consts.js → constants/ArrowAlign.js} +0 -0
@@ -4,7 +4,7 @@ import rc_tooltip from "rc-tooltip";
4
4
  import { cn } from "../../common/css/cn.js";
5
5
  import { RemoveClose12Icon } from "../../icon/index.js";
6
6
  import { ArrowIcon } from "./ArrowIcon.js";
7
- import { ArrowAlign } from "./consts.js";
7
+ import { ArrowAlign } from "./constants/index.js";
8
8
  import { useCorrectedArrowStyles } from "./hooks.js";
9
9
  import Tooltip_module from "./Tooltip.module.js";
10
10
  const alignPointsMap = {
@@ -35,10 +35,9 @@ const Placement = {
35
35
  BOTTOM_LEFT: 'bottomLeft',
36
36
  BOTTOM_RIGHT: 'bottomRight'
37
37
  };
38
- const Tooltip = (props)=>{
39
- const { testId, id, overlay, offset, visible, onVisibleChange, placement = Placement.RIGHT, trigger = [
40
- 'click'
41
- ], children, afterHide, getTooltipContainer, zIndex, hideCloseButton = false, overlayClassName, arrowContent, ...otherProps } = props;
38
+ const Tooltip = ({ testId, id, overlay, offset, visible, onVisibleChange, placement = Placement.RIGHT, trigger = [
39
+ 'click'
40
+ ], children, afterHide, getTooltipContainer, zIndex, hideCloseButton = false, overlayClassName, arrowClassName, colorToken = 'light', arrowContent, ...restProps })=>{
42
41
  const [arrowAlign, setArrowAlign] = useState(ArrowAlign.TOP_LEFT);
43
42
  const [refClose, setRefClose] = useState(null);
44
43
  const handleHide = useCallback((e)=>{
@@ -72,18 +71,19 @@ const Tooltip = (props)=>{
72
71
  const joinedXY = align.points?.join('_') ?? '';
73
72
  setArrowAlign(alignPointsMap[joinedXY] ?? Placement.TOP);
74
73
  }, []);
74
+ const bodyClassName = Tooltip_module[`${colorToken}ColorToken`];
75
75
  return /*#__PURE__*/ jsx(rc_tooltip, {
76
76
  id: id,
77
77
  visible: visible,
78
78
  prefixCls: "tooltip-dt",
79
- overlayClassName: cn(Tooltip_module.overlayWrapper, overlayClassName),
79
+ overlayClassName: cn(Tooltip_module.overlayWrapper, bodyClassName, overlayClassName),
80
80
  placement: placement,
81
81
  trigger: trigger,
82
82
  destroyTooltipOnHide: true,
83
83
  arrowContent: /*#__PURE__*/ jsx("div", {
84
- className: cn(Tooltip_module.arrowIcon, cssCorrectedArrowAlign),
84
+ className: cn(Tooltip_module.arrowIcon, cssCorrectedArrowAlign, bodyClassName),
85
85
  children: arrowContent ? arrowContent : /*#__PURE__*/ jsx(ArrowIcon, {
86
- className: Tooltip_module.arrow
86
+ className: cn(Tooltip_module.arrow, arrowClassName)
87
87
  })
88
88
  }),
89
89
  onVisibleChange: onVisibleChange,
@@ -105,7 +105,7 @@ const Tooltip = (props)=>{
105
105
  })
106
106
  ]
107
107
  }),
108
- ...otherProps,
108
+ ...restProps,
109
109
  children: children
110
110
  });
111
111
  };
@@ -26,6 +26,8 @@ const Tooltip_module = {
26
26
  right_top: "right_top-v2LpVW",
27
27
  rightTop: "right_top-v2LpVW",
28
28
  left_top: "left_top-i5Yqg8",
29
- leftTop: "left_top-i5Yqg8"
29
+ leftTop: "left_top-i5Yqg8",
30
+ lightColorToken: "lightColorToken-IGd7lI",
31
+ darkColorToken: "darkColorToken-BeXlX6"
30
32
  };
31
33
  export default Tooltip_module;
@@ -1,6 +1,6 @@
1
1
  .overlayWrapper-Nfxvlh {
2
2
  cursor: initial;
3
- background: var(--light-white);
3
+ background: var(--tooltip-body-background, var(--light-white));
4
4
  border-radius: 4px;
5
5
  padding: 20px 24px 20px 20px;
6
6
  position: absolute;
@@ -16,12 +16,12 @@
16
16
  }
17
17
 
18
18
  .arrowIcon-d14ZUp .arrow-xeigvs {
19
- fill: var(--bgd-white, #fff);
19
+ fill: var(--tooltip-body-background, var(--bgd-white, #fff));
20
20
  }
21
21
 
22
22
  .closeIcon-YhM5xC {
23
23
  cursor: pointer;
24
- color: var(--dark-grey-dark-900);
24
+ color: var(--tooltip-close-icon-color, var(--dark-grey-dark-900));
25
25
  position: absolute;
26
26
  top: 13px;
27
27
  right: 13px;
@@ -96,3 +96,13 @@
96
96
  transform: rotate(180deg);
97
97
  }
98
98
 
99
+ .lightColorToken-IGd7lI {
100
+ --tooltip-body-background: var(--bgd-white);
101
+ --tooltip-close-icon-color: var(--text-primary);
102
+ }
103
+
104
+ .darkColorToken-BeXlX6 {
105
+ --tooltip-body-background: var(--invert-background);
106
+ --tooltip-close-icon-color: var(--invert-text);
107
+ }
108
+
@@ -1,4 +1,3 @@
1
- import type { ValueOf } from '../../common/types';
2
1
  export declare const ArrowAlign: {
3
2
  readonly TOP_CENTER: "top_center";
4
3
  readonly TOP_LEFT: "top_left";
@@ -13,4 +12,3 @@ export declare const ArrowAlign: {
13
12
  readonly TOP_RIGHT: "top_right";
14
13
  readonly BOTTOM_RIGHT: "bottom_right";
15
14
  };
16
- export type ArrowAlignValue = ValueOf<typeof ArrowAlign>;
@@ -0,0 +1,4 @@
1
+ export declare const TooltipBodyColor: {
2
+ readonly light: "light";
3
+ readonly dark: "dark";
4
+ };
@@ -0,0 +1,5 @@
1
+ const TooltipBodyColor = {
2
+ light: 'light',
3
+ dark: 'dark'
4
+ };
5
+ export { TooltipBodyColor };
@@ -0,0 +1,2 @@
1
+ export { ArrowAlign } from './ArrowAlign';
2
+ export { TooltipBodyColor } from './TooltipBodyColor';
@@ -0,0 +1,2 @@
1
+ export { ArrowAlign } from "./ArrowAlign.js";
2
+ export { TooltipBodyColor } from "./TooltipBodyColor.js";
@@ -1,5 +1,5 @@
1
- import { type ArrowAlignValue } from './consts';
2
1
  import { type TooltipProps } from './Tooltip';
2
+ import type { TArrowAlignValue } from './types';
3
3
  interface ReturnObj {
4
4
  correctedOffset?: [number, number];
5
5
  cssCorrectedArrowAlign?: string;
@@ -8,7 +8,7 @@ interface Options {
8
8
  offset: TooltipProps['offset'];
9
9
  placement: TooltipProps['placement'];
10
10
  styles: Record<string, string>;
11
- arrowAlign: ArrowAlignValue;
11
+ arrowAlign: TArrowAlignValue;
12
12
  }
13
13
  export declare const useCorrectedArrowStyles: ({ offset, placement, styles, arrowAlign, }: Options) => ReturnObj;
14
14
  export {};
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from "react";
2
- import { ArrowAlign } from "./consts.js";
2
+ import { ArrowAlign } from "./constants/index.js";
3
3
  import { Placement } from "./Tooltip.js";
4
4
  const DEFAULT_OFFSET_ADDITION = 15;
5
5
  const useCorrectedArrowStyles = ({ offset = [
@@ -0,0 +1,4 @@
1
+ import type { ValueOf } from '../../common/types';
2
+ import { ArrowAlign, TooltipBodyColor } from './constants';
3
+ export type TArrowAlignValue = ValueOf<typeof ArrowAlign>;
4
+ export type TTooltipBodyColorToken = ValueOf<typeof TooltipBodyColor>;
File without changes
@@ -0,0 +1,13 @@
1
+ import { type IHasTestId } from '../../common';
2
+ import { type Viewer } from './types';
3
+ export type ViewersStackProps = {
4
+ viewers: Viewer[];
5
+ maxVisibleCount?: number;
6
+ label?: string;
7
+ animated?: boolean;
8
+ tooltipZIndex?: number;
9
+ } & IHasTestId;
10
+ export declare const ViewersStack: {
11
+ ({ viewers, label, testId, animated, maxVisibleCount, tooltipZIndex, }: ViewersStackProps): import("react/jsx-runtime").JSX.Element | null;
12
+ displayName: string;
13
+ };
@@ -0,0 +1,77 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { Text } from "../Text/Text.js";
4
+ import { Avatar } from "./components/Avatar/Avatar.js";
5
+ import { Counter } from "./components/Counter/Counter.js";
6
+ import { ViewersTooltip } from "./components/ViewersTooltip/ViewersTooltip.js";
7
+ import { COLORS, Size } from "./types.js";
8
+ import { getColorById, getScaledItemZIndexStyle } from "./utils.js";
9
+ import ViewersStack_module from "./ViewersStack.module.js";
10
+ const DEFAULT_MAX_VISIBLE_COUNT = 3;
11
+ const DEFAULT_TOOLTIP_Z_INDEX = 10;
12
+ const ViewersStack = ({ viewers, label, testId, animated = true, maxVisibleCount = DEFAULT_MAX_VISIBLE_COUNT, tooltipZIndex = DEFAULT_TOOLTIP_Z_INDEX })=>{
13
+ const viewersLength = viewers.length;
14
+ const hasOverflow = viewersLength > maxVisibleCount;
15
+ const [visibleViewers, overflowedViewers] = useMemo(()=>{
16
+ const coloredViewers = viewers.map((viewer)=>({
17
+ ...viewer,
18
+ color: getColorById(viewer.id, COLORS)
19
+ }));
20
+ const visibleViewers = hasOverflow ? coloredViewers.slice(0, maxVisibleCount - 1) : coloredViewers;
21
+ const overflowedViewers = hasOverflow ? coloredViewers.slice(maxVisibleCount - 1) : [];
22
+ return [
23
+ visibleViewers,
24
+ overflowedViewers
25
+ ];
26
+ }, [
27
+ hasOverflow,
28
+ maxVisibleCount,
29
+ viewers
30
+ ]);
31
+ if (!viewersLength) return null;
32
+ return /*#__PURE__*/ jsxs("div", {
33
+ className: ViewersStack_module.wrapper,
34
+ "data-test-id": testId,
35
+ children: [
36
+ /*#__PURE__*/ jsxs("div", {
37
+ className: ViewersStack_module.container,
38
+ "data-test-id": "avatars",
39
+ style: getScaledItemZIndexStyle(tooltipZIndex),
40
+ children: [
41
+ visibleViewers.map((viewer, index)=>/*#__PURE__*/ jsx(ViewersTooltip, {
42
+ viewers: viewer,
43
+ testId: testId,
44
+ zIndex: tooltipZIndex,
45
+ children: /*#__PURE__*/ jsx(Avatar, {
46
+ label: viewer.label,
47
+ image: viewer.image,
48
+ color: viewer.color,
49
+ size: Size.M,
50
+ bordered: true,
51
+ animated: animated,
52
+ className: ViewersStack_module.avatarsItem,
53
+ testId: `${viewer.id}-avatar`
54
+ })
55
+ }, `${viewer.id}-${index}`)),
56
+ hasOverflow && /*#__PURE__*/ jsx(ViewersTooltip, {
57
+ viewers: overflowedViewers,
58
+ testId: testId,
59
+ zIndex: tooltipZIndex,
60
+ children: /*#__PURE__*/ jsx(Counter, {
61
+ count: overflowedViewers.length,
62
+ className: ViewersStack_module.avatarsItem,
63
+ animated: animated
64
+ })
65
+ })
66
+ ]
67
+ }),
68
+ label && /*#__PURE__*/ jsx(Text.Body, {
69
+ as: "label",
70
+ testId: "label",
71
+ children: label
72
+ })
73
+ ]
74
+ });
75
+ };
76
+ ViewersStack.displayName = 'ViewersStack';
77
+ export { ViewersStack };
@@ -0,0 +1,7 @@
1
+ import "./ViewersStack_module.css";
2
+ const ViewersStack_module = {
3
+ wrapper: "wrapper-HKt5AT",
4
+ container: "container-Lfw1tF",
5
+ avatarsItem: "avatarsItem-hZ6Air"
6
+ };
7
+ export default ViewersStack_module;
@@ -0,0 +1,18 @@
1
+ .wrapper-HKt5AT {
2
+ align-items: center;
3
+ gap: 12px;
4
+ display: inline-flex;
5
+ }
6
+
7
+ .container-Lfw1tF {
8
+ align-items: center;
9
+ height: 20px;
10
+ display: inline-flex;
11
+ position: relative;
12
+ }
13
+
14
+ .avatarsItem-hZ6Air {
15
+ cursor: default;
16
+ margin-right: -7px;
17
+ }
18
+
@@ -0,0 +1,13 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type IHasTestId } from '../../../../common';
3
+ import { type ColoredViewer, type ColorValue, type SizeValue } from '../../types';
4
+ export type AvatarProps = Omit<ColoredViewer, 'id'> & HTMLAttributes<HTMLDivElement> & IHasTestId & {
5
+ size: SizeValue;
6
+ bordered?: boolean;
7
+ color?: ColorValue;
8
+ animated?: boolean;
9
+ };
10
+ export declare const Avatar: {
11
+ ({ image, label, size, bordered, color, className, testId, animated, ...restProps }: AvatarProps): import("react/jsx-runtime").JSX.Element;
12
+ displayName: string;
13
+ };
@@ -0,0 +1,35 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import { cn } from "../../../../common/index.js";
4
+ import { Text, TextColor, TextVariant } from "../../../Text/Text.js";
5
+ import { Size } from "../../types.js";
6
+ import common_module from "../common.module.js";
7
+ import Avatar_module from "./Avatar.module.js";
8
+ const Avatar = ({ image, label, size, bordered, color, className, testId, animated, ...restProps })=>{
9
+ const containerClassName = cn(Avatar_module.container, size === Size.M ? Avatar_module.sizeM : Avatar_module.sizeL, color && Avatar_module[color], bordered && Avatar_module.bordered, animated && common_module.animated);
10
+ return /*#__PURE__*/ jsxs("div", {
11
+ className: cn(common_module.wrapper, className),
12
+ children: [
13
+ /*#__PURE__*/ jsx("div", {
14
+ ...restProps,
15
+ className: containerClassName,
16
+ "data-test-id": testId,
17
+ children: image && /*#__PURE__*/ jsx("img", {
18
+ "data-test-id": "image",
19
+ src: image,
20
+ alt: label,
21
+ className: Avatar_module.image
22
+ })
23
+ }),
24
+ !image && /*#__PURE__*/ jsx(Text, {
25
+ variant: size === Size.M ? TextVariant.caption : TextVariant.body,
26
+ colorToken: TextColor.invert,
27
+ className: cn(common_module.text),
28
+ "data-test-id": "letter",
29
+ children: label.charAt(0).toUpperCase()
30
+ })
31
+ ]
32
+ });
33
+ };
34
+ Avatar.displayName = 'Avatar';
35
+ export { Avatar };
@@ -0,0 +1,13 @@
1
+ import "./Avatar_module.css";
2
+ const Avatar_module = {
3
+ container: "container-cGXPpK",
4
+ sizeM: "sizeM-oMfsK4",
5
+ sizeL: "sizeL-JE5CbR",
6
+ green: "green-ZqE4pT",
7
+ yellow: "yellow-a_8Hj4",
8
+ pink: "pink-RJTX3n",
9
+ violet: "violet-E_1yLC",
10
+ bordered: "bordered-ZIj3OP",
11
+ image: "image-pj5soj"
12
+ };
13
+ export default Avatar_module;
@@ -0,0 +1,45 @@
1
+ .container-cGXPpK {
2
+ width: var(--avatar-diameter);
3
+ height: var(--avatar-diameter);
4
+ min-width: var(--avatar-diameter);
5
+ min-height: var(--avatar-diameter);
6
+ background-color: var(--border-normal);
7
+ border-radius: 50%;
8
+ position: relative;
9
+ overflow: hidden;
10
+ }
11
+
12
+ .sizeM-oMfsK4 {
13
+ --avatar-diameter: 20px;
14
+ }
15
+
16
+ .sizeL-JE5CbR {
17
+ --avatar-diameter: 32px;
18
+ }
19
+
20
+ .green-ZqE4pT {
21
+ background-color: var(--viewers-stack-green);
22
+ }
23
+
24
+ .yellow-a_8Hj4 {
25
+ background-color: var(--viewers-stack-yellow);
26
+ }
27
+
28
+ .pink-RJTX3n {
29
+ background-color: var(--viewers-stack-pink);
30
+ }
31
+
32
+ .violet-E_1yLC {
33
+ background-color: var(--viewers-stack-violet);
34
+ }
35
+
36
+ .bordered-ZIj3OP {
37
+ border: 1px solid var(--border-normal);
38
+ }
39
+
40
+ .image-pj5soj {
41
+ object-fit: cover;
42
+ width: 100%;
43
+ height: 100%;
44
+ }
45
+
@@ -0,0 +1,9 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export type CounterProps = HTMLAttributes<HTMLDivElement> & {
3
+ count: number;
4
+ animated?: boolean;
5
+ };
6
+ export declare const Counter: {
7
+ ({ count, animated, className, ...restProps }: CounterProps): import("react/jsx-runtime").JSX.Element;
8
+ displayName: string;
9
+ };
@@ -0,0 +1,27 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import { cn } from "../../../../common/index.js";
4
+ import { Text, TextColor } from "../../../Text/Text.js";
5
+ import common_module from "../common.module.js";
6
+ import Counter_module from "./Counter.module.js";
7
+ const Counter = ({ count, animated, className, ...restProps })=>{
8
+ const label = `+${count}`;
9
+ return /*#__PURE__*/ jsxs("div", {
10
+ ...restProps,
11
+ className: cn(common_module.wrapper, className),
12
+ children: [
13
+ /*#__PURE__*/ jsx("div", {
14
+ className: cn(Counter_module.container, animated && common_module.animated),
15
+ "data-text": label
16
+ }),
17
+ /*#__PURE__*/ jsx(Text.Caption, {
18
+ testId: "counter",
19
+ colorToken: TextColor.primary,
20
+ className: common_module.text,
21
+ children: label
22
+ })
23
+ ]
24
+ });
25
+ };
26
+ Counter.displayName = 'Counter';
27
+ export { Counter };
@@ -0,0 +1,5 @@
1
+ import "./Counter_module.css";
2
+ const Counter_module = {
3
+ container: "container-AMsfBs"
4
+ };
5
+ export default Counter_module;
@@ -0,0 +1,20 @@
1
+ .container-AMsfBs {
2
+ background-color: var(--border-normal);
3
+ border: 1px solid var(--border-normal);
4
+ border-radius: 14px;
5
+ justify-content: center;
6
+ align-items: center;
7
+ height: 20px;
8
+ padding: 0 4px;
9
+ display: inline-flex;
10
+ position: relative;
11
+ }
12
+
13
+ .container-AMsfBs:after {
14
+ content: attr(data-text);
15
+ visibility: hidden;
16
+ white-space: nowrap;
17
+ font-size: 12px;
18
+ display: block;
19
+ }
20
+
@@ -0,0 +1,15 @@
1
+ import { type PropsWithChildren } from 'react';
2
+ import { type TooltipProps } from '../../../Tooltip/Tooltip';
3
+ import type { ColoredViewer } from '../../types';
4
+ type OmittedTooltipProps = 'visible' | 'onVisibleChange' | 'overlay' | 'trigger' | 'hideCloseButton' | 'placement' | 'offset';
5
+ type ViewersTooltipCoreProps = Omit<TooltipProps, OmittedTooltipProps> & {
6
+ viewers: ColoredViewer | ColoredViewer[];
7
+ placement?: TooltipProps['placement'];
8
+ offset?: TooltipProps['offset'];
9
+ };
10
+ export type ViewersTooltipProps = PropsWithChildren<ViewersTooltipCoreProps>;
11
+ export declare const ViewersTooltip: {
12
+ ({ children, viewers, overlayClassName, placement, offset, testId, ...restProps }: ViewersTooltipProps): import("react/jsx-runtime").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ export {};
@@ -0,0 +1,41 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useMemo, useState } from "react";
3
+ import { cn } from "../../../../common/index.js";
4
+ import { Placement, Tooltip } from "../../../Tooltip/Tooltip.js";
5
+ import { ViewersTooltipOverlayItem } from "../ViewersTooltipOverlayItem/ViewersTooltipOverlayItem.js";
6
+ import ViewersTooltip_module from "./ViewersTooltip.module.js";
7
+ const ViewersTooltip = ({ children, viewers, overlayClassName, placement = Placement.BOTTOM_LEFT, offset = [
8
+ -10,
9
+ 0
10
+ ], testId, ...restProps })=>{
11
+ const [visible, setVisible] = useState(false);
12
+ const list = useMemo(()=>{
13
+ if (Array.isArray(viewers)) return viewers;
14
+ return [
15
+ viewers
16
+ ];
17
+ }, [
18
+ viewers
19
+ ]);
20
+ return /*#__PURE__*/ jsx(Tooltip, {
21
+ ...restProps,
22
+ trigger: "hover",
23
+ visible: visible,
24
+ onVisibleChange: setVisible,
25
+ offset: offset,
26
+ placement: placement,
27
+ testId: testId,
28
+ hideCloseButton: true,
29
+ overlayClassName: cn(ViewersTooltip_module.overlay, overlayClassName),
30
+ overlay: /*#__PURE__*/ jsx("div", {
31
+ className: ViewersTooltip_module.overlayItems,
32
+ "data-test-id": "overlay-items",
33
+ children: list.map((viewer, index)=>/*#__PURE__*/ jsx(ViewersTooltipOverlayItem, {
34
+ ...viewer
35
+ }, `${viewer.id}-${index}`))
36
+ }),
37
+ children: children
38
+ });
39
+ };
40
+ ViewersTooltip.displayName = 'ViewersTooltip';
41
+ export { ViewersTooltip };
@@ -0,0 +1,6 @@
1
+ import "./ViewersTooltip_module.css";
2
+ const ViewersTooltip_module = {
3
+ overlay: "overlay-trbx8j",
4
+ overlayItems: "overlayItems-g_vTzt"
5
+ };
6
+ export default ViewersTooltip_module;
@@ -0,0 +1,14 @@
1
+ .overlay-trbx8j {
2
+ width: fit-content;
3
+ }
4
+
5
+ .overlayItems-g_vTzt {
6
+ flex-direction: column;
7
+ justify-content: start;
8
+ gap: 8px;
9
+ max-width: 256px;
10
+ max-height: 400px;
11
+ display: flex;
12
+ overflow: auto;
13
+ }
14
+
@@ -0,0 +1,6 @@
1
+ import { type ColoredViewer } from '../../types';
2
+ export declare const isOverflowed: <T extends HTMLElement>(element: T) => boolean;
3
+ export declare const ViewersTooltipOverlayItem: {
4
+ ({ id, label, image, color, }: ColoredViewer): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };
@@ -0,0 +1,53 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useRef, useState } from "react";
3
+ import { cn } from "../../../../common/index.js";
4
+ import { Hint } from "../../../Hint/Hint.js";
5
+ import { Text, TextColor } from "../../../Text/Text.js";
6
+ import { Placement } from "../../../Tooltip/Tooltip.js";
7
+ import { Size } from "../../types.js";
8
+ import { Avatar } from "../Avatar/Avatar.js";
9
+ import ViewersTooltipOverlayItem_module from "./ViewersTooltipOverlayItem.module.js";
10
+ const isOverflowed = (element)=>element.scrollWidth > element.clientWidth;
11
+ const ViewersTooltipOverlayItem = ({ id, label, image, color })=>{
12
+ const labelRef = useRef(null);
13
+ const [hintVisibility, setHintVisibility] = useState(false);
14
+ const handleVisibleChange = (visible)=>{
15
+ if (!labelRef.current) return;
16
+ if (visible && isOverflowed(labelRef.current)) setHintVisibility(true);
17
+ if (!visible) setHintVisibility(false);
18
+ };
19
+ return /*#__PURE__*/ jsxs("div", {
20
+ className: ViewersTooltipOverlayItem_module.container,
21
+ "data-test-id": "overlay-item",
22
+ children: [
23
+ /*#__PURE__*/ jsx(Avatar, {
24
+ size: Size.L,
25
+ color: color,
26
+ image: image,
27
+ label: label,
28
+ testId: `${id}-avatar`
29
+ }),
30
+ /*#__PURE__*/ jsx(Hint, {
31
+ mouseEnterDelay: 0.3,
32
+ mouseLeaveDelay: 0,
33
+ zIndex: 100,
34
+ visible: hintVisibility,
35
+ placement: Placement.BOTTOM,
36
+ onVisibleChange: handleVisibleChange,
37
+ overlay: /*#__PURE__*/ jsx(Text.Body, {
38
+ testId: `${id}-label-hint-text`,
39
+ colorToken: TextColor.invert,
40
+ children: label
41
+ }),
42
+ children: /*#__PURE__*/ jsx(Text.Body, {
43
+ className: cn(ViewersTooltipOverlayItem_module.ellipsis, ViewersTooltipOverlayItem_module.paddingRight),
44
+ ref: labelRef,
45
+ testId: `${id}-label`,
46
+ children: label
47
+ })
48
+ })
49
+ ]
50
+ });
51
+ };
52
+ ViewersTooltipOverlayItem.displayName = 'ViewersTooltipOverlayItem';
53
+ export { ViewersTooltipOverlayItem, isOverflowed };
@@ -0,0 +1,7 @@
1
+ import "./ViewersTooltipOverlayItem_module.css";
2
+ const ViewersTooltipOverlayItem_module = {
3
+ container: "container-o_NQY9",
4
+ ellipsis: "ellipsis-owqt58",
5
+ paddingRight: "paddingRight-aaAaAO"
6
+ };
7
+ export default ViewersTooltipOverlayItem_module;
@@ -0,0 +1,18 @@
1
+ .container-o_NQY9 {
2
+ cursor: default;
3
+ justify-content: start;
4
+ align-items: center;
5
+ gap: 8px;
6
+ display: flex;
7
+ }
8
+
9
+ .ellipsis-owqt58 {
10
+ text-overflow: ellipsis;
11
+ white-space: nowrap;
12
+ overflow: hidden;
13
+ }
14
+
15
+ .paddingRight-aaAaAO {
16
+ padding-right: 8px;
17
+ }
18
+
@@ -0,0 +1,7 @@
1
+ import "./common_module.css";
2
+ const common_module = {
3
+ wrapper: "wrapper-PSBfa1",
4
+ text: "text-sRc9nc",
5
+ animated: "animated-R8DWjF"
6
+ };
7
+ export default common_module;