@vibe/core 4.5.25 → 4.5.26

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 (206) hide show
  1. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroup.js +2 -0
  2. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroup.js.map +1 -0
  3. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroup.module.scss.js +2 -0
  4. package/dist/{mocked_classnames/src/components → components/avatar-group/dist}/AvatarGroup/AvatarGroupConstants.js +1 -1
  5. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupConstants.js.map +1 -0
  6. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounter.js +2 -0
  7. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounter.js.map +1 -0
  8. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounter.module.scss.js +2 -0
  9. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContainer.js +2 -0
  10. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +1 -0
  11. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContent.js +2 -0
  12. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +1 -0
  13. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js +2 -0
  14. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js +2 -0
  15. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +1 -0
  16. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js +2 -0
  17. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipHelper.js +2 -0
  18. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupCounterTooltipHelper.js.map +1 -0
  19. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupHelper.js +2 -0
  20. package/dist/components/avatar-group/dist/AvatarGroup/AvatarGroupHelper.js.map +1 -0
  21. package/dist/components/breadcrumbs/dist/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.module.scss.js +1 -1
  22. package/dist/components/breadcrumbs/dist/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.module.scss.js +1 -1
  23. package/dist/components/breadcrumbs/dist/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbsMenu.module.scss.js +1 -1
  24. package/dist/components/breadcrumbs/dist/BreadcrumbsBar/BreadcrumbsBar.module.scss.js +1 -1
  25. package/dist/components/dropdown/dist/Dropdown/components/DropdownBase/DropdownBase.module.scss.js +1 -1
  26. package/dist/components/dropdown/dist/Dropdown/components/DropdownBaseList/DropdownBaseList.module.scss.js +1 -1
  27. package/dist/components/dropdown/dist/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js +1 -1
  28. package/dist/components/dropdown/dist/Dropdown/components/Menu/Menu.module.scss.js +1 -1
  29. package/dist/components/dropdown/dist/Dropdown/components/MultiSelectedValues/MultiSelectedValues.module.scss.js +1 -1
  30. package/dist/components/dropdown/dist/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
  31. package/dist/components/index.d.ts +2 -2
  32. package/dist/components/layout/dist/Box/Box.js +1 -1
  33. package/dist/components/layout/dist/Box/Box.js.map +1 -1
  34. package/dist/components/search/dist/Search/Search.js +2 -0
  35. package/dist/components/search/dist/Search/Search.js.map +1 -0
  36. package/dist/components/search/dist/Search/Search.module.scss.js +2 -0
  37. package/dist/metadata/components.json +1 -1
  38. package/dist/metadata.json +1 -1
  39. package/dist/mocked_classnames/components/index.d.ts +2 -2
  40. package/dist/mocked_classnames/src/components/Combobox/Combobox.js +1 -1
  41. package/dist/mocked_classnames/src/components/Combobox/Combobox.js.map +1 -1
  42. package/dist/mocked_classnames/src/components/Combobox/Combobox.module.scss.js +1 -1
  43. package/dist/mocked_classnames/src/components/Combobox/ComboboxHelpers/ComboboxHelpers.module.scss.js +1 -1
  44. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.module.scss.js +1 -1
  45. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxItems/ComboboxItems.module.scss.js +1 -1
  46. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxOption/ComboboxOption.module.scss.js +1 -1
  47. package/dist/mocked_classnames/src/components/Combobox/components/StickyCategoryHeader/StickyCategoryHeader.module.scss.js +1 -1
  48. package/dist/mocked_classnames/src/components/DatePicker/DatePicker.module.scss.js +1 -1
  49. package/dist/mocked_classnames/src/components/DatePicker/DatePickerHeader.module.scss.js +1 -1
  50. package/dist/mocked_classnames/src/components/List/List.module.scss.js +1 -1
  51. package/dist/mocked_classnames/src/components/List/VirtualizedListItems/VirtualizedListItems.module.scss.js +1 -1
  52. package/dist/mocked_classnames/src/components/ListItem/ListItem.module.scss.js +1 -1
  53. package/dist/mocked_classnames/src/components/ListItemAvatar/ListItemAvatar.module.scss.js +1 -1
  54. package/dist/mocked_classnames/src/components/ListItemIcon/ListItemIcon.module.scss.js +1 -1
  55. package/dist/mocked_classnames/src/components/ListTitle/ListTitle.module.scss.js +1 -1
  56. package/dist/mocked_classnames/src/components/Modal/Modal/Modal.module.scss.js +1 -1
  57. package/dist/mocked_classnames/src/components/Modal/ModalHeader/ModalHeader.module.scss.js +1 -1
  58. package/dist/mocked_classnames/src/components/Modal/ModalMedia/ModalMedia.module.scss.js +1 -1
  59. package/dist/mocked_classnames/src/components/Modal/ModalTopActions/ModalTopActions.module.scss.js +1 -1
  60. package/dist/mocked_classnames/src/components/Modal/footers/ModalFooter/ModalFooter.module.scss.js +1 -1
  61. package/dist/mocked_classnames/src/components/Modal/footers/ModalFooterBase/ModalFooterBase.module.scss.js +1 -1
  62. package/dist/mocked_classnames/src/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.module.scss.js +1 -1
  63. package/dist/mocked_classnames/src/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.module.scss.js +1 -1
  64. package/dist/mocked_classnames/src/components/Modal/layouts/ModalFooterShadow.module.scss.js +1 -1
  65. package/dist/mocked_classnames/src/components/Modal/layouts/ModalLayoutScrollableContent.module.scss.js +1 -1
  66. package/dist/mocked_classnames/src/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.module.scss.js +1 -1
  67. package/dist/mocked_classnames/src/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.module.scss.js +1 -1
  68. package/dist/mocked_classnames/src/components/SplitButton/SplitButton.module.scss.js +1 -1
  69. package/dist/mocked_classnames/src/components/Table/Table/Table.module.scss.js +1 -1
  70. package/dist/mocked_classnames/src/components/Table/TableBody/TableBody.module.scss.js +1 -1
  71. package/dist/mocked_classnames/src/components/Table/TableCell/TableCell.module.scss.js +1 -1
  72. package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.module.scss.js +1 -1
  73. package/dist/mocked_classnames/src/components/Table/TableContainer/TableContainer.module.scss.js +1 -1
  74. package/dist/mocked_classnames/src/components/Table/TableHeader/TableHeader.module.scss.js +1 -1
  75. package/dist/mocked_classnames/src/components/Table/TableHeaderCell/TableHeaderCell.module.scss.js +1 -1
  76. package/dist/mocked_classnames/src/components/Table/TableRow/TableRow.module.scss.js +1 -1
  77. package/dist/mocked_classnames/src/components/Table/TableRowMenu/TableRowMenu.module.scss.js +1 -1
  78. package/dist/mocked_classnames/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.module.scss.js +1 -1
  79. package/dist/mocked_classnames/src/components/next/List/List.module.scss.js +1 -1
  80. package/dist/mocked_classnames/src/components/next/List/ListTitle/ListTitle.module.scss.js +1 -1
  81. package/dist/mocked_classnames/src/index.js +1 -1
  82. package/dist/src/components/Combobox/Combobox.js +1 -1
  83. package/dist/src/components/Combobox/Combobox.js.map +1 -1
  84. package/dist/src/components/Combobox/Combobox.module.scss.js +1 -1
  85. package/dist/src/components/Combobox/ComboboxHelpers/ComboboxHelpers.module.scss.js +1 -1
  86. package/dist/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.module.scss.js +1 -1
  87. package/dist/src/components/Combobox/components/ComboboxItems/ComboboxItems.module.scss.js +1 -1
  88. package/dist/src/components/Combobox/components/ComboboxOption/ComboboxOption.module.scss.js +1 -1
  89. package/dist/src/components/Combobox/components/StickyCategoryHeader/StickyCategoryHeader.module.scss.js +1 -1
  90. package/dist/src/components/DatePicker/DatePicker.module.scss.js +1 -1
  91. package/dist/src/components/DatePicker/DatePickerHeader.module.scss.js +1 -1
  92. package/dist/src/components/List/List.module.scss.js +1 -1
  93. package/dist/src/components/List/VirtualizedListItems/VirtualizedListItems.module.scss.js +1 -1
  94. package/dist/src/components/ListItem/ListItem.module.scss.js +1 -1
  95. package/dist/src/components/ListItemAvatar/ListItemAvatar.module.scss.js +1 -1
  96. package/dist/src/components/ListItemIcon/ListItemIcon.module.scss.js +1 -1
  97. package/dist/src/components/ListTitle/ListTitle.module.scss.js +1 -1
  98. package/dist/src/components/Modal/Modal/Modal.module.scss.js +1 -1
  99. package/dist/src/components/Modal/ModalHeader/ModalHeader.module.scss.js +1 -1
  100. package/dist/src/components/Modal/ModalMedia/ModalMedia.module.scss.js +1 -1
  101. package/dist/src/components/Modal/ModalTopActions/ModalTopActions.module.scss.js +1 -1
  102. package/dist/src/components/Modal/footers/ModalFooter/ModalFooter.module.scss.js +1 -1
  103. package/dist/src/components/Modal/footers/ModalFooterBase/ModalFooterBase.module.scss.js +1 -1
  104. package/dist/src/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.module.scss.js +1 -1
  105. package/dist/src/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.module.scss.js +1 -1
  106. package/dist/src/components/Modal/layouts/ModalFooterShadow.module.scss.js +1 -1
  107. package/dist/src/components/Modal/layouts/ModalLayoutScrollableContent.module.scss.js +1 -1
  108. package/dist/src/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.module.scss.js +1 -1
  109. package/dist/src/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.module.scss.js +1 -1
  110. package/dist/src/components/SplitButton/SplitButton.module.scss.js +1 -1
  111. package/dist/src/components/Table/Table/Table.module.scss.js +1 -1
  112. package/dist/src/components/Table/TableBody/TableBody.module.scss.js +1 -1
  113. package/dist/src/components/Table/TableCell/TableCell.module.scss.js +1 -1
  114. package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.module.scss.js +1 -1
  115. package/dist/src/components/Table/TableContainer/TableContainer.module.scss.js +1 -1
  116. package/dist/src/components/Table/TableHeader/TableHeader.module.scss.js +1 -1
  117. package/dist/src/components/Table/TableHeaderCell/TableHeaderCell.module.scss.js +1 -1
  118. package/dist/src/components/Table/TableRow/TableRow.module.scss.js +1 -1
  119. package/dist/src/components/Table/TableRowMenu/TableRowMenu.module.scss.js +1 -1
  120. package/dist/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.module.scss.js +1 -1
  121. package/dist/src/components/next/List/List.module.scss.js +1 -1
  122. package/dist/src/components/next/List/ListTitle/ListTitle.module.scss.js +1 -1
  123. package/dist/src/index.js +1 -1
  124. package/dist/style/dist/index.min.css.js +1 -1
  125. package/package.json +4 -2
  126. package/dist/components/AvatarGroup/AvatarGroup.d.ts +0 -45
  127. package/dist/components/AvatarGroup/AvatarGroup.types.d.ts +0 -14
  128. package/dist/components/AvatarGroup/AvatarGroupConstants.d.ts +0 -2
  129. package/dist/components/AvatarGroup/AvatarGroupCounter.d.ts +0 -41
  130. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContainer.d.ts +0 -40
  131. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContent.d.ts +0 -23
  132. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.d.ts +0 -33
  133. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipHelper.d.ts +0 -16
  134. package/dist/components/AvatarGroup/AvatarGroupHelper.d.ts +0 -3
  135. package/dist/components/AvatarGroup/index.d.ts +0 -2
  136. package/dist/components/Search/Search.d.ts +0 -4
  137. package/dist/components/Search/Search.types.d.ts +0 -104
  138. package/dist/components/Search/index.d.ts +0 -2
  139. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroup.d.ts +0 -45
  140. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroup.types.d.ts +0 -14
  141. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupConstants.d.ts +0 -2
  142. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounter.d.ts +0 -41
  143. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContainer.d.ts +0 -40
  144. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContent.d.ts +0 -23
  145. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.d.ts +0 -33
  146. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipHelper.d.ts +0 -16
  147. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupHelper.d.ts +0 -3
  148. package/dist/mocked_classnames/components/AvatarGroup/index.d.ts +0 -2
  149. package/dist/mocked_classnames/components/Search/Search.d.ts +0 -4
  150. package/dist/mocked_classnames/components/Search/Search.types.d.ts +0 -104
  151. package/dist/mocked_classnames/components/Search/index.d.ts +0 -2
  152. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroup.js +0 -2
  153. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroup.js.map +0 -1
  154. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroup.module.scss.js +0 -2
  155. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupConstants.js.map +0 -1
  156. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.js +0 -2
  157. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.js.map +0 -1
  158. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.module.scss.js +0 -2
  159. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js +0 -2
  160. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +0 -1
  161. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js +0 -2
  162. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +0 -1
  163. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js +0 -2
  164. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js +0 -2
  165. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +0 -1
  166. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js +0 -2
  167. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js +0 -2
  168. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js.map +0 -1
  169. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupHelper.js +0 -2
  170. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupHelper.js.map +0 -1
  171. package/dist/mocked_classnames/src/components/Search/Search.js +0 -2
  172. package/dist/mocked_classnames/src/components/Search/Search.js.map +0 -1
  173. package/dist/mocked_classnames/src/components/Search/Search.module.scss.js +0 -2
  174. package/dist/src/components/AvatarGroup/AvatarGroup.js +0 -2
  175. package/dist/src/components/AvatarGroup/AvatarGroup.js.map +0 -1
  176. package/dist/src/components/AvatarGroup/AvatarGroup.module.scss.js +0 -2
  177. package/dist/src/components/AvatarGroup/AvatarGroup.module.scss.js.map +0 -1
  178. package/dist/src/components/AvatarGroup/AvatarGroupConstants.js +0 -2
  179. package/dist/src/components/AvatarGroup/AvatarGroupConstants.js.map +0 -1
  180. package/dist/src/components/AvatarGroup/AvatarGroupCounter.js +0 -2
  181. package/dist/src/components/AvatarGroup/AvatarGroupCounter.js.map +0 -1
  182. package/dist/src/components/AvatarGroup/AvatarGroupCounter.module.scss.js +0 -2
  183. package/dist/src/components/AvatarGroup/AvatarGroupCounter.module.scss.js.map +0 -1
  184. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js +0 -2
  185. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +0 -1
  186. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js +0 -2
  187. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +0 -1
  188. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js +0 -2
  189. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js.map +0 -1
  190. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js +0 -2
  191. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +0 -1
  192. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js +0 -2
  193. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js.map +0 -1
  194. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js +0 -2
  195. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js.map +0 -1
  196. package/dist/src/components/AvatarGroup/AvatarGroupHelper.js +0 -2
  197. package/dist/src/components/AvatarGroup/AvatarGroupHelper.js.map +0 -1
  198. package/dist/src/components/Search/Search.js +0 -2
  199. package/dist/src/components/Search/Search.js.map +0 -1
  200. package/dist/src/components/Search/Search.module.scss.js +0 -2
  201. package/dist/src/components/Search/Search.module.scss.js.map +0 -1
  202. /package/dist/{mocked_classnames/src/components → components/avatar-group/dist}/AvatarGroup/AvatarGroup.module.scss.js.map +0 -0
  203. /package/dist/{mocked_classnames/src/components → components/avatar-group/dist}/AvatarGroup/AvatarGroupCounter.module.scss.js.map +0 -0
  204. /package/dist/{mocked_classnames/src/components → components/avatar-group/dist}/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js.map +0 -0
  205. /package/dist/{mocked_classnames/src/components → components/avatar-group/dist}/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js.map +0 -0
  206. /package/dist/{mocked_classnames/src/components → components/search/dist}/Search/Search.module.scss.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounter.js","sources":["../../../../../src/components/AvatarGroup/AvatarGroupCounter.tsx"],"sourcesContent":["import React, { type ReactElement, useCallback, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { type AvatarProps, type AvatarSize, type AvatarType } from \"@vibe/avatar\";\nimport { Counter } from \"@vibe/counter\";\nimport { MenuButton } from \"@vibe/menu-button\";\nimport { Menu, AvatarMenuItem } from \"@vibe/menu\";\nimport AvatarGroupCounterTooltipContainer from \"./AvatarGroupCounterTooltipContainer\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { getStyle } from \"@vibe/shared\";\nimport { type AvatarGroupCounterVisualProps } from \"./AvatarGroup.types\";\nimport { type TooltipProps } from \"@vibe/tooltip\";\nimport { avatarOnClick } from \"./AvatarGroupHelper\";\nimport styles from \"./AvatarGroupCounter.module.scss\";\nimport { AVATAR_GROUP_COUNTER_AVATAR_SIZE } from \"./AvatarGroupConstants\";\n\nexport interface AvatarGroupCounterProps extends VibeComponentProps {\n /**\n * The list of avatars hidden behind the counter.\n */\n counterTooltipAvatars?: ReactElement<AvatarProps>[];\n /**\n * Props for customizing the counter appearance.\n */\n counterProps?: AvatarGroupCounterVisualProps;\n /**\n * Props for customizing the counter tooltip.\n */\n counterTooltipCustomProps?: Partial<TooltipProps>;\n /**\n * If true, the counter tooltip uses a virtualized list for performance optimization.\n */\n counterTooltipIsVirtualizedList?: boolean;\n /**\n * The size of the counter.\n */\n size?: AvatarSize;\n /**\n * The type of the avatars in the counter.\n */\n type?: AvatarType;\n /**\n * The label of the counter for accessibility.\n */\n counterAriaLabel?: string;\n /**\n * If true, the counter is disabled and non-interactive.\n */\n disabled?: boolean;\n}\n\nconst AvatarGroupCounter: React.FC<AvatarGroupCounterProps> = ({\n counterTooltipAvatars = [],\n counterProps,\n counterTooltipCustomProps,\n counterTooltipIsVirtualizedList = false,\n size = \"medium\",\n type,\n counterAriaLabel,\n disabled\n}: AvatarGroupCounterProps) => {\n const {\n color: counterColor = \"light\",\n count: counterValue = counterTooltipAvatars.length,\n prefix: counterPrefix = \"+\",\n maxDigits: counterMaxDigits = 3,\n ariaLabelItemsName: counterAriaLabelItemsName = \"items\",\n noAnimation,\n dialogContainerSelector,\n tabIndex: counterTabIndex = 0\n } = counterProps || {};\n\n const counterSizeStyle = getStyle(styles, size?.toString());\n const counterColorStyle = styles[counterColor];\n\n const focusPrevPlaceholderRef = useRef(null);\n const focusNextPlaceholderRef = useRef(null);\n const counterContainerRef = useRef(null);\n const counterComponent = useCallback(() => {\n return (\n <Counter\n color={counterColor}\n count={counterValue}\n prefix={counterPrefix}\n maxDigits={counterMaxDigits}\n aria-label={counterAriaLabel ? counterAriaLabel : `Tab for more ${counterAriaLabelItemsName}`}\n noAnimation={noAnimation}\n counterClassName={cx({ [styles.disabled]: disabled })}\n size={size === \"xs\" ? \"xs\" : undefined}\n />\n );\n }, [\n counterAriaLabel,\n counterAriaLabelItemsName,\n counterColor,\n counterMaxDigits,\n counterPrefix,\n counterValue,\n disabled,\n noAnimation\n ]);\n\n if (!counterTooltipAvatars.length && !counterValue) {\n return null;\n }\n\n if (disabled) {\n return (\n <div\n ref={counterContainerRef}\n className={cx(styles.counterContainer, styles.disabled, counterSizeStyle, counterColorStyle)}\n >\n {counterComponent()}\n </div>\n );\n }\n\n const areAvatarsClickable = counterTooltipAvatars.some(a => a.props?.onClick);\n if (areAvatarsClickable) {\n return (\n <MenuButton\n component={counterComponent}\n zIndex={1}\n className={cx(styles.counterContainer, counterSizeStyle, counterColorStyle)}\n aria-label={counterAriaLabel ? counterAriaLabel : `${counterValue} additional ${counterAriaLabelItemsName}`}\n dialogContainerSelector={dialogContainerSelector}\n >\n <Menu id=\"menu\" size=\"medium\" className={styles.menu} focusItemIndexOnMount={0}>\n {counterTooltipAvatars.map((avatar, index) => {\n return (\n // eslint-disable-next-line react/jsx-key\n <AvatarMenuItem\n menuItemProps={{\n key: avatar.props?.id || String(index),\n title: (avatar.props?.tooltipProps?.content as string) || avatar?.props?.[\"aria-label\"],\n onClick: (event: React.MouseEvent | React.KeyboardEvent) => avatarOnClick(event, avatar.props)\n }}\n avatarProps={{\n ...avatar.props,\n customSize: AVATAR_GROUP_COUNTER_AVATAR_SIZE,\n \"aria-label\": \"\",\n tabIndex: -1\n }}\n />\n );\n })}\n </Menu>\n </MenuButton>\n );\n }\n\n return (\n <AvatarGroupCounterTooltipContainer\n focusPrevPlaceholderRef={focusPrevPlaceholderRef}\n focusNextPlaceholderRef={focusNextPlaceholderRef}\n counterContainerRef={counterContainerRef}\n avatars={counterTooltipAvatars}\n counterTooltipCustomProps={counterTooltipCustomProps}\n counterTooltipIsVirtualizedList={counterTooltipIsVirtualizedList}\n type={type}\n >\n <div tabIndex={-1} ref={focusPrevPlaceholderRef} />\n {/* eslint-disable jsx-a11y/no-noninteractive-tabindex */}\n <div\n tabIndex={counterTabIndex}\n className={cx(styles.counterContainer, counterSizeStyle, counterColorStyle)}\n ref={counterContainerRef}\n >\n {/* eslint-enable jsx-a11y/no-noninteractive-tabindex */}\n {counterComponent()}\n <div tabIndex={-1} ref={focusNextPlaceholderRef} />\n </div>\n </AvatarGroupCounterTooltipContainer>\n );\n};\n\nexport default AvatarGroupCounter;\n"],"names":["AvatarGroupCounter","_ref","_ref$counterTooltipAv","counterTooltipAvatars","counterTooltipCustomProps","_ref$counterTooltipIs","counterTooltipIsVirtualizedList","_ref$size","size","type","counterAriaLabel","disabled","_ref2","counterProps","_ref2$color","color","counterColor","_ref2$count","count","counterValue","length","_ref2$prefix","prefix","counterPrefix","_ref2$maxDigits","maxDigits","counterMaxDigits","_ref2$ariaLabelItemsN","ariaLabelItemsName","counterAriaLabelItemsName","noAnimation","dialogContainerSelector","_ref2$tabIndex","tabIndex","counterTabIndex","counterSizeStyle","getStyle","styles","counterColorStyle","focusPrevPlaceholderRef","useRef","focusNextPlaceholderRef","counterContainerRef","counterComponent","useCallback","React","createElement","Counter","concat","counterClassName","cx","_defineProperty","undefined","ref","className","counterContainer","some","a","_a","props","onClick","MenuButton","component","zIndex","Menu","id","menu","focusItemIndexOnMount","map","avatar","index","AvatarMenuItem","menuItemProps","key","String","title","_c","_b","tooltipProps","content","_d","event","avatarOnClick","avatarProps","customSize","AVATAR_GROUP_COUNTER_AVATAR_SIZE","AvatarGroupCounterTooltipContainer","avatars"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var n={counterContainer:"counterContainer","focus-visible":"focus-visible",xs:"xs",small:"small",medium:"medium",large:"large",primary:"primary",dark:"dark",negative:"negative",light:"light",disabled:"disabled",menu:"menu"};!function(n){const e="s_id-d3854ac48ae9_4_5_24";if("undefined"!=typeof document){const o=document.head||document.getElementsByTagName("head")[0];if(o.querySelector("#"+e))return;const r=document.createElement("style");r.id=e,o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.appendChild(document.createTextNode(n))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=n)}("/* stylelint-disable */\n/* stylelint-enable */\n.counterContainer.counterContainer {\n background: var(--ui-background-color);\n display: flex;\n justify-content: center;\n align-items: center;\n margin-inline-start: calc(-1 * var(--space-8));\n z-index: 1;\n border: 1px solid var(--primary-background-color);\n}\n.counterContainer.counterContainer:focus-visible, .counterContainer.counterContainer.focus-visible { /* stylelint-disable-line selector-class-pattern */\n outline: none;\n}\n.counterContainer.counterContainer:focus-visible:focus-visible, .counterContainer.counterContainer:focus-visible.focus-visible, .counterContainer.counterContainer.focus-visible:focus-visible, .counterContainer.counterContainer.focus-visible.focus-visible {\n outline: none;\n z-index: 11;\n border-radius: 50%;\n box-shadow: 0 0 0 3px hsla(209, 100%, 50%, 0.5), 0 0 0 1px var(--primary-hover-color) inset;\n}\n.counterContainer.counterContainer:focus-visible:focus:not(.focus-visible), .counterContainer.counterContainer.focus-visible:focus:not(.focus-visible) {\n outline: none;\n}\n.counterContainer.counterContainer.xs {\n height: 20px;\n min-width: 20px;\n border-radius: 10px;\n padding: 0 1px;\n}\n.counterContainer.counterContainer.small {\n height: 28px;\n min-width: 28px;\n border-radius: 14px;\n padding: 0 1px;\n}\n.counterContainer.counterContainer.medium {\n height: 32px;\n min-width: 32px;\n border-radius: 16px;\n padding: 0 2px;\n}\n.counterContainer.counterContainer.large {\n height: 50px;\n min-width: 50px;\n border-radius: 25px;\n padding: 0 var(--space-4);\n}\n.counterContainer.counterContainer.primary {\n color: var(--text-color-on-primary);\n background-color: var(--primary-color);\n}\n.counterContainer.counterContainer.dark {\n color: var(--text-color-on-inverted);\n background-color: var(--inverted-color-background);\n}\n.counterContainer.counterContainer.negative {\n color: var(--text-color-on-primary);\n background-color: var(--negative-color);\n}\n.counterContainer.counterContainer.light {\n color: var(--primary-text-color);\n background-color: var(--ui-background-color);\n}\n.counterContainer.counterContainer .disabled, .counterContainer.counterContainer.disabled {\n background-color: var(--disabled-background-color);\n color: var(--disabled-text-color);\n}\n.menu {\n max-height: 300px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n.menu::-webkit-scrollbar {\n width: 4px;\n height: 6px;\n}\n.menu::-webkit-scrollbar-thumb {\n background-color: var(--ui-border-color);\n border-radius: 4px;\n}");export{n as default};
2
- //# sourceMappingURL=AvatarGroupCounter.module.scss.js.map
@@ -1,2 +0,0 @@
1
- import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as t,useRef as r,useMemo as n,useCallback as i}from"react";import{Tooltip as l}from"@vibe/tooltip/mockedClassNames";import a from"./AvatarGroupCounterTooltipContent.js";import{useTooltipContentTabNavigation as s}from"./AvatarGroupCounterTooltipHelper.js";import{AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY as u}from"./AvatarGroupConstants.js";var c=function(c){var p=c.focusPrevPlaceholderRef,m=c.focusNextPlaceholderRef,d=c.counterContainerRef,f=c.children,v=void 0===f?[]:f,C=c.avatars,T=void 0===C?[]:C,h=c.type,g=c.className,P=c.counterTooltipCustomProps,R=c.counterTooltipIsVirtualizedList,b=void 0!==R&&R,y=t(!1),j=e(y,2),N=j[0],A=j[1],V=r(null),x=n((function(){return(null==P?void 0:P.content)||o.createElement(a,{avatars:T,type:h,className:g,isVirtualizedList:b,tooltipContentContainerRef:V})}),[T,g,null==P?void 0:P.content,b,h]);s({counterContainerRef:d,tooltipContentContainerRef:V,focusPrevPlaceholderRef:p,focusNextPlaceholderRef:m,setIsKeyboardTooltipVisible:A,isKeyboardTooltipVisible:N});var E=i((function(){A(!1)}),[]);return(null==T?void 0:T.length)||(null==P?void 0:P.content)?o.createElement(l,Object.assign({open:N,hideDelay:u,showTrigger:["mouseenter"],hideTrigger:["mouseleave"],onTooltipHide:E},P||{},{content:x}),v):o.createElement(o.Fragment,null,v)};export{c as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContainer.js","sources":["../../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.tsx"],"sourcesContent":["import React, { type ReactElement, type RefObject, useCallback, useMemo, useRef, useState } from \"react\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport AvatarGroupCounterTooltipContent from \"./AvatarGroupCounterTooltipContent\";\nimport { useTooltipContentTabNavigation } from \"./AvatarGroupCounterTooltipHelper\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY } from \"./AvatarGroupConstants\";\n\nexport interface AvatarGroupCounterTooltipContainerProps extends VibeComponentProps {\n /**\n * The type of avatars displayed in the tooltip.\n */\n type?: AvatarType;\n /**\n * The counter element and focus placeholders.\n */\n children?: ReactElement[];\n /**\n * The list of avatars displayed inside the tooltip.\n */\n avatars?: ReactElement<AvatarProps>[];\n /**\n * Props passed to the Tooltip component. See full options in the [Tooltip documentation](https://vibe.monday.com/?path=/docs/components-tooltip--docs).\n */\n counterTooltipCustomProps?: Partial<TooltipProps>;\n /**\n * If true, the tooltip uses a virtualized list for performance optimization.\n */\n counterTooltipIsVirtualizedList?: boolean;\n /**\n * Ref for the element before the tooltip content, used for keyboard navigation.\n */\n focusPrevPlaceholderRef?: RefObject<HTMLDivElement>;\n /**\n * Ref for the element after the tooltip content, used for keyboard navigation.\n */\n focusNextPlaceholderRef?: RefObject<HTMLDivElement>;\n /**\n * Ref for the counter container element.\n */\n counterContainerRef?: RefObject<HTMLDivElement>;\n}\n\nconst AvatarGroupCounterTooltipContainer: React.FC<AvatarGroupCounterTooltipContainerProps> = ({\n focusPrevPlaceholderRef,\n focusNextPlaceholderRef,\n counterContainerRef,\n children = [],\n avatars = [],\n type,\n className,\n counterTooltipCustomProps,\n counterTooltipIsVirtualizedList = false\n}) => {\n const [isKeyboardTooltipVisible, setIsKeyboardTooltipVisible] = useState(false);\n const tooltipContentContainerRef = useRef(null);\n const tooltipContent = useMemo(\n () =>\n counterTooltipCustomProps?.content || (\n <AvatarGroupCounterTooltipContent\n avatars={avatars}\n type={type}\n className={className}\n isVirtualizedList={counterTooltipIsVirtualizedList}\n tooltipContentContainerRef={tooltipContentContainerRef}\n />\n ),\n [avatars, className, counterTooltipCustomProps?.content, counterTooltipIsVirtualizedList, type]\n );\n\n useTooltipContentTabNavigation({\n counterContainerRef,\n tooltipContentContainerRef,\n focusPrevPlaceholderRef,\n focusNextPlaceholderRef,\n setIsKeyboardTooltipVisible,\n isKeyboardTooltipVisible\n });\n\n // Tooltip props\n const onHide = useCallback(() => {\n setIsKeyboardTooltipVisible(false);\n }, []);\n\n if (!avatars?.length && !counterTooltipCustomProps?.content) {\n return <>{children}</>;\n }\n return (\n <Tooltip\n open={isKeyboardTooltipVisible}\n hideDelay={AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY}\n showTrigger={[\"mouseenter\"]}\n hideTrigger={[\"mouseleave\"]}\n onTooltipHide={onHide}\n {...(counterTooltipCustomProps || {})}\n content={tooltipContent}\n >\n {children}\n </Tooltip>\n );\n};\n\nexport default AvatarGroupCounterTooltipContainer;\n"],"names":["AvatarGroupCounterTooltipContainer","_ref","focusPrevPlaceholderRef","focusNextPlaceholderRef","counterContainerRef","_ref$children","children","_ref$avatars","avatars","type","className","counterTooltipCustomProps","_ref$counterTooltipIs","counterTooltipIsVirtualizedList","_useState","useState","_useState2","_slicedToArray","isKeyboardTooltipVisible","setIsKeyboardTooltipVisible","tooltipContentContainerRef","useRef","tooltipContent","useMemo","content","React","createElement","AvatarGroupCounterTooltipContent","isVirtualizedList","useTooltipContentTabNavigation","onHide","useCallback","length","Tooltip","open","hideDelay","AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY","showTrigger","hideTrigger","onTooltipHide","Fragment"],"mappings":"qbA2CA,IAAMA,EAAwF,SAAtDC,GAUnC,IATHC,EAAuBD,EAAvBC,wBACAC,EAAuBF,EAAvBE,wBACAC,EAAmBH,EAAnBG,oBAAmBC,EAAAJ,EACnBK,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACbO,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EACZE,EAAIR,EAAJQ,KACAC,EAAST,EAATS,UACAC,EAAyBV,EAAzBU,0BAAyBC,EAAAX,EACzBY,gCAAAA,OAAkC,IAAHD,GAAQA,EAEvCE,EAAgEC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxEI,EAAwBF,EAAA,GAAEG,EAA2BH,EAAA,GACtDI,EAA6BC,EAAO,MACpCC,EAAiBC,GACrB,WAAA,OACEZ,aAAyB,EAAzBA,EAA2Ba,UACzBC,EAAAC,cAACC,EAAgC,CAC/BnB,QAASA,EACTC,KAAMA,EACNC,UAAWA,EACXkB,kBAAmBf,EACnBO,2BAA4BA,GAGlC,GAAA,CAACZ,EAASE,EAAWC,aAAA,EAAAA,EAA2Ba,QAASX,EAAiCJ,IAG5FoB,EAA+B,CAC7BzB,oBAAAA,EACAgB,2BAAAA,EACAlB,wBAAAA,EACAC,wBAAAA,EACAgB,4BAAAA,EACAD,yBAAAA,IAIF,IAAMY,EAASC,GAAY,WACzBZ,GAA4B,EAC7B,GAAE,IAEH,OAAKX,aAAA,EAAAA,EAASwB,UAAWrB,aAAyB,EAAzBA,EAA2Ba,SAIlDC,EAACC,cAAAO,iBACCC,KAAMhB,EACNiB,UAAWC,EACXC,YAAa,CAAC,cACdC,YAAa,CAAC,cACdC,cAAeT,GACVnB,GAA6B,CAAA,EAAG,CACrCa,QAASF,IAERhB,GAZImB,EAAAC,cAAAD,EAAAe,SAAA,KAAGlC,EAed"}
@@ -1,2 +0,0 @@
1
- import t,{useCallback as o,useMemo as r}from"react";import e from"classnames";import{Flex as a}from"@vibe/layout/mockedClassNames";import n from"./AvatarGroupCounterTooltipContentVirtualizedList.js";import{avatarRenderer as i}from"./AvatarGroupCounterTooltipHelper.js";import l from"./AvatarGroupCounterTooltipContent.module.scss.js";var s=function(s){var p=s.avatars,u=void 0===p?[]:p,m=s.type,v=s.className,c=s.isVirtualizedList,d=void 0!==c&&c,C=s.tooltipContentContainerRef,f=o((function(t){var o;return(null===(o=null==t?void 0:t.tooltipProps)||void 0===o?void 0:o.content)||(null==t?void 0:t["aria-label"])}),[]),b=r((function(){var t=u.map((function(t){return{value:Object.assign(Object.assign({},t.props),{tooltipContent:f(t.props)})}})),o=!t.some((function(t){return t.value.tooltipContent})),r=o?void 0:t.map((function(t){return t.value.tooltipContent})).join(",");return{avatarItems:t,displayAsGrid:o,tooltipContainerAriaLabel:r}}),[u,f]),A=b.avatarItems,j=b.displayAsGrid,G=b.tooltipContainerAriaLabel,g=r((function(){return A.map((function(t,o){return i(t,o,void 0,m,j)}))}),[A,j,m]);if(d)return t.createElement(n,{avatarRenderer:i,tooltipContentContainerRef:C,tooltipContainerAriaLabel:G,avatarItems:A,type:m});var y={ref:C,tabIndex:-1,role:"treegrid","aria-label":G,className:j?e(l.scrollableContainer,l.tooltipContainer,l.tooltipGridContainer,v):e(l.scrollableContainer,l.tooltipContainer,v),direction:j?"row":"column",gap:j?"xs":"small",wrap:j};return t.createElement(a,Object.assign({},y),g)};export{s as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContent.js","sources":["../../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipContent.tsx"],"sourcesContent":["import React, { type ReactElement, type Ref, useCallback, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { Flex, type FlexProps } from \"@vibe/layout\";\nimport { type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport AvatarGroupCounterTooltipContentVirtualizedList from \"./AvatarGroupCounterTooltipContentVirtualizedList\";\nimport { avatarRenderer } from \"./AvatarGroupCounterTooltipHelper\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport styles from \"./AvatarGroupCounterTooltipContent.module.scss\";\n\nexport interface AvatarGroupCounterTooltipContentProps extends VibeComponentProps {\n /**\n * The type of avatars displayed inside the tooltip.\n */\n type?: AvatarType;\n /**\n * The avatars shown in the tooltip.\n */\n avatars?: ReactElement<AvatarProps>[];\n /**\n * If true, the tooltip uses a virtualized list for performance optimization.\n */\n isVirtualizedList?: boolean;\n /**\n * Ref for the tooltip content container.\n */\n tooltipContentContainerRef?: Ref<HTMLDivElement>;\n}\n\nconst AvatarGroupCounterTooltipContent: React.FC<AvatarGroupCounterTooltipContentProps> = ({\n avatars = [],\n type,\n className,\n isVirtualizedList = false,\n tooltipContentContainerRef\n}) => {\n const getTooltipContent = useCallback((avatarProps: AvatarProps) => {\n return avatarProps?.tooltipProps?.content || avatarProps?.[\"aria-label\"];\n }, []);\n\n const { avatarItems, displayAsGrid, tooltipContainerAriaLabel } = useMemo(() => {\n const avatarItems = avatars.map(avatar => ({\n value: { ...avatar.props, tooltipContent: getTooltipContent(avatar.props) }\n }));\n const displayAsGrid = !avatarItems.some(item => item.value.tooltipContent);\n const tooltipContainerAriaLabel = !displayAsGrid\n ? avatarItems.map(item => item.value.tooltipContent).join(\",\")\n : undefined;\n return { avatarItems, displayAsGrid, tooltipContainerAriaLabel };\n }, [avatars, getTooltipContent]);\n\n const renderedItems = useMemo(\n () => avatarItems.map((item, index) => avatarRenderer(item, index, undefined, type, displayAsGrid)),\n [avatarItems, displayAsGrid, type]\n );\n\n if (isVirtualizedList) {\n return (\n <AvatarGroupCounterTooltipContentVirtualizedList\n avatarRenderer={avatarRenderer}\n tooltipContentContainerRef={tooltipContentContainerRef}\n tooltipContainerAriaLabel={tooltipContainerAriaLabel}\n avatarItems={avatarItems}\n type={type}\n />\n );\n }\n\n const flexProps = {\n ref: tooltipContentContainerRef,\n tabIndex: -1,\n role: \"treegrid\",\n \"aria-label\": tooltipContainerAriaLabel,\n className: displayAsGrid\n ? cx(styles.scrollableContainer, styles.tooltipContainer, styles.tooltipGridContainer, className)\n : cx(styles.scrollableContainer, styles.tooltipContainer, className),\n direction: displayAsGrid ? \"row\" : \"column\",\n gap: displayAsGrid ? \"xs\" : \"small\",\n wrap: displayAsGrid\n };\n\n return <Flex {...(flexProps as FlexProps)}>{renderedItems}</Flex>;\n};\n\nexport default AvatarGroupCounterTooltipContent;\n"],"names":["AvatarGroupCounterTooltipContent","_ref","_ref$avatars","avatars","type","className","_ref$isVirtualizedLis","isVirtualizedList","tooltipContentContainerRef","getTooltipContent","useCallback","avatarProps","tooltipProps","_a","content","_useMemo","useMemo","avatarItems","map","avatar","value","Object","assign","props","tooltipContent","displayAsGrid","some","item","tooltipContainerAriaLabel","undefined","join","renderedItems","index","avatarRenderer","React","createElement","AvatarGroupCounterTooltipContentVirtualizedList","flexProps","ref","tabIndex","role","cx","styles","scrollableContainer","tooltipContainer","tooltipGridContainer","direction","gap","wrap","Flex"],"mappings":"8UA4BA,IAAMA,EAAoF,SAApDC,GAMjC,IAAAC,EAAAD,EALHE,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EACZE,EAAIH,EAAJG,KACAC,EAASJ,EAATI,UAASC,EAAAL,EACTM,kBAAAA,OAAoB,IAAHD,GAAQA,EACzBE,EAA0BP,EAA1BO,2BAEMC,EAAoBC,GAAY,SAACC,SACrC,OAAgC,UAAzBA,aAAA,EAAAA,EAAaC,oBAAY,IAAAC,OAAA,EAAAA,EAAEC,WAAWH,aAAW,EAAXA,EAAc,cAC5D,GAAE,IAEHI,EAAkEC,GAAQ,WACxE,IAAMC,EAAcd,EAAQe,KAAI,SAAAC,GAAM,MAAK,CACzCC,MAAYC,OAAAC,OAAAD,OAAAC,OAAA,GAAAH,EAAOI,OAAO,CAAAC,eAAgBf,EAAkBU,EAAOI,SACpE,IACKE,GAAiBR,EAAYS,MAAK,SAAAC,GAAI,OAAIA,EAAKP,MAAMI,kBACrDI,EAA6BH,OAE/BI,EADAZ,EAAYC,KAAI,SAAAS,GAAI,OAAIA,EAAKP,MAAMI,cAAc,IAAEM,KAAK,KAE5D,MAAO,CAAEb,YAAAA,EAAaQ,cAAAA,EAAeG,0BAAAA,EACvC,GAAG,CAACzB,EAASM,IATLQ,EAAWF,EAAXE,YAAaQ,EAAaV,EAAbU,cAAeG,EAAyBb,EAAzBa,0BAW9BG,EAAgBf,GACpB,WAAA,OAAMC,EAAYC,KAAI,SAACS,EAAMK,GAAK,OAAKC,EAAeN,EAAMK,OAAOH,EAAWzB,EAAMqB,KAAe,GACnG,CAACR,EAAaQ,EAAerB,IAG/B,GAAIG,EACF,OACE2B,EAACC,cAAAC,EACC,CAAAH,eAAgBA,EAChBzB,2BAA4BA,EAC5BoB,0BAA2BA,EAC3BX,YAAaA,EACbb,KAAMA,IAKZ,IAAMiC,EAAY,CAChBC,IAAK9B,EACL+B,UAAW,EACXC,KAAM,WACN,aAAcZ,EACdvB,UAAWoB,EACPgB,EAAGC,EAAOC,oBAAqBD,EAAOE,iBAAkBF,EAAOG,qBAAsBxC,GACrFoC,EAAGC,EAAOC,oBAAqBD,EAAOE,iBAAkBvC,GAC5DyC,UAAWrB,EAAgB,MAAQ,SACnCsB,IAAKtB,EAAgB,KAAO,QAC5BuB,KAAMvB,GAGR,OAAOS,gBAACe,EAAI5B,OAAAC,OAAA,GAAMe,GAA0BN,EAC9C"}
@@ -1,2 +0,0 @@
1
- var t={tooltipAvatarItemTitle:"tooltipAvatarItemTitle",tooltipAvatarItemAvatar:"tooltipAvatarItemAvatar",tooltipContainer:"tooltipContainer","focus-visible":"focus-visible",tooltipGridContainer:"tooltipGridContainer",scrollableContainer:"scrollableContainer"};!function(t){const e="s_id-886ef7c132b6_4_5_24";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+e))return;const i=document.createElement("style");i.id=e,n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.appendChild(document.createTextNode(t))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=t)}("/* stylelint-disable */\n/* stylelint-enable */\n.tooltipAvatarItemTitle {\n white-space: nowrap;\n}\n.tooltipAvatarItemAvatar {\n flex-shrink: 0;\n}\n.tooltipContainer {\n max-height: 300px;\n padding-inline-end: var(--space-16);\n align-items: flex-start !important;\n overflow-x: visible;\n overflow-y: auto;\n margin-top: var(--space-8);\n}\n.tooltipContainer:focus, .tooltipContainer:focus-visible, .tooltipContainer.focus-visible { /* stylelint-disable-line selector-class-pattern */\n outline: none;\n}\n.tooltipGridContainer {\n max-width: 160px;\n padding-inline-end: 0;\n}\n.scrollableContainer::-webkit-scrollbar {\n width: 4px;\n height: 6px;\n}\n.scrollableContainer::-webkit-scrollbar-thumb {\n background-color: var(--ui-border-color);\n border-radius: 4px;\n}");export{t as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContent.module.scss.js.map
@@ -1,2 +0,0 @@
1
- import e,{useMemo as t}from"react";import{VirtualizedList as i}from"@vibe/virtualized-list/mockedClassNames";import r from"./AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js";var a=Object.freeze({maxItemsWithoutScroll:10,itemLineHeight:34,itemLineWidth:150}),n=function(n){var o=n.avatarItems,l=void 0===o?[]:o,m=n.avatarRenderer,s=n.type,u=n.tooltipContainerAriaLabel,c=n.tooltipContentContainerRef,d=t((function(){return l.map((function(e){return{value:e,height:a.itemLineHeight}}))}),[l]);return e.createElement("div",{className:r.virtualizedTooltipContainer,"aria-label":u,ref:c,tabIndex:-1},e.createElement(i,{items:d,itemRenderer:function(e,t,i){return m(e.value,t,i,s,!1)},role:"treegrid",scrollableClassName:r.scrollableContainer,getItemId:function(e,t){return t+""},style:{height:a.itemLineHeight*Math.min(l.length,a.maxItemsWithoutScroll),minWidth:a.itemLineWidth}}))};export{n as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContentVirtualizedList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContentVirtualizedList.js","sources":["../../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.tsx"],"sourcesContent":["import React, { type CSSProperties, type ReactElement, type Ref, useMemo } from \"react\";\nimport { VirtualizedList, type VirtualizedListItem } from \"@vibe/virtualized-list\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport { type ElementContent } from \"../../types\";\nimport styles from \"./AvatarGroupCounterTooltipContentVirtualizedList.module.scss\";\n\nconst LIST_OPTIONS = Object.freeze({\n maxItemsWithoutScroll: 10,\n itemLineHeight: 34,\n itemLineWidth: 150\n});\n\nexport type AvatarItem = {\n value: AvatarProps & { tooltipContent: ElementContent };\n};\n\nexport interface AvatarGroupCounterTooltipContentVirtualizedListProps extends VibeComponentProps {\n /**\n * The list of avatars displayed in the virtualized tooltip.\n */\n avatarItems?: AvatarItem[];\n /**\n * Function to render each avatar item.\n */\n avatarRenderer?: (\n item: AvatarItem,\n index: number,\n style: CSSProperties,\n type: AvatarType,\n displayAsGrid: boolean\n ) => ReactElement;\n /**\n * The ARIA label of the tooltip container.\n */\n tooltipContainerAriaLabel?: string;\n /**\n * Ref for the tooltip content container.\n */\n tooltipContentContainerRef?: Ref<HTMLDivElement>;\n /**\n * The type of avatars in the tooltip.\n */\n type?: AvatarType;\n}\n\nconst AvatarGroupCounterTooltipContentVirtualizedList: React.FC<\n AvatarGroupCounterTooltipContentVirtualizedListProps\n> = ({ avatarItems = [], avatarRenderer, type, tooltipContainerAriaLabel, tooltipContentContainerRef }) => {\n const virtualizedItems: VirtualizedListItem[] = useMemo(\n () => avatarItems.map(item => ({ value: item, height: LIST_OPTIONS.itemLineHeight } as VirtualizedListItem)),\n [avatarItems]\n );\n\n const minCount = Math.min(avatarItems.length, LIST_OPTIONS.maxItemsWithoutScroll);\n const virtualizedListStyle = {\n height: LIST_OPTIONS.itemLineHeight * minCount,\n minWidth: LIST_OPTIONS.itemLineWidth\n };\n\n return (\n <div\n className={styles.virtualizedTooltipContainer}\n aria-label={tooltipContainerAriaLabel}\n ref={tooltipContentContainerRef}\n tabIndex={-1}\n >\n <VirtualizedList\n items={virtualizedItems}\n itemRenderer={(item: VirtualizedListItem, index: number, style: CSSProperties) =>\n avatarRenderer(item.value as AvatarItem, index, style, type, false)\n }\n role=\"treegrid\"\n scrollableClassName={styles.scrollableContainer}\n getItemId={(item: VirtualizedListItem, index: number) => String(index)}\n style={virtualizedListStyle}\n />\n </div>\n );\n};\n\nexport default AvatarGroupCounterTooltipContentVirtualizedList;\n"],"names":["LIST_OPTIONS","Object","freeze","maxItemsWithoutScroll","itemLineHeight","itemLineWidth","AvatarGroupCounterTooltipContentVirtualizedList","_ref","_ref$avatarItems","avatarItems","avatarRenderer","type","tooltipContainerAriaLabel","tooltipContentContainerRef","virtualizedItems","useMemo","map","item","value","height","React","createElement","className","styles","virtualizedTooltipContainer","ref","tabIndex","VirtualizedList","items","itemRenderer","index","style","role","scrollableClassName","scrollableContainer","getItemId","String","Math","min","length","minWidth"],"mappings":"6LAOA,IAAMA,EAAeC,OAAOC,OAAO,CACjCC,sBAAuB,GACvBC,eAAgB,GAChBC,cAAe,MAoCXC,EAEF,SAFiDC,GAEqD,IAAAC,EAAAD,EAAnGE,YAAAA,OAAc,IAAHD,EAAG,GAAEA,EAAEE,EAAcH,EAAdG,eAAgBC,EAAIJ,EAAJI,KAAMC,EAAyBL,EAAzBK,0BAA2BC,EAA0BN,EAA1BM,2BAClEC,EAA0CC,GAC9C,WAAA,OAAMN,EAAYO,KAAI,SAAAC,GAAI,MAAK,CAAEC,MAAOD,EAAME,OAAQnB,EAAaI,eAAwC,MAC3G,CAACK,IASH,OACEW,EACEC,cAAA,MAAA,CAAAC,UAAWC,EAAOC,4BAA2B,aACjCZ,EACZa,IAAKZ,EACLa,UAAW,GAEXN,EAAAC,cAACM,EAAe,CACdC,MAAOd,EACPe,aAAc,SAACZ,EAA2Ba,EAAeC,GAAoB,OAC3ErB,EAAeO,EAAKC,MAAqBY,EAAOC,EAAOpB,GAAM,EAAM,EAErEqB,KAAK,WACLC,oBAAqBV,EAAOW,oBAC5BC,UAAW,SAAClB,EAA2Ba,GAAa,OAAYA,EAAPM,EAAa,EACtEL,MApBuB,CAC3BZ,OAAQnB,EAAaI,eAFNiC,KAAKC,IAAI7B,EAAY8B,OAAQvC,EAAaG,uBAGzDqC,SAAUxC,EAAaK,iBAsB3B"}
@@ -1,2 +0,0 @@
1
- var e={scrollableContainer:"scrollableContainer",virtualizedTooltipContainer:"virtualizedTooltipContainer","focus-visible":"focus-visible"};!function(e){const i="s_id-21f61936150a_4_5_24";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+i))return;const l=document.createElement("style");l.id=i,n.firstChild?n.insertBefore(l,n.firstChild):n.appendChild(l),l.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[i]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.scrollableContainer::-webkit-scrollbar {\n width: 4px;\n height: 6px;\n}\n.scrollableContainer::-webkit-scrollbar-thumb {\n background-color: var(--ui-border-color);\n border-radius: 4px;\n}\n.virtualizedTooltipContainer {\n align-items: flex-start !important;\n display: flex;\n overflow-y: hidden;\n overflow-x: visible;\n}\n.virtualizedTooltipContainer:focus, .virtualizedTooltipContainer:focus-visible, .virtualizedTooltipContainer.focus-visible { /* stylelint-disable-line selector-class-pattern */\n outline: none;\n}");export{e as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js.map
@@ -1,2 +0,0 @@
1
- import e,{useCallback as o}from"react";import{useEventListener as t,useKeyEvent as r}from"@vibe/shared";import{Flex as i}from"@vibe/layout/mockedClassNames";import{Avatar as a}from"@vibe/avatar/mockedClassNames";import{ClickableWrapper as l}from"@vibe/clickable/mockedClassNames";import n from"./AvatarGroupCounterTooltipContent.module.scss.js";import c from"../../hooks/useListenFocusTriggers/index.js";import{AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY as s,AVATAR_GROUP_COUNTER_AVATAR_SIZE as u}from"./AvatarGroupConstants.js";import{keyCodes as f}from"../../constants/keyCodes.js";import"../../constants/sizes.js";var m=[f.TAB],d=[f.ESCAPE];function v(e){var i=e.counterContainerRef,a=void 0===i?void 0:i,l=e.tooltipContentContainerRef,n=e.focusPrevPlaceholderRef,u=e.focusNextPlaceholderRef,f=e.isKeyboardTooltipVisible,v=e.setIsKeyboardTooltipVisible,b=o((function(){f||setTimeout((function(){return v(!0)}),s)}),[f,v]),p=o((function(){f&&v(!1)}),[f,v]);c({ref:a,onFocusByKeyboard:b}),t({eventName:"blur",ref:l,callback:p}),r({keys:m,ref:a,withoutAnyModifier:!0,preventDefault:!0,callback:o((function(){f&&(null==l?void 0:l.current)&&l.current.focus()}),[f,l])}),r({keys:m,modifier:r.modifiers.SHIFT,ref:a,callback:p}),r({keys:m,ref:l,withoutAnyModifier:!0,callback:o((function(){(null==u?void 0:u.current)&&u.current.focus(),f&&v(!1)}),[u,f,v])}),r({keys:m,ref:l,modifier:r.modifiers.SHIFT,callback:o((function(){(null==n?void 0:n.current)&&n.current.focus(),f&&v(!1)}),[n,f,v])}),r({keys:d,ref:l,callback:o((function(){(null==a?void 0:a.current)&&a.current.focus(),f&&v(!1)}),[a,f,v])}),r({keys:d,ref:a,callback:p}),t({eventName:"focus",ref:u,callback:p})}var b=function(o,t,r,c,s){var f=o.value,m=Object.assign(Object.assign({},r),{width:s?void 0:"100%"}),d="tooltip-item-".concat(t,"-label");return e.createElement(l,{key:t,isClickable:!!(null==f?void 0:f.onClick),clickableProps:{onClick:function(e){return f.onClick(e,f.id)},tabIndex:-1}},e.createElement("div",{style:m},e.createElement(i,{direction:"row",gap:"xs","aria-labelledby":d},e.createElement(a,Object.assign({},f,{tooltipProps:void 0,"aria-label":"",customSize:u,type:c||(null==f?void 0:f.type),tabIndex:-1,size:"small",className:n.tooltipAvatarItemAvatar})),!s&&e.createElement("div",{id:d,className:n.tooltipAvatarItemTitle},f.tooltipContent))))};export{b as avatarRenderer,v as useTooltipContentTabNavigation};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipHelper.js","sources":["../../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.tsx"],"sourcesContent":["import React, { type CSSProperties, type RefObject, useCallback } from \"react\";\nimport useKeyEvent from \"../../hooks/useKeyEvent\";\nimport { Flex } from \"@vibe/layout\";\nimport { Avatar, type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport { ClickableWrapper } from \"@vibe/clickable\";\nimport avatarGroupCounterTooltipContentStyles from \"./AvatarGroupCounterTooltipContent.module.scss\";\nimport useEventListener from \"../../hooks/useEventListener\";\nimport useListenFocusTriggers from \"../../hooks/useListenFocusTriggers\";\nimport { type ElementContent } from \"../../types\";\nimport { AVATAR_GROUP_COUNTER_AVATAR_SIZE, AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY } from \"./AvatarGroupConstants\";\nimport { keyCodes } from \"../../constants\";\n\nconst TAB = [keyCodes.TAB];\nconst ESC = [keyCodes.ESCAPE];\n\nexport function useTooltipContentTabNavigation({\n counterContainerRef = undefined,\n tooltipContentContainerRef,\n focusPrevPlaceholderRef,\n focusNextPlaceholderRef,\n isKeyboardTooltipVisible,\n setIsKeyboardTooltipVisible\n}: {\n counterContainerRef: RefObject<HTMLDivElement>;\n tooltipContentContainerRef: RefObject<HTMLElement>;\n focusPrevPlaceholderRef: RefObject<HTMLDivElement>;\n focusNextPlaceholderRef: RefObject<HTMLDivElement>;\n isKeyboardTooltipVisible: boolean;\n setIsKeyboardTooltipVisible: (value: boolean) => void;\n}) {\n const showKeyboardTooltip = useCallback(() => {\n if (!isKeyboardTooltipVisible) {\n // temp hack for display tooltip with delay after timeout because refactoring the tooltip with open mechanism is out of scope\n setTimeout(() => setIsKeyboardTooltipVisible(true), AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY);\n }\n }, [isKeyboardTooltipVisible, setIsKeyboardTooltipVisible]);\n\n const hideKeyboardTooltip = useCallback(() => {\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [isKeyboardTooltipVisible, setIsKeyboardTooltipVisible]);\n\n // Open tooltip manually when keyboard focusing on counter\n useListenFocusTriggers({\n ref: counterContainerRef,\n onFocusByKeyboard: showKeyboardTooltip\n });\n\n useEventListener({\n eventName: \"blur\",\n ref: tooltipContentContainerRef,\n callback: hideKeyboardTooltip\n });\n\n //Move focus to content by keyboard\n useKeyEvent({\n keys: TAB,\n ref: counterContainerRef,\n withoutAnyModifier: true,\n preventDefault: true,\n callback: useCallback(() => {\n if (isKeyboardTooltipVisible) tooltipContentContainerRef?.current && tooltipContentContainerRef.current.focus();\n }, [isKeyboardTooltipVisible, tooltipContentContainerRef])\n });\n\n // Close tooltip by keyboard\n useKeyEvent({\n keys: TAB,\n modifier: useKeyEvent.modifiers.SHIFT,\n ref: counterContainerRef,\n callback: hideKeyboardTooltip\n });\n useKeyEvent({\n keys: TAB,\n ref: tooltipContentContainerRef,\n withoutAnyModifier: true,\n callback: useCallback(() => {\n // We are not preventing default behaviour here and that's why after pressing tab and after moving focus to here\n // the browser will move the focus to the next element in the focus order.\n focusNextPlaceholderRef?.current && focusNextPlaceholderRef.current.focus();\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [focusNextPlaceholderRef, isKeyboardTooltipVisible, setIsKeyboardTooltipVisible])\n });\n useKeyEvent({\n keys: TAB,\n ref: tooltipContentContainerRef,\n modifier: useKeyEvent.modifiers.SHIFT,\n callback: useCallback(() => {\n // We are not preventing default behaviour here and that's why after pressing tab and after moving focus to here\n // the browser will move the focus to the next element in the focus order.\n focusPrevPlaceholderRef?.current && focusPrevPlaceholderRef.current.focus();\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [focusPrevPlaceholderRef, isKeyboardTooltipVisible, setIsKeyboardTooltipVisible])\n });\n useKeyEvent({\n keys: ESC,\n ref: tooltipContentContainerRef,\n callback: useCallback(() => {\n counterContainerRef?.current && counterContainerRef.current.focus();\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [counterContainerRef, isKeyboardTooltipVisible, setIsKeyboardTooltipVisible])\n });\n useKeyEvent({\n keys: ESC,\n ref: counterContainerRef,\n callback: hideKeyboardTooltip\n });\n\n // Close tooltip when moving focus to next element\n useEventListener({\n eventName: \"focus\",\n ref: focusNextPlaceholderRef,\n callback: hideKeyboardTooltip\n });\n}\n\nexport const avatarRenderer = (\n item: { value: AvatarProps & { tooltipContent: ElementContent } },\n index: number,\n style: CSSProperties,\n type: AvatarType,\n displayAsGrid: boolean\n) => {\n const avatarProps = item.value;\n const overrideStyle: CSSProperties = { ...style, width: displayAsGrid ? undefined : \"100%\" };\n const labelId = `tooltip-item-${index}-label`;\n\n return (\n <ClickableWrapper\n key={index}\n isClickable={!!avatarProps?.onClick}\n clickableProps={{ onClick: event => avatarProps.onClick(event, avatarProps.id), tabIndex: -1 }}\n >\n <div style={overrideStyle}>\n <Flex direction=\"row\" gap=\"xs\" aria-labelledby={labelId}>\n <Avatar\n {...avatarProps}\n tooltipProps={undefined}\n aria-label={\"\"}\n customSize={AVATAR_GROUP_COUNTER_AVATAR_SIZE}\n type={type || avatarProps?.type}\n tabIndex={-1}\n size=\"small\"\n className={avatarGroupCounterTooltipContentStyles.tooltipAvatarItemAvatar}\n />\n {!displayAsGrid && (\n <div id={labelId} className={avatarGroupCounterTooltipContentStyles.tooltipAvatarItemTitle}>\n {avatarProps.tooltipContent}\n </div>\n )}\n </Flex>\n </div>\n </ClickableWrapper>\n );\n};\n"],"names":["TAB","keyCodes","ESC","ESCAPE","useTooltipContentTabNavigation","_ref","_ref$counterContainer","counterContainerRef","undefined","tooltipContentContainerRef","focusPrevPlaceholderRef","focusNextPlaceholderRef","isKeyboardTooltipVisible","setIsKeyboardTooltipVisible","showKeyboardTooltip","useCallback","setTimeout","AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY","hideKeyboardTooltip","useListenFocusTriggers","ref","onFocusByKeyboard","useEventListener","eventName","callback","useKeyEvent","keys","withoutAnyModifier","preventDefault","current","focus","modifier","modifiers","SHIFT","avatarRenderer","item","index","style","type","displayAsGrid","avatarProps","value","overrideStyle","Object","assign","width","labelId","concat","React","ClickableWrapper","key","isClickable","onClick","clickableProps","event","id","tabIndex","createElement","Flex","direction","gap","Avatar","tooltipProps","customSize","AVATAR_GROUP_COUNTER_AVATAR_SIZE","size","className","avatarGroupCounterTooltipContentStyles","tooltipAvatarItemAvatar","tooltipAvatarItemTitle","tooltipContent"],"mappings":"smBAYA,IAAMA,EAAM,CAACC,EAASD,KAChBE,EAAM,CAACD,EAASE,iBAENC,EAA8BC,GAc7C,IAAAC,EAAAD,EAbCE,oBAAAA,OAAsBC,IAAHF,OAAGE,EAASF,EAC/BG,EAA0BJ,EAA1BI,2BACAC,EAAuBL,EAAvBK,wBACAC,EAAuBN,EAAvBM,wBACAC,EAAwBP,EAAxBO,yBACAC,EAA2BR,EAA3BQ,4BASMC,EAAsBC,GAAY,WACjCH,GAEHI,YAAW,WAAA,OAAMH,GAA4B,EAAK,GAAEI,EAExD,GAAG,CAACL,EAA0BC,IAExBK,EAAsBH,GAAY,WAClCH,GAA0BC,GAA4B,EAC5D,GAAG,CAACD,EAA0BC,IAG9BM,EAAuB,CACrBC,IAAKb,EACLc,kBAAmBP,IAGrBQ,EAAiB,CACfC,UAAW,OACXH,IAAKX,EACLe,SAAUN,IAIZO,EAAY,CACVC,KAAM1B,EACNoB,IAAKb,EACLoB,oBAAoB,EACpBC,gBAAgB,EAChBJ,SAAUT,GAAY,WAChBH,IAA0BH,aAA0B,EAA1BA,EAA4BoB,UAAWpB,EAA2BoB,QAAQC,OAC1G,GAAG,CAAClB,EAA0BH,MAIhCgB,EAAY,CACVC,KAAM1B,EACN+B,SAAUN,EAAYO,UAAUC,MAChCb,IAAKb,EACLiB,SAAUN,IAEZO,EAAY,CACVC,KAAM1B,EACNoB,IAAKX,EACLkB,oBAAoB,EACpBH,SAAUT,GAAY,YAGpBJ,aAAuB,EAAvBA,EAAyBkB,UAAWlB,EAAwBkB,QAAQC,QAChElB,GAA0BC,GAA4B,EAC3D,GAAE,CAACF,EAAyBC,EAA0BC,MAEzDY,EAAY,CACVC,KAAM1B,EACNoB,IAAKX,EACLsB,SAAUN,EAAYO,UAAUC,MAChCT,SAAUT,GAAY,YAGpBL,aAAuB,EAAvBA,EAAyBmB,UAAWnB,EAAwBmB,QAAQC,QAChElB,GAA0BC,GAA4B,EAC3D,GAAE,CAACH,EAAyBE,EAA0BC,MAEzDY,EAAY,CACVC,KAAMxB,EACNkB,IAAKX,EACLe,SAAUT,GAAY,YACpBR,aAAmB,EAAnBA,EAAqBsB,UAAWtB,EAAoBsB,QAAQC,QACxDlB,GAA0BC,GAA4B,EAC3D,GAAE,CAACN,EAAqBK,EAA0BC,MAErDY,EAAY,CACVC,KAAMxB,EACNkB,IAAKb,EACLiB,SAAUN,IAIZI,EAAiB,CACfC,UAAW,QACXH,IAAKT,EACLa,SAAUN,GAEd,CAEagB,IAAAA,EAAiB,SAC5BC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAMC,EAAcL,EAAKM,MACnBC,EAAoCC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAP,GAAO,CAAAQ,MAAON,OAAgB/B,EAAY,SAC9EsC,EAAO,gBAAAC,OAAmBX,EAAa,UAE7C,OACEY,gBAACC,EAAgB,CACfC,IAAKd,EACLe,eAAeX,eAAAA,EAAaY,SAC5BC,eAAgB,CAAED,QAAS,SAAAE,GAAK,OAAId,EAAYY,QAAQE,EAAOd,EAAYe,GAAG,EAAEC,UAAW,IAE3FR,EAAKS,cAAA,MAAA,CAAApB,MAAOK,GACVM,EAACS,cAAAC,EAAK,CAAAC,UAAU,MAAMC,IAAI,KAAI,kBAAkBd,GAC9CE,EAAAS,cAACI,EACKlB,OAAAC,OAAA,CAAA,EAAAJ,GACJsB,kBAActD,EACF,aAAA,GACZuD,WAAYC,EACZ1B,KAAMA,IAAQE,aAAW,EAAXA,EAAaF,MAC3BkB,UAAW,EACXS,KAAK,QACLC,UAAWC,EAAuCC,4BAElD7B,GACAS,EAAAS,cAAA,MAAA,CAAKF,GAAIT,EAASoB,UAAWC,EAAuCE,wBACjE7B,EAAY8B,kBAO3B"}
@@ -1,2 +0,0 @@
1
- var l=function(l,i){var n;null===(n=null==i?void 0:i.onClick)||void 0===n||n.call(i,l,i.id)};export{l as avatarOnClick};
2
- //# sourceMappingURL=AvatarGroupHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupHelper.js","sources":["../../../../../src/components/AvatarGroup/AvatarGroupHelper.ts"],"sourcesContent":["import type React from \"react\";\nimport { type AvatarProps } from \"@vibe/avatar\";\n\nexport const avatarOnClick = (event: React.MouseEvent | React.KeyboardEvent, avatarProps: AvatarProps) => {\n avatarProps?.onClick?.(event, avatarProps.id);\n};\n"],"names":["avatarOnClick","event","avatarProps","_a","onClick","call","id"],"mappings":"AAGO,IAAMA,EAAgB,SAACC,EAA+CC,SACpD,QAAvBC,EAAAD,aAAW,EAAXA,EAAaE,eAAU,IAAAD,GAAAA,EAAAE,KAAAH,EAAAD,EAAOC,EAAYI,GAC5C"}
@@ -1,2 +0,0 @@
1
- import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import a from"classnames";import o,{forwardRef as r,useRef as s,useCallback as i}from"react";import{useMergeRef as t}from"@vibe/shared";import{CloseSmall as l,Search as n}from"@vibe/icons";import{getTestId as c,ComponentDefaultTestId as m}from"../../tests/testIds.js";import d from"./Search.module.scss.js";import{BaseInput as p}from"@vibe/base/mockedClassNames";import{useDebounceEvent as u}from"@vibe/hooks";import{IconButton as v}from"@vibe/icon-button/mockedClassNames";import{Icon as f}from"@vibe/icon/mockedClassNames";import{Loader as b}from"@vibe/loader/mockedClassNames";import{ComponentVibeId as h}from"../../tests/constants.js";var C=r((function(r,C){var N,E,R,y,g,x,A,I,k,S,w=r.searchIconName,z=void 0===w?n:w,F=r.clearIconName,j=void 0===F?l:F,B=r.clearIconLabel,H=void 0===B?"Clear":B,L=r.renderAction,_=r.hideRenderActionOnInput,V=r.value,D=r.placeholder,K=r.size,O=void 0===K?"medium":K,P=r.disabled,T=r.loading,U=r.autoFocus,W=r.autoComplete,q=void 0===W?"off":W,G=r.inputAriaLabel,J=r.debounceRate,M=void 0===J?400:J,Q=r.searchResultsContainerId,X=r.currentAriaResultId,Y=r.onChange,Z=r.onFocus,$=r.onBlur,ee=r.onClear,ae=r.onKeyDown,oe=r.className,re=r["aria-expanded"],se=r["aria-haspopup"],ie=r.showClearIcon,te=void 0===ie||ie,le=r.id,ne=r["data-testid"];return N=s(null),E=t(C,N),R=u({delay:M,onChange:Y,initialStateValue:V}),y=R.inputValue,g=R.onEventChanged,A=i((function(){var e,a;P||(null===(a=null===(e=N.current)||void 0===e?void 0:e.focus)||void 0===a||a.call(e),x(),null==ee||ee())}),[P,x=R.clearValue,ee]),I=o.createElement(f,{icon:z,className:d.icon,type:"font",size:"small"===O?"16px":"20px"}),k=o.createElement(v,{className:a(d.icon,e({},d.empty,!y)),icon:j,"aria-label":H,onClick:A,size:"small"===O?"xs":"small","data-testid":c(m.CLEAN_SEARCH_BUTTON,le)}),S=o.createElement(o.Fragment,null,T&&o.createElement(b,{size:"small"===O?"xs":20,color:"secondary",wrapperClassName:a(e({},d.loader,!y&&!L))}),te&&y&&!P&&k,!(_&&y)&&L),o.createElement(p,{ref:E,id:le,type:"search","data-testid":ne||c(m.SEARCH,le),"data-vibe":h.SEARCH,className:a(d.searchWrapper,oe),inputClassName:d.search,value:y,renderLeft:I,renderRight:S,autoFocus:U,placeholder:D,disabled:P,onChange:g,onBlur:$,onFocus:Z,onKeyDown:ae,autoComplete:q,size:O,wrapperRole:"search",inputRole:Q?"combobox":void 0,"aria-label":G,"aria-busy":T,"aria-controls":re?Q:void 0,"aria-activedescendant":X,"aria-haspopup":se,"aria-expanded":re})}));export{C as default};
2
- //# sourceMappingURL=Search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Search.js","sources":["../../../../../src/components/Search/Search.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useCallback, useRef } from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { CloseSmall as CloseSmallIcon, Search as SearchIcon } from \"@vibe/icons\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport styles from \"./Search.module.scss\";\nimport { BaseInput } from \"@vibe/base\";\nimport { useDebounceEvent } from \"@vibe/hooks\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Icon } from \"@vibe/icon\";\nimport { type SearchProps } from \"./Search.types\";\nimport { Loader } from \"@vibe/loader\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nconst Search = forwardRef(\n (\n {\n searchIconName = SearchIcon,\n clearIconName = CloseSmallIcon,\n clearIconLabel = \"Clear\",\n renderAction: RenderAction,\n hideRenderActionOnInput,\n value,\n placeholder,\n size = \"medium\",\n disabled,\n loading,\n autoFocus,\n autoComplete = \"off\",\n inputAriaLabel,\n debounceRate = 400,\n searchResultsContainerId,\n currentAriaResultId,\n onChange,\n onFocus,\n onBlur,\n onClear,\n onKeyDown,\n className,\n \"aria-expanded\": ariaExpanded,\n \"aria-haspopup\": ariaHasPopup,\n showClearIcon = true,\n id,\n \"data-testid\": dataTestId\n }: SearchProps,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const inputRef = useRef(null);\n const mergedRef = useMergeRef(ref, inputRef);\n\n const { inputValue, onEventChanged, clearValue } = useDebounceEvent({\n delay: debounceRate,\n onChange,\n initialStateValue: value\n });\n\n const onClearButtonClick = useCallback(() => {\n if (disabled) return;\n inputRef.current?.focus?.();\n clearValue();\n onClear?.();\n }, [disabled, clearValue, onClear]);\n\n const SearchIcon = (\n <Icon icon={searchIconName} className={styles.icon} type=\"font\" size={size === \"small\" ? \"16px\" : \"20px\"} />\n );\n\n const ClearIcon = (\n <IconButton\n className={cx(styles.icon, { [styles.empty]: !inputValue })}\n icon={clearIconName}\n aria-label={clearIconLabel}\n onClick={onClearButtonClick}\n size={size === \"small\" ? \"xs\" : \"small\"}\n data-testid={getTestId(ComponentDefaultTestId.CLEAN_SEARCH_BUTTON, id)}\n />\n );\n\n const RenderRight = (\n <>\n {loading && (\n <Loader\n size={size === \"small\" ? \"xs\" : 20}\n color=\"secondary\"\n wrapperClassName={cx({ [styles.loader]: !inputValue && !RenderAction })}\n />\n )}\n {showClearIcon && inputValue && !disabled && ClearIcon}\n {!(hideRenderActionOnInput && inputValue) && RenderAction}\n </>\n );\n\n return (\n <BaseInput\n ref={mergedRef}\n id={id}\n type={\"search\"}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.SEARCH, id)}\n data-vibe={ComponentVibeId.SEARCH}\n className={cx(styles.searchWrapper, className)}\n inputClassName={styles.search}\n value={inputValue}\n renderLeft={SearchIcon}\n renderRight={RenderRight}\n autoFocus={autoFocus}\n placeholder={placeholder}\n disabled={disabled}\n onChange={onEventChanged}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n autoComplete={autoComplete}\n size={size}\n wrapperRole=\"search\"\n inputRole={searchResultsContainerId ? \"combobox\" : undefined}\n aria-label={inputAriaLabel}\n aria-busy={loading}\n aria-controls={ariaExpanded ? searchResultsContainerId : undefined}\n aria-activedescendant={currentAriaResultId}\n aria-haspopup={ariaHasPopup}\n aria-expanded={ariaExpanded}\n />\n );\n }\n);\n\nexport default Search;\n"],"names":["Search","forwardRef","_ref","ref","inputRef","mergedRef","_useDebounceEvent","inputValue","onEventChanged","clearValue","onClearButtonClick","SearchIcon","ClearIcon","RenderRight","_ref$searchIconName","searchIconName","_ref$clearIconName","clearIconName","CloseSmallIcon","_ref$clearIconLabel","clearIconLabel","RenderAction","renderAction","hideRenderActionOnInput","value","placeholder","_ref$size","size","disabled","loading","autoFocus","_ref$autoComplete","autoComplete","inputAriaLabel","_ref$debounceRate","debounceRate","searchResultsContainerId","currentAriaResultId","onChange","onFocus","onBlur","onClear","onKeyDown","className","ariaExpanded","ariaHasPopup","_ref$showClearIcon","showClearIcon","id","dataTestId","useRef","useMergeRef","useDebounceEvent","delay","initialStateValue","useCallback","_b","current","_a","focus","React","createElement","Icon","icon","styles","type","IconButton","cx","_defineProperty","empty","onClick","getTestId","ComponentDefaultTestId","CLEAN_SEARCH_BUTTON","Fragment","Loader","color","wrapperClassName","loader","BaseInput","SEARCH","ComponentVibeId","searchWrapper","inputClassName","search","renderLeft","renderRight","wrapperRole","inputRole","undefined"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var e={searchWrapper:"searchWrapper",search:"search",loader:"loader",icon:"icon",empty:"empty"};!function(e){const r="s_id-7351621e5f98_4_5_24";if("undefined"!=typeof document){const a=document.head||document.getElementsByTagName("head")[0];if(a.querySelector("#"+r))return;const n=document.createElement("style");n.id=r,a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[r]=e)}(".searchWrapper .search {\n appearance: textfield;\n}\n.searchWrapper .search::-webkit-search-cancel-button, .searchWrapper .search::-webkit-search-results-button {\n appearance: none;\n}\n.searchWrapper .loader {\n margin-inline-end: var(--space-4);\n}\n.searchWrapper .icon {\n opacity: 1;\n color: var(--icon-color);\n transition: opacity var(--motion-productive-short);\n}\n.searchWrapper .icon.empty {\n opacity: 0;\n}");export{e as default};
2
- //# sourceMappingURL=Search.module.scss.js.map
@@ -1,2 +0,0 @@
1
- import r,{useMemo as o}from"react";import t from"classnames";import a from"./AvatarGroupCounter.js";import{avatarOnClick as e}from"./AvatarGroupHelper.js";import s from"./AvatarGroup.module.scss.js";import{ComponentVibeId as i}from"../../tests/constants.js";var n=function(n){var l=n.className,p=n.avatarClassName,u=n.id,c=n.children,d=n.size,v=n.type,m=n.max,A=void 0===m?5:m,f=n.counterProps,y=n.counterTooltipCustomProps,T=n.counterTooltipIsVirtualizedList,C=void 0!==T&&T,b=n.disabled,j=o((function(){if(!c)return{};var o=Array.isArray(c)?c:[c];return{displayAvatars:o.slice(0,A).map((function(o,a){var i,n;return r.cloneElement(o,Object.assign(Object.assign({key:a},null==o?void 0:o.props),{size:d||(null===(i=null==o?void 0:o.props)||void 0===i?void 0:i.size),type:v||(null===(n=null==o?void 0:o.props)||void 0===n?void 0:n.type),className:t(s.avatarContainer,p),onClick:function(r){return e(r,o.props)},disabled:b}))})),counterTooltipAvatars:o.slice(A)}}),[p,c,b,A,d,v]),z=j.displayAvatars,G=j.counterTooltipAvatars;return c?r.createElement("div",{className:t(s.avatarGroupContainer,l),id:u,"data-vibe":i.AVATAR_GROUP},z,r.createElement(a,{counterTooltipAvatars:G,counterProps:f,counterTooltipCustomProps:y,counterTooltipIsVirtualizedList:C,size:d,type:v,disabled:b})):null};export{n as default};
2
- //# sourceMappingURL=AvatarGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroup.js","sources":["../../../../src/components/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import React, { type ReactElement, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { type AvatarProps, type AvatarSize, type AvatarType } from \"@vibe/avatar\";\nimport AvatarGroupCounter from \"./AvatarGroupCounter\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { avatarOnClick } from \"./AvatarGroupHelper\";\nimport { type TooltipProps } from \"@vibe/tooltip\";\nimport styles from \"./AvatarGroup.module.scss\";\nimport { type AvatarGroupCounterVisualProps } from \"./AvatarGroup.types\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface AvatarGroupProps extends VibeComponentProps {\n /**\n * Class name applied to each avatar.\n */\n avatarClassName?: string;\n /**\n * The avatars displayed in the group.\n */\n children?: ReactElement<AvatarProps> | ReactElement<AvatarProps>[];\n /**\n * The size of the avatars in the group.\n */\n size?: AvatarSize;\n /**\n * The type of the avatars in the group.\n */\n type?: AvatarType;\n /**\n * The maximum number of avatars displayed before showing a counter.\n */\n max?: number;\n /**\n * Props for customizing the counter display.\n */\n counterProps?: AvatarGroupCounterVisualProps;\n /**\n * Props passed to the Tooltip component. See full options in the [Tooltip documentation](https://vibe.monday.com/?path=/docs/components-tooltip--docs).\n */\n counterTooltipCustomProps?: Partial<TooltipProps>;\n /**\n * If true, the counter tooltip uses a virtualized list for performance optimization.\n */\n counterTooltipIsVirtualizedList?: boolean;\n /**\n * If true, the component is disabled and non-interactive.\n */\n disabled?: boolean;\n}\n\nconst AvatarGroup: React.FC<AvatarGroupProps> = ({\n className,\n avatarClassName,\n id,\n children,\n size,\n type,\n max = 5,\n counterProps,\n counterTooltipCustomProps,\n counterTooltipIsVirtualizedList = false,\n disabled\n}) => {\n const { displayAvatars, counterTooltipAvatars } = useMemo(() => {\n if (!children) {\n return {};\n }\n const childrenArray = Array.isArray(children) ? children : [children];\n return {\n displayAvatars: childrenArray.slice(0, max).map((avatar, index) => {\n return React.cloneElement(avatar, {\n key: index,\n ...avatar?.props,\n size: size || avatar?.props?.size,\n type: type || avatar?.props?.type,\n className: cx(styles.avatarContainer, avatarClassName),\n onClick: (event: React.MouseEvent | React.KeyboardEvent) => avatarOnClick(event, avatar.props),\n disabled\n });\n }),\n counterTooltipAvatars: childrenArray.slice(max)\n };\n }, [avatarClassName, children, disabled, max, size, type]);\n\n if (!children) {\n return null;\n }\n\n return (\n <div className={cx(styles.avatarGroupContainer, className)} id={id} data-vibe={ComponentVibeId.AVATAR_GROUP}>\n {displayAvatars}\n <AvatarGroupCounter\n counterTooltipAvatars={counterTooltipAvatars}\n counterProps={counterProps}\n counterTooltipCustomProps={counterTooltipCustomProps}\n counterTooltipIsVirtualizedList={counterTooltipIsVirtualizedList}\n size={size}\n type={type}\n disabled={disabled}\n />\n </div>\n );\n};\n\nexport default AvatarGroup;\n"],"names":["AvatarGroup","_ref","className","avatarClassName","id","children","size","type","_ref$max","max","counterProps","counterTooltipCustomProps","_ref$counterTooltipIs","counterTooltipIsVirtualizedList","disabled","_useMemo","useMemo","childrenArray","Array","isArray","displayAvatars","slice","map","avatar","index","React","cloneElement","key","props","_a","_b","cx","styles","avatarContainer","onClick","event","avatarOnClick","counterTooltipAvatars","createElement","avatarGroupContainer","ComponentVibeId","AVATAR_GROUP","AvatarGroupCounter"],"mappings":"kQAkDA,IAAMA,EAA0C,SAA/BC,GAYZ,IAXHC,EAASD,EAATC,UACAC,EAAeF,EAAfE,gBACAC,EAAEH,EAAFG,GACAC,EAAQJ,EAARI,SACAC,EAAIL,EAAJK,KACAC,EAAIN,EAAJM,KAAIC,EAAAP,EACJQ,IAAAA,OAAM,IAAHD,EAAG,EAACA,EACPE,EAAYT,EAAZS,aACAC,EAAyBV,EAAzBU,0BAAyBC,EAAAX,EACzBY,gCAAAA,OAAkC,IAAHD,GAAQA,EACvCE,EAAQb,EAARa,SAEAC,EAAkDC,GAAQ,WACxD,IAAKX,EACH,MAAO,GAET,IAAMY,EAAgBC,MAAMC,QAAQd,GAAYA,EAAW,CAACA,GAC5D,MAAO,CACLe,eAAgBH,EAAcI,MAAM,EAAGZ,GAAKa,KAAI,SAACC,EAAQC,WACvD,OAAOC,EAAMC,aAAaH,+BACxBI,IAAKH,GACFD,aAAA,EAAAA,EAAQK,OAAK,CAChBtB,KAAMA,YAAQuB,EAAAN,aAAA,EAAAA,EAAQK,4BAAOtB,MAC7BC,KAAMA,YAAQuB,EAAAP,aAAA,EAAAA,EAAQK,4BAAOrB,MAC7BL,UAAW6B,EAAGC,EAAOC,gBAAiB9B,GACtC+B,QAAS,SAACC,GAA6C,OAAKC,EAAcD,EAAOZ,EAAOK,MAAM,EAC9Fd,SAAAA,IAEJ,IACAuB,sBAAuBpB,EAAcI,MAAMZ,GAE/C,GAAG,CAACN,EAAiBE,EAAUS,EAAUL,EAAKH,EAAMC,IAnB5Ca,EAAcL,EAAdK,eAAgBiB,EAAqBtB,EAArBsB,sBAqBxB,OAAKhC,EAKHoB,EAAKa,cAAA,MAAA,CAAApC,UAAW6B,EAAGC,EAAOO,qBAAsBrC,GAAYE,GAAIA,EAAe,YAAAoC,EAAgBC,cAC5FrB,EACDK,EAAAa,cAACI,EAAkB,CACjBL,sBAAuBA,EACvB3B,aAAcA,EACdC,0BAA2BA,EAC3BE,gCAAiCA,EACjCP,KAAMA,EACNC,KAAMA,EACNO,SAAUA,KAbP,IAiBX"}
@@ -1,2 +0,0 @@
1
- var e={avatarGroupContainer:"avatarGroupContainer_f3a14948d5",avatarContainer:"avatarContainer_152a278a8c"};!function(e){const a="s_id-34c07868a875_4_5_24";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+a))return;const t=document.createElement("style");t.id=a,n.firstChild?n.insertBefore(t,n.firstChild):n.appendChild(t),t.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}(".avatarGroupContainer_f3a14948d5 {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n position: relative;\n padding: 0;\n margin: 0;\n}\n\n.avatarContainer_152a278a8c {\n margin-inline-start: calc(-1 * var(--space-8));\n}");export{e as default};
2
- //# sourceMappingURL=AvatarGroup.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroup.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- var r=200,a=22;export{a as AVATAR_GROUP_COUNTER_AVATAR_SIZE,r as AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY};
2
- //# sourceMappingURL=AvatarGroupConstants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupConstants.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupConstants.ts"],"sourcesContent":["export const AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY = 200;\nexport const AVATAR_GROUP_COUNTER_AVATAR_SIZE = 22;\n"],"names":["AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY","AVATAR_GROUP_COUNTER_AVATAR_SIZE"],"mappings":"AAAO,IAAMA,EAA0C,IAC1CC,EAAmC"}
@@ -1,2 +0,0 @@
1
- import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useRef as t,useCallback as r}from"react";import n from"classnames";import i from"./AvatarGroupCounterTooltipContainer.js";import{avatarOnClick as a}from"./AvatarGroupHelper.js";import l from"./AvatarGroupCounter.module.scss.js";import{AVATAR_GROUP_COUNTER_AVATAR_SIZE as s}from"./AvatarGroupConstants.js";import u from"../../../components/counter/dist/Counter/Counter.js";import m from"../../../components/menu-button/dist/MenuButton/MenuButton.js";import c from"../../../components/menu/dist/Menu/Menu/Menu.js";import d from"../../../components/menu/dist/Menu/MenuItem/AvatarMenuItem.js";import{getStyle as p}from"../../../shared/dist/utils/typesciptCssModulesHelper.js";var v=function(v){var f=v.counterTooltipAvatars,b=void 0===f?[]:f,C=v.counterTooltipCustomProps,x=v.counterTooltipIsVirtualizedList,I=void 0!==x&&x,j=v.size,P=void 0===j?"medium":j,g=v.type,M=v.counterAriaLabel,A=v.disabled,E=v.counterProps||{},z=E.color,N=void 0===z?"light":z,T=E.count,h=void 0===T?b.length:T,y=E.prefix,G=void 0===y?"+":y,L=E.maxDigits,k=void 0===L?3:L,B=E.ariaLabelItemsName,H=void 0===B?"items":B,O=E.noAnimation,R=E.dialogContainerSelector,S=E.tabIndex,D=void 0===S?0:S,V=p(l,null==P?void 0:""+P),_=l[N],q=t(null),w=t(null),F=t(null),J=r((function(){return o.createElement(u,{color:N,count:h,prefix:G,maxDigits:k,"aria-label":M||"Tab for more ".concat(H),noAnimation:O,counterClassName:n(e({},l.disabled,A)),size:"xs"===P?"xs":void 0})}),[M,H,N,k,G,h,A,O]);return b.length||h?A?o.createElement("div",{ref:F,className:n(l.counterContainer,l.disabled,V,_)},J()):b.some((function(e){var o;return null===(o=e.props)||void 0===o?void 0:o.onClick}))?o.createElement(m,{component:J,zIndex:1,className:n(l.counterContainer,V,_),"aria-label":M||"".concat(h," additional ").concat(H),dialogContainerSelector:R},o.createElement(c,{id:"menu",size:"medium",className:l.menu,focusItemIndexOnMount:0},b.map((function(e,t){var r,n,i,l;return o.createElement(d,{menuItemProps:{key:(null===(r=e.props)||void 0===r?void 0:r.id)||t+"",title:(null===(i=null===(n=e.props)||void 0===n?void 0:n.tooltipProps)||void 0===i?void 0:i.content)||(null===(l=null==e?void 0:e.props)||void 0===l?void 0:l["aria-label"]),onClick:function(o){return a(o,e.props)}},avatarProps:Object.assign(Object.assign({},e.props),{customSize:s,"aria-label":"",tabIndex:-1})})})))):o.createElement(i,{focusPrevPlaceholderRef:q,focusNextPlaceholderRef:w,counterContainerRef:F,avatars:b,counterTooltipCustomProps:C,counterTooltipIsVirtualizedList:I,type:g},o.createElement("div",{tabIndex:-1,ref:q}),o.createElement("div",{tabIndex:D,className:n(l.counterContainer,V,_),ref:F},J(),o.createElement("div",{tabIndex:-1,ref:w}))):null};export{v as default};
2
- //# sourceMappingURL=AvatarGroupCounter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounter.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupCounter.tsx"],"sourcesContent":["import React, { type ReactElement, useCallback, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { type AvatarProps, type AvatarSize, type AvatarType } from \"@vibe/avatar\";\nimport { Counter } from \"@vibe/counter\";\nimport { MenuButton } from \"@vibe/menu-button\";\nimport { Menu, AvatarMenuItem } from \"@vibe/menu\";\nimport AvatarGroupCounterTooltipContainer from \"./AvatarGroupCounterTooltipContainer\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { getStyle } from \"@vibe/shared\";\nimport { type AvatarGroupCounterVisualProps } from \"./AvatarGroup.types\";\nimport { type TooltipProps } from \"@vibe/tooltip\";\nimport { avatarOnClick } from \"./AvatarGroupHelper\";\nimport styles from \"./AvatarGroupCounter.module.scss\";\nimport { AVATAR_GROUP_COUNTER_AVATAR_SIZE } from \"./AvatarGroupConstants\";\n\nexport interface AvatarGroupCounterProps extends VibeComponentProps {\n /**\n * The list of avatars hidden behind the counter.\n */\n counterTooltipAvatars?: ReactElement<AvatarProps>[];\n /**\n * Props for customizing the counter appearance.\n */\n counterProps?: AvatarGroupCounterVisualProps;\n /**\n * Props for customizing the counter tooltip.\n */\n counterTooltipCustomProps?: Partial<TooltipProps>;\n /**\n * If true, the counter tooltip uses a virtualized list for performance optimization.\n */\n counterTooltipIsVirtualizedList?: boolean;\n /**\n * The size of the counter.\n */\n size?: AvatarSize;\n /**\n * The type of the avatars in the counter.\n */\n type?: AvatarType;\n /**\n * The label of the counter for accessibility.\n */\n counterAriaLabel?: string;\n /**\n * If true, the counter is disabled and non-interactive.\n */\n disabled?: boolean;\n}\n\nconst AvatarGroupCounter: React.FC<AvatarGroupCounterProps> = ({\n counterTooltipAvatars = [],\n counterProps,\n counterTooltipCustomProps,\n counterTooltipIsVirtualizedList = false,\n size = \"medium\",\n type,\n counterAriaLabel,\n disabled\n}: AvatarGroupCounterProps) => {\n const {\n color: counterColor = \"light\",\n count: counterValue = counterTooltipAvatars.length,\n prefix: counterPrefix = \"+\",\n maxDigits: counterMaxDigits = 3,\n ariaLabelItemsName: counterAriaLabelItemsName = \"items\",\n noAnimation,\n dialogContainerSelector,\n tabIndex: counterTabIndex = 0\n } = counterProps || {};\n\n const counterSizeStyle = getStyle(styles, size?.toString());\n const counterColorStyle = styles[counterColor];\n\n const focusPrevPlaceholderRef = useRef(null);\n const focusNextPlaceholderRef = useRef(null);\n const counterContainerRef = useRef(null);\n const counterComponent = useCallback(() => {\n return (\n <Counter\n color={counterColor}\n count={counterValue}\n prefix={counterPrefix}\n maxDigits={counterMaxDigits}\n aria-label={counterAriaLabel ? counterAriaLabel : `Tab for more ${counterAriaLabelItemsName}`}\n noAnimation={noAnimation}\n counterClassName={cx({ [styles.disabled]: disabled })}\n size={size === \"xs\" ? \"xs\" : undefined}\n />\n );\n }, [\n counterAriaLabel,\n counterAriaLabelItemsName,\n counterColor,\n counterMaxDigits,\n counterPrefix,\n counterValue,\n disabled,\n noAnimation\n ]);\n\n if (!counterTooltipAvatars.length && !counterValue) {\n return null;\n }\n\n if (disabled) {\n return (\n <div\n ref={counterContainerRef}\n className={cx(styles.counterContainer, styles.disabled, counterSizeStyle, counterColorStyle)}\n >\n {counterComponent()}\n </div>\n );\n }\n\n const areAvatarsClickable = counterTooltipAvatars.some(a => a.props?.onClick);\n if (areAvatarsClickable) {\n return (\n <MenuButton\n component={counterComponent}\n zIndex={1}\n className={cx(styles.counterContainer, counterSizeStyle, counterColorStyle)}\n aria-label={counterAriaLabel ? counterAriaLabel : `${counterValue} additional ${counterAriaLabelItemsName}`}\n dialogContainerSelector={dialogContainerSelector}\n >\n <Menu id=\"menu\" size=\"medium\" className={styles.menu} focusItemIndexOnMount={0}>\n {counterTooltipAvatars.map((avatar, index) => {\n return (\n // eslint-disable-next-line react/jsx-key\n <AvatarMenuItem\n menuItemProps={{\n key: avatar.props?.id || String(index),\n title: (avatar.props?.tooltipProps?.content as string) || avatar?.props?.[\"aria-label\"],\n onClick: (event: React.MouseEvent | React.KeyboardEvent) => avatarOnClick(event, avatar.props)\n }}\n avatarProps={{\n ...avatar.props,\n customSize: AVATAR_GROUP_COUNTER_AVATAR_SIZE,\n \"aria-label\": \"\",\n tabIndex: -1\n }}\n />\n );\n })}\n </Menu>\n </MenuButton>\n );\n }\n\n return (\n <AvatarGroupCounterTooltipContainer\n focusPrevPlaceholderRef={focusPrevPlaceholderRef}\n focusNextPlaceholderRef={focusNextPlaceholderRef}\n counterContainerRef={counterContainerRef}\n avatars={counterTooltipAvatars}\n counterTooltipCustomProps={counterTooltipCustomProps}\n counterTooltipIsVirtualizedList={counterTooltipIsVirtualizedList}\n type={type}\n >\n <div tabIndex={-1} ref={focusPrevPlaceholderRef} />\n {/* eslint-disable jsx-a11y/no-noninteractive-tabindex */}\n <div\n tabIndex={counterTabIndex}\n className={cx(styles.counterContainer, counterSizeStyle, counterColorStyle)}\n ref={counterContainerRef}\n >\n {/* eslint-enable jsx-a11y/no-noninteractive-tabindex */}\n {counterComponent()}\n <div tabIndex={-1} ref={focusNextPlaceholderRef} />\n </div>\n </AvatarGroupCounterTooltipContainer>\n );\n};\n\nexport default AvatarGroupCounter;\n"],"names":["AvatarGroupCounter","_ref","_ref$counterTooltipAv","counterTooltipAvatars","counterTooltipCustomProps","_ref$counterTooltipIs","counterTooltipIsVirtualizedList","_ref$size","size","type","counterAriaLabel","disabled","_ref2","counterProps","_ref2$color","color","counterColor","_ref2$count","count","counterValue","length","_ref2$prefix","prefix","counterPrefix","_ref2$maxDigits","maxDigits","counterMaxDigits","_ref2$ariaLabelItemsN","ariaLabelItemsName","counterAriaLabelItemsName","noAnimation","dialogContainerSelector","_ref2$tabIndex","tabIndex","counterTabIndex","counterSizeStyle","getStyle","styles","counterColorStyle","focusPrevPlaceholderRef","useRef","focusNextPlaceholderRef","counterContainerRef","counterComponent","useCallback","React","createElement","Counter","concat","counterClassName","cx","_defineProperty","undefined","ref","className","counterContainer","some","a","_a","props","onClick","MenuButton","component","zIndex","Menu","id","menu","focusItemIndexOnMount","map","avatar","index","AvatarMenuItem","menuItemProps","key","String","title","_c","_b","tooltipProps","content","_d","event","avatarOnClick","avatarProps","customSize","AVATAR_GROUP_COUNTER_AVATAR_SIZE","AvatarGroupCounterTooltipContainer","avatars"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var n={counterContainer:"counterContainer_aa6b750f52","focus-visible":"focus-visible_ff84167bbd",xs:"xs_41560551e9",small:"small_f510a16bd0",medium:"medium_e11c70467e",large:"large_5f3d22fc1e",primary:"primary_1850b36226",dark:"dark_6a7251429b",negative:"negative_35482ee9ff",light:"light_391f819859",disabled:"disabled_28235a1b80",menu:"menu_7204884485"};!function(n){const e="s_id-d3854ac48ae9_4_5_24";if("undefined"!=typeof document){const a=document.head||document.getElementsByTagName("head")[0];if(a.querySelector("#"+e))return;const o=document.createElement("style");o.id=e,a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.appendChild(document.createTextNode(n))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=n)}("/* stylelint-disable */\n/* stylelint-enable */\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52 {\n background: var(--ui-background-color);\n display: flex;\n justify-content: center;\n align-items: center;\n margin-inline-start: calc(-1 * var(--space-8));\n z-index: 1;\n border: 1px solid var(--primary-background-color);\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52:focus-visible, .counterContainer_aa6b750f52.counterContainer_aa6b750f52.focus-visible_ff84167bbd { /* stylelint-disable-line selector-class-pattern */\n outline: none;\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52:focus-visible:focus-visible, .counterContainer_aa6b750f52.counterContainer_aa6b750f52:focus-visible.focus-visible_ff84167bbd, .counterContainer_aa6b750f52.counterContainer_aa6b750f52.focus-visible_ff84167bbd:focus-visible, .counterContainer_aa6b750f52.counterContainer_aa6b750f52.focus-visible_ff84167bbd.focus-visible_ff84167bbd {\n outline: none;\n z-index: 11;\n border-radius: 50%;\n box-shadow: 0 0 0 3px hsla(209, 100%, 50%, 0.5), 0 0 0 1px var(--primary-hover-color) inset;\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52:focus-visible:focus:not(.focus-visible_ff84167bbd), .counterContainer_aa6b750f52.counterContainer_aa6b750f52.focus-visible_ff84167bbd:focus:not(.focus-visible_ff84167bbd) {\n outline: none;\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.xs_41560551e9 {\n height: 20px;\n min-width: 20px;\n border-radius: 10px;\n padding: 0 1px;\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.small_f510a16bd0 {\n height: 28px;\n min-width: 28px;\n border-radius: 14px;\n padding: 0 1px;\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.medium_e11c70467e {\n height: 32px;\n min-width: 32px;\n border-radius: 16px;\n padding: 0 2px;\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.large_5f3d22fc1e {\n height: 50px;\n min-width: 50px;\n border-radius: 25px;\n padding: 0 var(--space-4);\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.primary_1850b36226 {\n color: var(--text-color-on-primary);\n background-color: var(--primary-color);\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.dark_6a7251429b {\n color: var(--text-color-on-inverted);\n background-color: var(--inverted-color-background);\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.negative_35482ee9ff {\n color: var(--text-color-on-primary);\n background-color: var(--negative-color);\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52.light_391f819859 {\n color: var(--primary-text-color);\n background-color: var(--ui-background-color);\n}\n.counterContainer_aa6b750f52.counterContainer_aa6b750f52 .disabled_28235a1b80, .counterContainer_aa6b750f52.counterContainer_aa6b750f52.disabled_28235a1b80 {\n background-color: var(--disabled-background-color);\n color: var(--disabled-text-color);\n}\n.menu_7204884485 {\n max-height: 300px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n.menu_7204884485::-webkit-scrollbar {\n width: 4px;\n height: 6px;\n}\n.menu_7204884485::-webkit-scrollbar-thumb {\n background-color: var(--ui-border-color);\n border-radius: 4px;\n}");export{n as default};
2
- //# sourceMappingURL=AvatarGroupCounter.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounter.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as t,useRef as r,useMemo as n,useCallback as i}from"react";import l from"./AvatarGroupCounterTooltipContent.js";import{useTooltipContentTabNavigation as a}from"./AvatarGroupCounterTooltipHelper.js";import{AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY as s}from"./AvatarGroupConstants.js";import u from"../../../components/tooltip/dist/Tooltip/Tooltip.js";var p=function(p){var c=p.focusPrevPlaceholderRef,d=p.focusNextPlaceholderRef,f=p.counterContainerRef,m=p.children,v=void 0===m?[]:m,T=p.avatars,C=void 0===T?[]:T,h=p.type,g=p.className,P=p.counterTooltipCustomProps,R=p.counterTooltipIsVirtualizedList,b=void 0!==R&&R,j=t(!1),y=e(j,2),A=y[0],N=y[1],V=r(null),x=n((function(){return(null==P?void 0:P.content)||o.createElement(l,{avatars:C,type:h,className:g,isVirtualizedList:b,tooltipContentContainerRef:V})}),[C,g,null==P?void 0:P.content,b,h]);a({counterContainerRef:f,tooltipContentContainerRef:V,focusPrevPlaceholderRef:c,focusNextPlaceholderRef:d,setIsKeyboardTooltipVisible:N,isKeyboardTooltipVisible:A});var E=i((function(){N(!1)}),[]);return(null==C?void 0:C.length)||(null==P?void 0:P.content)?o.createElement(u,Object.assign({open:A,hideDelay:s,showTrigger:["mouseenter"],hideTrigger:["mouseleave"],onTooltipHide:E},P||{},{content:x}),v):o.createElement(o.Fragment,null,v)};export{p as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContainer.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.tsx"],"sourcesContent":["import React, { type ReactElement, type RefObject, useCallback, useMemo, useRef, useState } from \"react\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport AvatarGroupCounterTooltipContent from \"./AvatarGroupCounterTooltipContent\";\nimport { useTooltipContentTabNavigation } from \"./AvatarGroupCounterTooltipHelper\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY } from \"./AvatarGroupConstants\";\n\nexport interface AvatarGroupCounterTooltipContainerProps extends VibeComponentProps {\n /**\n * The type of avatars displayed in the tooltip.\n */\n type?: AvatarType;\n /**\n * The counter element and focus placeholders.\n */\n children?: ReactElement[];\n /**\n * The list of avatars displayed inside the tooltip.\n */\n avatars?: ReactElement<AvatarProps>[];\n /**\n * Props passed to the Tooltip component. See full options in the [Tooltip documentation](https://vibe.monday.com/?path=/docs/components-tooltip--docs).\n */\n counterTooltipCustomProps?: Partial<TooltipProps>;\n /**\n * If true, the tooltip uses a virtualized list for performance optimization.\n */\n counterTooltipIsVirtualizedList?: boolean;\n /**\n * Ref for the element before the tooltip content, used for keyboard navigation.\n */\n focusPrevPlaceholderRef?: RefObject<HTMLDivElement>;\n /**\n * Ref for the element after the tooltip content, used for keyboard navigation.\n */\n focusNextPlaceholderRef?: RefObject<HTMLDivElement>;\n /**\n * Ref for the counter container element.\n */\n counterContainerRef?: RefObject<HTMLDivElement>;\n}\n\nconst AvatarGroupCounterTooltipContainer: React.FC<AvatarGroupCounterTooltipContainerProps> = ({\n focusPrevPlaceholderRef,\n focusNextPlaceholderRef,\n counterContainerRef,\n children = [],\n avatars = [],\n type,\n className,\n counterTooltipCustomProps,\n counterTooltipIsVirtualizedList = false\n}) => {\n const [isKeyboardTooltipVisible, setIsKeyboardTooltipVisible] = useState(false);\n const tooltipContentContainerRef = useRef(null);\n const tooltipContent = useMemo(\n () =>\n counterTooltipCustomProps?.content || (\n <AvatarGroupCounterTooltipContent\n avatars={avatars}\n type={type}\n className={className}\n isVirtualizedList={counterTooltipIsVirtualizedList}\n tooltipContentContainerRef={tooltipContentContainerRef}\n />\n ),\n [avatars, className, counterTooltipCustomProps?.content, counterTooltipIsVirtualizedList, type]\n );\n\n useTooltipContentTabNavigation({\n counterContainerRef,\n tooltipContentContainerRef,\n focusPrevPlaceholderRef,\n focusNextPlaceholderRef,\n setIsKeyboardTooltipVisible,\n isKeyboardTooltipVisible\n });\n\n // Tooltip props\n const onHide = useCallback(() => {\n setIsKeyboardTooltipVisible(false);\n }, []);\n\n if (!avatars?.length && !counterTooltipCustomProps?.content) {\n return <>{children}</>;\n }\n return (\n <Tooltip\n open={isKeyboardTooltipVisible}\n hideDelay={AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY}\n showTrigger={[\"mouseenter\"]}\n hideTrigger={[\"mouseleave\"]}\n onTooltipHide={onHide}\n {...(counterTooltipCustomProps || {})}\n content={tooltipContent}\n >\n {children}\n </Tooltip>\n );\n};\n\nexport default AvatarGroupCounterTooltipContainer;\n"],"names":["AvatarGroupCounterTooltipContainer","_ref","focusPrevPlaceholderRef","focusNextPlaceholderRef","counterContainerRef","_ref$children","children","_ref$avatars","avatars","type","className","counterTooltipCustomProps","_ref$counterTooltipIs","counterTooltipIsVirtualizedList","_useState","useState","_useState2","_slicedToArray","isKeyboardTooltipVisible","setIsKeyboardTooltipVisible","tooltipContentContainerRef","useRef","tooltipContent","useMemo","content","React","createElement","AvatarGroupCounterTooltipContent","isVirtualizedList","useTooltipContentTabNavigation","onHide","useCallback","length","Tooltip","open","hideDelay","AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY","showTrigger","hideTrigger","onTooltipHide","Fragment"],"mappings":"+bA2CA,IAAMA,EAAwF,SAAtDC,GAUnC,IATHC,EAAuBD,EAAvBC,wBACAC,EAAuBF,EAAvBE,wBACAC,EAAmBH,EAAnBG,oBAAmBC,EAAAJ,EACnBK,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACbO,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EACZE,EAAIR,EAAJQ,KACAC,EAAST,EAATS,UACAC,EAAyBV,EAAzBU,0BAAyBC,EAAAX,EACzBY,gCAAAA,OAAkC,IAAHD,GAAQA,EAEvCE,EAAgEC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxEI,EAAwBF,EAAA,GAAEG,EAA2BH,EAAA,GACtDI,EAA6BC,EAAO,MACpCC,EAAiBC,GACrB,WAAA,OACEZ,aAAyB,EAAzBA,EAA2Ba,UACzBC,EAAAC,cAACC,EAAgC,CAC/BnB,QAASA,EACTC,KAAMA,EACNC,UAAWA,EACXkB,kBAAmBf,EACnBO,2BAA4BA,GAGlC,GAAA,CAACZ,EAASE,EAAWC,aAAA,EAAAA,EAA2Ba,QAASX,EAAiCJ,IAG5FoB,EAA+B,CAC7BzB,oBAAAA,EACAgB,2BAAAA,EACAlB,wBAAAA,EACAC,wBAAAA,EACAgB,4BAAAA,EACAD,yBAAAA,IAIF,IAAMY,EAASC,GAAY,WACzBZ,GAA4B,EAC7B,GAAE,IAEH,OAAKX,aAAA,EAAAA,EAASwB,UAAWrB,aAAyB,EAAzBA,EAA2Ba,SAIlDC,EAACC,cAAAO,iBACCC,KAAMhB,EACNiB,UAAWC,EACXC,YAAa,CAAC,cACdC,YAAa,CAAC,cACdC,cAAeT,GACVnB,GAA6B,CAAA,EAAG,CACrCa,QAASF,IAERhB,GAZImB,EAAAC,cAAAD,EAAAe,SAAA,KAAGlC,EAed"}
@@ -1,2 +0,0 @@
1
- import t,{useCallback as o,useMemo as r}from"react";import e from"classnames";import n from"./AvatarGroupCounterTooltipContentVirtualizedList.js";import{avatarRenderer as a}from"./AvatarGroupCounterTooltipHelper.js";import i from"./AvatarGroupCounterTooltipContent.module.scss.js";import l from"../../../components/layout/dist/Flex/Flex.js";var s=function(s){var p=s.avatars,u=void 0===p?[]:p,m=s.type,c=s.className,v=s.isVirtualizedList,d=void 0!==v&&v,C=s.tooltipContentContainerRef,f=o((function(t){var o;return(null===(o=null==t?void 0:t.tooltipProps)||void 0===o?void 0:o.content)||(null==t?void 0:t["aria-label"])}),[]),b=r((function(){var t=u.map((function(t){return{value:Object.assign(Object.assign({},t.props),{tooltipContent:f(t.props)})}})),o=!t.some((function(t){return t.value.tooltipContent})),r=o?void 0:t.map((function(t){return t.value.tooltipContent})).join(",");return{avatarItems:t,displayAsGrid:o,tooltipContainerAriaLabel:r}}),[u,f]),j=b.avatarItems,A=b.displayAsGrid,G=b.tooltipContainerAriaLabel,g=r((function(){return j.map((function(t,o){return a(t,o,void 0,m,A)}))}),[j,A,m]);if(d)return t.createElement(n,{avatarRenderer:a,tooltipContentContainerRef:C,tooltipContainerAriaLabel:G,avatarItems:j,type:m});var x={ref:C,tabIndex:-1,role:"treegrid","aria-label":G,className:A?e(i.scrollableContainer,i.tooltipContainer,i.tooltipGridContainer,c):e(i.scrollableContainer,i.tooltipContainer,c),direction:A?"row":"column",gap:A?"xs":"small",wrap:A};return t.createElement(l,Object.assign({},x),g)};export{s as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContent.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipContent.tsx"],"sourcesContent":["import React, { type ReactElement, type Ref, useCallback, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { Flex, type FlexProps } from \"@vibe/layout\";\nimport { type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport AvatarGroupCounterTooltipContentVirtualizedList from \"./AvatarGroupCounterTooltipContentVirtualizedList\";\nimport { avatarRenderer } from \"./AvatarGroupCounterTooltipHelper\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport styles from \"./AvatarGroupCounterTooltipContent.module.scss\";\n\nexport interface AvatarGroupCounterTooltipContentProps extends VibeComponentProps {\n /**\n * The type of avatars displayed inside the tooltip.\n */\n type?: AvatarType;\n /**\n * The avatars shown in the tooltip.\n */\n avatars?: ReactElement<AvatarProps>[];\n /**\n * If true, the tooltip uses a virtualized list for performance optimization.\n */\n isVirtualizedList?: boolean;\n /**\n * Ref for the tooltip content container.\n */\n tooltipContentContainerRef?: Ref<HTMLDivElement>;\n}\n\nconst AvatarGroupCounterTooltipContent: React.FC<AvatarGroupCounterTooltipContentProps> = ({\n avatars = [],\n type,\n className,\n isVirtualizedList = false,\n tooltipContentContainerRef\n}) => {\n const getTooltipContent = useCallback((avatarProps: AvatarProps) => {\n return avatarProps?.tooltipProps?.content || avatarProps?.[\"aria-label\"];\n }, []);\n\n const { avatarItems, displayAsGrid, tooltipContainerAriaLabel } = useMemo(() => {\n const avatarItems = avatars.map(avatar => ({\n value: { ...avatar.props, tooltipContent: getTooltipContent(avatar.props) }\n }));\n const displayAsGrid = !avatarItems.some(item => item.value.tooltipContent);\n const tooltipContainerAriaLabel = !displayAsGrid\n ? avatarItems.map(item => item.value.tooltipContent).join(\",\")\n : undefined;\n return { avatarItems, displayAsGrid, tooltipContainerAriaLabel };\n }, [avatars, getTooltipContent]);\n\n const renderedItems = useMemo(\n () => avatarItems.map((item, index) => avatarRenderer(item, index, undefined, type, displayAsGrid)),\n [avatarItems, displayAsGrid, type]\n );\n\n if (isVirtualizedList) {\n return (\n <AvatarGroupCounterTooltipContentVirtualizedList\n avatarRenderer={avatarRenderer}\n tooltipContentContainerRef={tooltipContentContainerRef}\n tooltipContainerAriaLabel={tooltipContainerAriaLabel}\n avatarItems={avatarItems}\n type={type}\n />\n );\n }\n\n const flexProps = {\n ref: tooltipContentContainerRef,\n tabIndex: -1,\n role: \"treegrid\",\n \"aria-label\": tooltipContainerAriaLabel,\n className: displayAsGrid\n ? cx(styles.scrollableContainer, styles.tooltipContainer, styles.tooltipGridContainer, className)\n : cx(styles.scrollableContainer, styles.tooltipContainer, className),\n direction: displayAsGrid ? \"row\" : \"column\",\n gap: displayAsGrid ? \"xs\" : \"small\",\n wrap: displayAsGrid\n };\n\n return <Flex {...(flexProps as FlexProps)}>{renderedItems}</Flex>;\n};\n\nexport default AvatarGroupCounterTooltipContent;\n"],"names":["AvatarGroupCounterTooltipContent","_ref","_ref$avatars","avatars","type","className","_ref$isVirtualizedLis","isVirtualizedList","tooltipContentContainerRef","getTooltipContent","useCallback","avatarProps","tooltipProps","_a","content","_useMemo","useMemo","avatarItems","map","avatar","value","Object","assign","props","tooltipContent","displayAsGrid","some","item","tooltipContainerAriaLabel","undefined","join","renderedItems","index","avatarRenderer","React","createElement","AvatarGroupCounterTooltipContentVirtualizedList","flexProps","ref","tabIndex","role","cx","styles","scrollableContainer","tooltipContainer","tooltipGridContainer","direction","gap","wrap","Flex"],"mappings":"qVA4BA,IAAMA,EAAoF,SAApDC,GAMjC,IAAAC,EAAAD,EALHE,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EACZE,EAAIH,EAAJG,KACAC,EAASJ,EAATI,UAASC,EAAAL,EACTM,kBAAAA,OAAoB,IAAHD,GAAQA,EACzBE,EAA0BP,EAA1BO,2BAEMC,EAAoBC,GAAY,SAACC,SACrC,OAAgC,UAAzBA,aAAA,EAAAA,EAAaC,oBAAY,IAAAC,OAAA,EAAAA,EAAEC,WAAWH,aAAW,EAAXA,EAAc,cAC5D,GAAE,IAEHI,EAAkEC,GAAQ,WACxE,IAAMC,EAAcd,EAAQe,KAAI,SAAAC,GAAM,MAAK,CACzCC,MAAYC,OAAAC,OAAAD,OAAAC,OAAA,GAAAH,EAAOI,OAAO,CAAAC,eAAgBf,EAAkBU,EAAOI,SACpE,IACKE,GAAiBR,EAAYS,MAAK,SAAAC,GAAI,OAAIA,EAAKP,MAAMI,kBACrDI,EAA6BH,OAE/BI,EADAZ,EAAYC,KAAI,SAAAS,GAAI,OAAIA,EAAKP,MAAMI,cAAc,IAAEM,KAAK,KAE5D,MAAO,CAAEb,YAAAA,EAAaQ,cAAAA,EAAeG,0BAAAA,EACvC,GAAG,CAACzB,EAASM,IATLQ,EAAWF,EAAXE,YAAaQ,EAAaV,EAAbU,cAAeG,EAAyBb,EAAzBa,0BAW9BG,EAAgBf,GACpB,WAAA,OAAMC,EAAYC,KAAI,SAACS,EAAMK,GAAK,OAAKC,EAAeN,EAAMK,OAAOH,EAAWzB,EAAMqB,KAAe,GACnG,CAACR,EAAaQ,EAAerB,IAG/B,GAAIG,EACF,OACE2B,EAACC,cAAAC,EACC,CAAAH,eAAgBA,EAChBzB,2BAA4BA,EAC5BoB,0BAA2BA,EAC3BX,YAAaA,EACbb,KAAMA,IAKZ,IAAMiC,EAAY,CAChBC,IAAK9B,EACL+B,UAAW,EACXC,KAAM,WACN,aAAcZ,EACdvB,UAAWoB,EACPgB,EAAGC,EAAOC,oBAAqBD,EAAOE,iBAAkBF,EAAOG,qBAAsBxC,GACrFoC,EAAGC,EAAOC,oBAAqBD,EAAOE,iBAAkBvC,GAC5DyC,UAAWrB,EAAgB,MAAQ,SACnCsB,IAAKtB,EAAgB,KAAO,QAC5BuB,KAAMvB,GAGR,OAAOS,gBAACe,EAAI5B,OAAAC,OAAA,GAAMe,GAA0BN,EAC9C"}
@@ -1,2 +0,0 @@
1
- var e={tooltipAvatarItemTitle:"tooltipAvatarItemTitle_716f5bbf5e",tooltipAvatarItemAvatar:"tooltipAvatarItemAvatar_f5ed85604b",tooltipContainer:"tooltipContainer_e68457b9e4","focus-visible":"focus-visible_ff84167bbd",tooltipGridContainer:"tooltipGridContainer_2b73fc9966",scrollableContainer:"scrollableContainer_38820ebc9d"};!function(e){const t="s_id-886ef7c132b6_4_5_24";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+t))return;const i=document.createElement("style");i.id=t,n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.tooltipAvatarItemTitle_716f5bbf5e {\n white-space: nowrap;\n}\n.tooltipAvatarItemAvatar_f5ed85604b {\n flex-shrink: 0;\n}\n.tooltipContainer_e68457b9e4 {\n max-height: 300px;\n padding-inline-end: var(--space-16);\n align-items: flex-start !important;\n overflow-x: visible;\n overflow-y: auto;\n margin-top: var(--space-8);\n}\n.tooltipContainer_e68457b9e4:focus, .tooltipContainer_e68457b9e4:focus-visible, .tooltipContainer_e68457b9e4.focus-visible_ff84167bbd { /* stylelint-disable-line selector-class-pattern */\n outline: none;\n}\n.tooltipGridContainer_2b73fc9966 {\n max-width: 160px;\n padding-inline-end: 0;\n}\n.scrollableContainer_38820ebc9d::-webkit-scrollbar {\n width: 4px;\n height: 6px;\n}\n.scrollableContainer_38820ebc9d::-webkit-scrollbar-thumb {\n background-color: var(--ui-border-color);\n border-radius: 4px;\n}");export{e as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContent.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContent.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import t,{useMemo as e}from"react";import i from"./AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js";import r from"../../../components/virtualized-list/dist/VirtualizedList/VirtualizedList.js";var n=Object.freeze({maxItemsWithoutScroll:10,itemLineHeight:34,itemLineWidth:150}),a=function(a){var o=a.avatarItems,l=void 0===o?[]:o,m=a.avatarRenderer,s=a.type,u=a.tooltipContainerAriaLabel,d=a.tooltipContentContainerRef,c=e((function(){return l.map((function(t){return{value:t,height:n.itemLineHeight}}))}),[l]);return t.createElement("div",{className:i.virtualizedTooltipContainer,"aria-label":u,ref:d,tabIndex:-1},t.createElement(r,{items:c,itemRenderer:function(t,e,i){return m(t.value,e,i,s,!1)},role:"treegrid",scrollableClassName:i.scrollableContainer,getItemId:function(t,e){return e+""},style:{height:n.itemLineHeight*Math.min(l.length,n.maxItemsWithoutScroll),minWidth:n.itemLineWidth}}))};export{a as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContentVirtualizedList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContentVirtualizedList.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.tsx"],"sourcesContent":["import React, { type CSSProperties, type ReactElement, type Ref, useMemo } from \"react\";\nimport { VirtualizedList, type VirtualizedListItem } from \"@vibe/virtualized-list\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport { type ElementContent } from \"../../types\";\nimport styles from \"./AvatarGroupCounterTooltipContentVirtualizedList.module.scss\";\n\nconst LIST_OPTIONS = Object.freeze({\n maxItemsWithoutScroll: 10,\n itemLineHeight: 34,\n itemLineWidth: 150\n});\n\nexport type AvatarItem = {\n value: AvatarProps & { tooltipContent: ElementContent };\n};\n\nexport interface AvatarGroupCounterTooltipContentVirtualizedListProps extends VibeComponentProps {\n /**\n * The list of avatars displayed in the virtualized tooltip.\n */\n avatarItems?: AvatarItem[];\n /**\n * Function to render each avatar item.\n */\n avatarRenderer?: (\n item: AvatarItem,\n index: number,\n style: CSSProperties,\n type: AvatarType,\n displayAsGrid: boolean\n ) => ReactElement;\n /**\n * The ARIA label of the tooltip container.\n */\n tooltipContainerAriaLabel?: string;\n /**\n * Ref for the tooltip content container.\n */\n tooltipContentContainerRef?: Ref<HTMLDivElement>;\n /**\n * The type of avatars in the tooltip.\n */\n type?: AvatarType;\n}\n\nconst AvatarGroupCounterTooltipContentVirtualizedList: React.FC<\n AvatarGroupCounterTooltipContentVirtualizedListProps\n> = ({ avatarItems = [], avatarRenderer, type, tooltipContainerAriaLabel, tooltipContentContainerRef }) => {\n const virtualizedItems: VirtualizedListItem[] = useMemo(\n () => avatarItems.map(item => ({ value: item, height: LIST_OPTIONS.itemLineHeight } as VirtualizedListItem)),\n [avatarItems]\n );\n\n const minCount = Math.min(avatarItems.length, LIST_OPTIONS.maxItemsWithoutScroll);\n const virtualizedListStyle = {\n height: LIST_OPTIONS.itemLineHeight * minCount,\n minWidth: LIST_OPTIONS.itemLineWidth\n };\n\n return (\n <div\n className={styles.virtualizedTooltipContainer}\n aria-label={tooltipContainerAriaLabel}\n ref={tooltipContentContainerRef}\n tabIndex={-1}\n >\n <VirtualizedList\n items={virtualizedItems}\n itemRenderer={(item: VirtualizedListItem, index: number, style: CSSProperties) =>\n avatarRenderer(item.value as AvatarItem, index, style, type, false)\n }\n role=\"treegrid\"\n scrollableClassName={styles.scrollableContainer}\n getItemId={(item: VirtualizedListItem, index: number) => String(index)}\n style={virtualizedListStyle}\n />\n </div>\n );\n};\n\nexport default AvatarGroupCounterTooltipContentVirtualizedList;\n"],"names":["LIST_OPTIONS","Object","freeze","maxItemsWithoutScroll","itemLineHeight","itemLineWidth","AvatarGroupCounterTooltipContentVirtualizedList","_ref","_ref$avatarItems","avatarItems","avatarRenderer","type","tooltipContainerAriaLabel","tooltipContentContainerRef","virtualizedItems","useMemo","map","item","value","height","React","createElement","className","styles","virtualizedTooltipContainer","ref","tabIndex","VirtualizedList","items","itemRenderer","index","style","role","scrollableClassName","scrollableContainer","getItemId","String","Math","min","length","minWidth"],"mappings":"+MAOA,IAAMA,EAAeC,OAAOC,OAAO,CACjCC,sBAAuB,GACvBC,eAAgB,GAChBC,cAAe,MAoCXC,EAEF,SAFiDC,GAEqD,IAAAC,EAAAD,EAAnGE,YAAAA,OAAc,IAAHD,EAAG,GAAEA,EAAEE,EAAcH,EAAdG,eAAgBC,EAAIJ,EAAJI,KAAMC,EAAyBL,EAAzBK,0BAA2BC,EAA0BN,EAA1BM,2BAClEC,EAA0CC,GAC9C,WAAA,OAAMN,EAAYO,KAAI,SAAAC,GAAI,MAAK,CAAEC,MAAOD,EAAME,OAAQnB,EAAaI,eAAwC,MAC3G,CAACK,IASH,OACEW,EACEC,cAAA,MAAA,CAAAC,UAAWC,EAAOC,4BAA2B,aACjCZ,EACZa,IAAKZ,EACLa,UAAW,GAEXN,EAAAC,cAACM,EAAe,CACdC,MAAOd,EACPe,aAAc,SAACZ,EAA2Ba,EAAeC,GAAoB,OAC3ErB,EAAeO,EAAKC,MAAqBY,EAAOC,EAAOpB,GAAM,EAAM,EAErEqB,KAAK,WACLC,oBAAqBV,EAAOW,oBAC5BC,UAAW,SAAClB,EAA2Ba,GAAa,OAAYA,EAAPM,EAAa,EACtEL,MApBuB,CAC3BZ,OAAQnB,EAAaI,eAFNiC,KAAKC,IAAI7B,EAAY8B,OAAQvC,EAAaG,uBAGzDqC,SAAUxC,EAAaK,iBAsB3B"}
@@ -1,2 +0,0 @@
1
- var e={scrollableContainer:"scrollableContainer_7797612c8c",virtualizedTooltipContainer:"virtualizedTooltipContainer_474b740252","focus-visible":"focus-visible_ff84167bbd"};!function(e){const i="s_id-21f61936150a_4_5_24";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+i))return;const l=document.createElement("style");l.id=i,n.firstChild?n.insertBefore(l,n.firstChild):n.appendChild(l),l.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[i]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.scrollableContainer_7797612c8c::-webkit-scrollbar {\n width: 4px;\n height: 6px;\n}\n.scrollableContainer_7797612c8c::-webkit-scrollbar-thumb {\n background-color: var(--ui-border-color);\n border-radius: 4px;\n}\n.virtualizedTooltipContainer_474b740252 {\n align-items: flex-start !important;\n display: flex;\n overflow-y: hidden;\n overflow-x: visible;\n}\n.virtualizedTooltipContainer_474b740252:focus, .virtualizedTooltipContainer_474b740252:focus-visible, .virtualizedTooltipContainer_474b740252.focus-visible_ff84167bbd { /* stylelint-disable-line selector-class-pattern */\n outline: none;\n}");export{e as default};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import e,{useCallback as t}from"react";import o from"./AvatarGroupCounterTooltipContent.module.scss.js";import r from"../../hooks/useListenFocusTriggers/index.js";import{AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY as i,AVATAR_GROUP_COUNTER_AVATAR_SIZE as n}from"./AvatarGroupConstants.js";import{keyCodes as a}from"../../constants/keyCodes.js";import"../../constants/sizes.js";import s from"../../../components/clickable/dist/Clickable/ClickableWrapper.js";import l from"../../../components/layout/dist/Flex/Flex.js";import c from"../../../components/avatar/dist/Avatar/Avatar.js";import{useEventListener as u}from"../../../shared/dist/hooks/useEventListener.js";import{useKeyEvent as f}from"../../../shared/dist/hooks/useKeyEvent.js";var m=[a.TAB],d=[a.ESCAPE];function p(e){var o=e.counterContainerRef,n=void 0===o?void 0:o,a=e.tooltipContentContainerRef,s=e.focusPrevPlaceholderRef,l=e.focusNextPlaceholderRef,c=e.isKeyboardTooltipVisible,p=e.setIsKeyboardTooltipVisible,v=t((function(){c||setTimeout((function(){return p(!0)}),i)}),[c,p]),b=t((function(){c&&p(!1)}),[c,p]);r({ref:n,onFocusByKeyboard:v}),u({eventName:"blur",ref:a,callback:b}),f({keys:m,ref:n,withoutAnyModifier:!0,preventDefault:!0,callback:t((function(){c&&(null==a?void 0:a.current)&&a.current.focus()}),[c,a])}),f({keys:m,modifier:f.modifiers.SHIFT,ref:n,callback:b}),f({keys:m,ref:a,withoutAnyModifier:!0,callback:t((function(){(null==l?void 0:l.current)&&l.current.focus(),c&&p(!1)}),[l,c,p])}),f({keys:m,ref:a,modifier:f.modifiers.SHIFT,callback:t((function(){(null==s?void 0:s.current)&&s.current.focus(),c&&p(!1)}),[s,c,p])}),f({keys:d,ref:a,callback:t((function(){(null==n?void 0:n.current)&&n.current.focus(),c&&p(!1)}),[n,c,p])}),f({keys:d,ref:n,callback:b}),u({eventName:"focus",ref:l,callback:b})}var v=function(t,r,i,a,u){var f=t.value,m=Object.assign(Object.assign({},i),{width:u?void 0:"100%"}),d="tooltip-item-".concat(r,"-label");return e.createElement(s,{key:r,isClickable:!!(null==f?void 0:f.onClick),clickableProps:{onClick:function(e){return f.onClick(e,f.id)},tabIndex:-1}},e.createElement("div",{style:m},e.createElement(l,{direction:"row",gap:"xs","aria-labelledby":d},e.createElement(c,Object.assign({},f,{tooltipProps:void 0,"aria-label":"",customSize:n,type:a||(null==f?void 0:f.type),tabIndex:-1,size:"small",className:o.tooltipAvatarItemAvatar})),!u&&e.createElement("div",{id:d,className:o.tooltipAvatarItemTitle},f.tooltipContent))))};export{v as avatarRenderer,p as useTooltipContentTabNavigation};
2
- //# sourceMappingURL=AvatarGroupCounterTooltipHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupCounterTooltipHelper.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.tsx"],"sourcesContent":["import React, { type CSSProperties, type RefObject, useCallback } from \"react\";\nimport useKeyEvent from \"../../hooks/useKeyEvent\";\nimport { Flex } from \"@vibe/layout\";\nimport { Avatar, type AvatarProps, type AvatarType } from \"@vibe/avatar\";\nimport { ClickableWrapper } from \"@vibe/clickable\";\nimport avatarGroupCounterTooltipContentStyles from \"./AvatarGroupCounterTooltipContent.module.scss\";\nimport useEventListener from \"../../hooks/useEventListener\";\nimport useListenFocusTriggers from \"../../hooks/useListenFocusTriggers\";\nimport { type ElementContent } from \"../../types\";\nimport { AVATAR_GROUP_COUNTER_AVATAR_SIZE, AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY } from \"./AvatarGroupConstants\";\nimport { keyCodes } from \"../../constants\";\n\nconst TAB = [keyCodes.TAB];\nconst ESC = [keyCodes.ESCAPE];\n\nexport function useTooltipContentTabNavigation({\n counterContainerRef = undefined,\n tooltipContentContainerRef,\n focusPrevPlaceholderRef,\n focusNextPlaceholderRef,\n isKeyboardTooltipVisible,\n setIsKeyboardTooltipVisible\n}: {\n counterContainerRef: RefObject<HTMLDivElement>;\n tooltipContentContainerRef: RefObject<HTMLElement>;\n focusPrevPlaceholderRef: RefObject<HTMLDivElement>;\n focusNextPlaceholderRef: RefObject<HTMLDivElement>;\n isKeyboardTooltipVisible: boolean;\n setIsKeyboardTooltipVisible: (value: boolean) => void;\n}) {\n const showKeyboardTooltip = useCallback(() => {\n if (!isKeyboardTooltipVisible) {\n // temp hack for display tooltip with delay after timeout because refactoring the tooltip with open mechanism is out of scope\n setTimeout(() => setIsKeyboardTooltipVisible(true), AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY);\n }\n }, [isKeyboardTooltipVisible, setIsKeyboardTooltipVisible]);\n\n const hideKeyboardTooltip = useCallback(() => {\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [isKeyboardTooltipVisible, setIsKeyboardTooltipVisible]);\n\n // Open tooltip manually when keyboard focusing on counter\n useListenFocusTriggers({\n ref: counterContainerRef,\n onFocusByKeyboard: showKeyboardTooltip\n });\n\n useEventListener({\n eventName: \"blur\",\n ref: tooltipContentContainerRef,\n callback: hideKeyboardTooltip\n });\n\n //Move focus to content by keyboard\n useKeyEvent({\n keys: TAB,\n ref: counterContainerRef,\n withoutAnyModifier: true,\n preventDefault: true,\n callback: useCallback(() => {\n if (isKeyboardTooltipVisible) tooltipContentContainerRef?.current && tooltipContentContainerRef.current.focus();\n }, [isKeyboardTooltipVisible, tooltipContentContainerRef])\n });\n\n // Close tooltip by keyboard\n useKeyEvent({\n keys: TAB,\n modifier: useKeyEvent.modifiers.SHIFT,\n ref: counterContainerRef,\n callback: hideKeyboardTooltip\n });\n useKeyEvent({\n keys: TAB,\n ref: tooltipContentContainerRef,\n withoutAnyModifier: true,\n callback: useCallback(() => {\n // We are not preventing default behaviour here and that's why after pressing tab and after moving focus to here\n // the browser will move the focus to the next element in the focus order.\n focusNextPlaceholderRef?.current && focusNextPlaceholderRef.current.focus();\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [focusNextPlaceholderRef, isKeyboardTooltipVisible, setIsKeyboardTooltipVisible])\n });\n useKeyEvent({\n keys: TAB,\n ref: tooltipContentContainerRef,\n modifier: useKeyEvent.modifiers.SHIFT,\n callback: useCallback(() => {\n // We are not preventing default behaviour here and that's why after pressing tab and after moving focus to here\n // the browser will move the focus to the next element in the focus order.\n focusPrevPlaceholderRef?.current && focusPrevPlaceholderRef.current.focus();\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [focusPrevPlaceholderRef, isKeyboardTooltipVisible, setIsKeyboardTooltipVisible])\n });\n useKeyEvent({\n keys: ESC,\n ref: tooltipContentContainerRef,\n callback: useCallback(() => {\n counterContainerRef?.current && counterContainerRef.current.focus();\n if (isKeyboardTooltipVisible) setIsKeyboardTooltipVisible(false);\n }, [counterContainerRef, isKeyboardTooltipVisible, setIsKeyboardTooltipVisible])\n });\n useKeyEvent({\n keys: ESC,\n ref: counterContainerRef,\n callback: hideKeyboardTooltip\n });\n\n // Close tooltip when moving focus to next element\n useEventListener({\n eventName: \"focus\",\n ref: focusNextPlaceholderRef,\n callback: hideKeyboardTooltip\n });\n}\n\nexport const avatarRenderer = (\n item: { value: AvatarProps & { tooltipContent: ElementContent } },\n index: number,\n style: CSSProperties,\n type: AvatarType,\n displayAsGrid: boolean\n) => {\n const avatarProps = item.value;\n const overrideStyle: CSSProperties = { ...style, width: displayAsGrid ? undefined : \"100%\" };\n const labelId = `tooltip-item-${index}-label`;\n\n return (\n <ClickableWrapper\n key={index}\n isClickable={!!avatarProps?.onClick}\n clickableProps={{ onClick: event => avatarProps.onClick(event, avatarProps.id), tabIndex: -1 }}\n >\n <div style={overrideStyle}>\n <Flex direction=\"row\" gap=\"xs\" aria-labelledby={labelId}>\n <Avatar\n {...avatarProps}\n tooltipProps={undefined}\n aria-label={\"\"}\n customSize={AVATAR_GROUP_COUNTER_AVATAR_SIZE}\n type={type || avatarProps?.type}\n tabIndex={-1}\n size=\"small\"\n className={avatarGroupCounterTooltipContentStyles.tooltipAvatarItemAvatar}\n />\n {!displayAsGrid && (\n <div id={labelId} className={avatarGroupCounterTooltipContentStyles.tooltipAvatarItemTitle}>\n {avatarProps.tooltipContent}\n </div>\n )}\n </Flex>\n </div>\n </ClickableWrapper>\n );\n};\n"],"names":["TAB","keyCodes","ESC","ESCAPE","useTooltipContentTabNavigation","_ref","_ref$counterContainer","counterContainerRef","undefined","tooltipContentContainerRef","focusPrevPlaceholderRef","focusNextPlaceholderRef","isKeyboardTooltipVisible","setIsKeyboardTooltipVisible","showKeyboardTooltip","useCallback","setTimeout","AVATAR_GROUP_COUNTER_TOOLTIP_SHOW_DELAY","hideKeyboardTooltip","useListenFocusTriggers","ref","onFocusByKeyboard","useEventListener","eventName","callback","useKeyEvent","keys","withoutAnyModifier","preventDefault","current","focus","modifier","modifiers","SHIFT","avatarRenderer","item","index","style","type","displayAsGrid","avatarProps","value","overrideStyle","Object","assign","width","labelId","concat","React","ClickableWrapper","key","isClickable","onClick","clickableProps","event","id","tabIndex","createElement","Flex","direction","gap","Avatar","tooltipProps","customSize","AVATAR_GROUP_COUNTER_AVATAR_SIZE","size","className","avatarGroupCounterTooltipContentStyles","tooltipAvatarItemAvatar","tooltipAvatarItemTitle","tooltipContent"],"mappings":"2tBAYA,IAAMA,EAAM,CAACC,EAASD,KAChBE,EAAM,CAACD,EAASE,iBAENC,EAA8BC,GAc7C,IAAAC,EAAAD,EAbCE,oBAAAA,OAAsBC,IAAHF,OAAGE,EAASF,EAC/BG,EAA0BJ,EAA1BI,2BACAC,EAAuBL,EAAvBK,wBACAC,EAAuBN,EAAvBM,wBACAC,EAAwBP,EAAxBO,yBACAC,EAA2BR,EAA3BQ,4BASMC,EAAsBC,GAAY,WACjCH,GAEHI,YAAW,WAAA,OAAMH,GAA4B,EAAK,GAAEI,EAExD,GAAG,CAACL,EAA0BC,IAExBK,EAAsBH,GAAY,WAClCH,GAA0BC,GAA4B,EAC5D,GAAG,CAACD,EAA0BC,IAG9BM,EAAuB,CACrBC,IAAKb,EACLc,kBAAmBP,IAGrBQ,EAAiB,CACfC,UAAW,OACXH,IAAKX,EACLe,SAAUN,IAIZO,EAAY,CACVC,KAAM1B,EACNoB,IAAKb,EACLoB,oBAAoB,EACpBC,gBAAgB,EAChBJ,SAAUT,GAAY,WAChBH,IAA0BH,aAA0B,EAA1BA,EAA4BoB,UAAWpB,EAA2BoB,QAAQC,OAC1G,GAAG,CAAClB,EAA0BH,MAIhCgB,EAAY,CACVC,KAAM1B,EACN+B,SAAUN,EAAYO,UAAUC,MAChCb,IAAKb,EACLiB,SAAUN,IAEZO,EAAY,CACVC,KAAM1B,EACNoB,IAAKX,EACLkB,oBAAoB,EACpBH,SAAUT,GAAY,YAGpBJ,aAAuB,EAAvBA,EAAyBkB,UAAWlB,EAAwBkB,QAAQC,QAChElB,GAA0BC,GAA4B,EAC3D,GAAE,CAACF,EAAyBC,EAA0BC,MAEzDY,EAAY,CACVC,KAAM1B,EACNoB,IAAKX,EACLsB,SAAUN,EAAYO,UAAUC,MAChCT,SAAUT,GAAY,YAGpBL,aAAuB,EAAvBA,EAAyBmB,UAAWnB,EAAwBmB,QAAQC,QAChElB,GAA0BC,GAA4B,EAC3D,GAAE,CAACH,EAAyBE,EAA0BC,MAEzDY,EAAY,CACVC,KAAMxB,EACNkB,IAAKX,EACLe,SAAUT,GAAY,YACpBR,aAAmB,EAAnBA,EAAqBsB,UAAWtB,EAAoBsB,QAAQC,QACxDlB,GAA0BC,GAA4B,EAC3D,GAAE,CAACN,EAAqBK,EAA0BC,MAErDY,EAAY,CACVC,KAAMxB,EACNkB,IAAKb,EACLiB,SAAUN,IAIZI,EAAiB,CACfC,UAAW,QACXH,IAAKT,EACLa,SAAUN,GAEd,CAEagB,IAAAA,EAAiB,SAC5BC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAMC,EAAcL,EAAKM,MACnBC,EAAoCC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAP,GAAO,CAAAQ,MAAON,OAAgB/B,EAAY,SAC9EsC,EAAO,gBAAAC,OAAmBX,EAAa,UAE7C,OACEY,gBAACC,EAAgB,CACfC,IAAKd,EACLe,eAAeX,eAAAA,EAAaY,SAC5BC,eAAgB,CAAED,QAAS,SAAAE,GAAK,OAAId,EAAYY,QAAQE,EAAOd,EAAYe,GAAG,EAAEC,UAAW,IAE3FR,EAAKS,cAAA,MAAA,CAAApB,MAAOK,GACVM,EAACS,cAAAC,EAAK,CAAAC,UAAU,MAAMC,IAAI,KAAI,kBAAkBd,GAC9CE,EAAAS,cAACI,EACKlB,OAAAC,OAAA,CAAA,EAAAJ,GACJsB,kBAActD,EACF,aAAA,GACZuD,WAAYC,EACZ1B,KAAMA,IAAQE,aAAW,EAAXA,EAAaF,MAC3BkB,UAAW,EACXS,KAAK,QACLC,UAAWC,EAAuCC,4BAElD7B,GACAS,EAAAS,cAAA,MAAA,CAAKF,GAAIT,EAASoB,UAAWC,EAAuCE,wBACjE7B,EAAY8B,kBAO3B"}
@@ -1,2 +0,0 @@
1
- var l=function(l,i){var n;null===(n=null==i?void 0:i.onClick)||void 0===n||n.call(i,l,i.id)};export{l as avatarOnClick};
2
- //# sourceMappingURL=AvatarGroupHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarGroupHelper.js","sources":["../../../../src/components/AvatarGroup/AvatarGroupHelper.ts"],"sourcesContent":["import type React from \"react\";\nimport { type AvatarProps } from \"@vibe/avatar\";\n\nexport const avatarOnClick = (event: React.MouseEvent | React.KeyboardEvent, avatarProps: AvatarProps) => {\n avatarProps?.onClick?.(event, avatarProps.id);\n};\n"],"names":["avatarOnClick","event","avatarProps","_a","onClick","call","id"],"mappings":"AAGO,IAAMA,EAAgB,SAACC,EAA+CC,SACpD,QAAvBC,EAAAD,aAAW,EAAXA,EAAaE,eAAU,IAAAD,GAAAA,EAAAE,KAAAH,EAAAD,EAAOC,EAAYI,GAC5C"}
@@ -1,2 +0,0 @@
1
- import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import a,{forwardRef as r,useRef as t,useCallback as s}from"react";import{getTestId as n,ComponentDefaultTestId as i}from"../../tests/testIds.js";import l from"./Search.module.scss.js";import{ComponentVibeId as c}from"../../tests/constants.js";import d from"../../../hooks/dist/useDebounceEvent/index.js";import m from"../../../components/icon-button/dist/IconButton/IconButton.js";import p from"../../../components/loader/dist/Loader/Loader.js";import u from"../../../base/dist/BaseInput/BaseInput.js";import f from"../../../icons/dist/react/CloseSmall.js";import h from"../../../components/icon/dist/Icon/Icon.js";import v from"../../../icons/dist/react/Search.js";import{useMergeRef as C}from"../../../shared/dist/hooks/useMergeRef.js";var b=r((function(r,b){var I,j,E,R,N,g,x,y,A,B,S=r.searchIconName,L=void 0===S?v:S,w=r.clearIconName,z=void 0===w?f:w,F=r.clearIconLabel,H=void 0===F?"Clear":F,_=r.renderAction,k=r.hideRenderActionOnInput,D=r.value,V=r.placeholder,K=r.size,O=void 0===K?"medium":K,P=r.disabled,T=r.loading,M=r.autoFocus,U=r.autoComplete,W=void 0===U?"off":U,q=r.inputAriaLabel,G=r.debounceRate,J=void 0===G?400:G,Q=r.searchResultsContainerId,X=r.currentAriaResultId,Y=r.onChange,Z=r.onFocus,$=r.onBlur,ee=r.onClear,oe=r.onKeyDown,ae=r.className,re=r["aria-expanded"],te=r["aria-haspopup"],se=r.showClearIcon,ne=void 0===se||se,ie=r.id,le=r["data-testid"];return I=t(null),j=C(b,I),E=d({delay:J,onChange:Y,initialStateValue:D}),R=E.inputValue,N=E.onEventChanged,x=s((function(){var e,o;P||(null===(o=null===(e=I.current)||void 0===e?void 0:e.focus)||void 0===o||o.call(e),g(),null==ee||ee())}),[P,g=E.clearValue,ee]),y=a.createElement(h,{icon:L,className:l.icon,type:"font",size:"small"===O?"16px":"20px"}),A=a.createElement(m,{className:o(l.icon,e({},l.empty,!R)),icon:z,"aria-label":H,onClick:x,size:"small"===O?"xs":"small","data-testid":n(i.CLEAN_SEARCH_BUTTON,ie)}),B=a.createElement(a.Fragment,null,T&&a.createElement(p,{size:"small"===O?"xs":20,color:"secondary",wrapperClassName:o(e({},l.loader,!R&&!_))}),ne&&R&&!P&&A,!(k&&R)&&_),a.createElement(u,{ref:j,id:ie,type:"search","data-testid":le||n(i.SEARCH,ie),"data-vibe":c.SEARCH,className:o(l.searchWrapper,ae),inputClassName:l.search,value:R,renderLeft:y,renderRight:B,autoFocus:M,placeholder:V,disabled:P,onChange:N,onBlur:$,onFocus:Z,onKeyDown:oe,autoComplete:W,size:O,wrapperRole:"search",inputRole:Q?"combobox":void 0,"aria-label":q,"aria-busy":T,"aria-controls":re?Q:void 0,"aria-activedescendant":X,"aria-haspopup":te,"aria-expanded":re})}));export{b as default};
2
- //# sourceMappingURL=Search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Search.js","sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useCallback, useRef } from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { CloseSmall as CloseSmallIcon, Search as SearchIcon } from \"@vibe/icons\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport styles from \"./Search.module.scss\";\nimport { BaseInput } from \"@vibe/base\";\nimport { useDebounceEvent } from \"@vibe/hooks\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Icon } from \"@vibe/icon\";\nimport { type SearchProps } from \"./Search.types\";\nimport { Loader } from \"@vibe/loader\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nconst Search = forwardRef(\n (\n {\n searchIconName = SearchIcon,\n clearIconName = CloseSmallIcon,\n clearIconLabel = \"Clear\",\n renderAction: RenderAction,\n hideRenderActionOnInput,\n value,\n placeholder,\n size = \"medium\",\n disabled,\n loading,\n autoFocus,\n autoComplete = \"off\",\n inputAriaLabel,\n debounceRate = 400,\n searchResultsContainerId,\n currentAriaResultId,\n onChange,\n onFocus,\n onBlur,\n onClear,\n onKeyDown,\n className,\n \"aria-expanded\": ariaExpanded,\n \"aria-haspopup\": ariaHasPopup,\n showClearIcon = true,\n id,\n \"data-testid\": dataTestId\n }: SearchProps,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const inputRef = useRef(null);\n const mergedRef = useMergeRef(ref, inputRef);\n\n const { inputValue, onEventChanged, clearValue } = useDebounceEvent({\n delay: debounceRate,\n onChange,\n initialStateValue: value\n });\n\n const onClearButtonClick = useCallback(() => {\n if (disabled) return;\n inputRef.current?.focus?.();\n clearValue();\n onClear?.();\n }, [disabled, clearValue, onClear]);\n\n const SearchIcon = (\n <Icon icon={searchIconName} className={styles.icon} type=\"font\" size={size === \"small\" ? \"16px\" : \"20px\"} />\n );\n\n const ClearIcon = (\n <IconButton\n className={cx(styles.icon, { [styles.empty]: !inputValue })}\n icon={clearIconName}\n aria-label={clearIconLabel}\n onClick={onClearButtonClick}\n size={size === \"small\" ? \"xs\" : \"small\"}\n data-testid={getTestId(ComponentDefaultTestId.CLEAN_SEARCH_BUTTON, id)}\n />\n );\n\n const RenderRight = (\n <>\n {loading && (\n <Loader\n size={size === \"small\" ? \"xs\" : 20}\n color=\"secondary\"\n wrapperClassName={cx({ [styles.loader]: !inputValue && !RenderAction })}\n />\n )}\n {showClearIcon && inputValue && !disabled && ClearIcon}\n {!(hideRenderActionOnInput && inputValue) && RenderAction}\n </>\n );\n\n return (\n <BaseInput\n ref={mergedRef}\n id={id}\n type={\"search\"}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.SEARCH, id)}\n data-vibe={ComponentVibeId.SEARCH}\n className={cx(styles.searchWrapper, className)}\n inputClassName={styles.search}\n value={inputValue}\n renderLeft={SearchIcon}\n renderRight={RenderRight}\n autoFocus={autoFocus}\n placeholder={placeholder}\n disabled={disabled}\n onChange={onEventChanged}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n autoComplete={autoComplete}\n size={size}\n wrapperRole=\"search\"\n inputRole={searchResultsContainerId ? \"combobox\" : undefined}\n aria-label={inputAriaLabel}\n aria-busy={loading}\n aria-controls={ariaExpanded ? searchResultsContainerId : undefined}\n aria-activedescendant={currentAriaResultId}\n aria-haspopup={ariaHasPopup}\n aria-expanded={ariaExpanded}\n />\n );\n }\n);\n\nexport default Search;\n"],"names":["Search","forwardRef","_ref","ref","inputRef","mergedRef","_useDebounceEvent","inputValue","onEventChanged","clearValue","onClearButtonClick","SearchIcon","ClearIcon","RenderRight","_ref$searchIconName","searchIconName","_ref$clearIconName","clearIconName","CloseSmallIcon","_ref$clearIconLabel","clearIconLabel","RenderAction","renderAction","hideRenderActionOnInput","value","placeholder","_ref$size","size","disabled","loading","autoFocus","_ref$autoComplete","autoComplete","inputAriaLabel","_ref$debounceRate","debounceRate","searchResultsContainerId","currentAriaResultId","onChange","onFocus","onBlur","onClear","onKeyDown","className","ariaExpanded","ariaHasPopup","_ref$showClearIcon","showClearIcon","id","dataTestId","useRef","useMergeRef","useDebounceEvent","delay","initialStateValue","useCallback","_b","current","_a","focus","React","createElement","Icon","icon","styles","type","IconButton","cx","_defineProperty","empty","onClick","getTestId","ComponentDefaultTestId","CLEAN_SEARCH_BUTTON","Fragment","Loader","color","wrapperClassName","loader","BaseInput","SEARCH","ComponentVibeId","searchWrapper","inputClassName","search","renderLeft","renderRight","wrapperRole","inputRole","undefined"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var e={searchWrapper:"searchWrapper_e62c654d29",search:"search_b6c117960c",loader:"loader_1d1605e941",icon:"icon_f26d395efa",empty:"empty_9945af8ead"};!function(e){const a="s_id-7351621e5f98_4_5_24";if("undefined"!=typeof document){const c=document.head||document.getElementsByTagName("head")[0];if(c.querySelector("#"+a))return;const r=document.createElement("style");r.id=a,c.firstChild?c.insertBefore(r,c.firstChild):c.appendChild(r),r.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}(".searchWrapper_e62c654d29 .search_b6c117960c {\n appearance: textfield;\n}\n.searchWrapper_e62c654d29 .search_b6c117960c::-webkit-search-cancel-button, .searchWrapper_e62c654d29 .search_b6c117960c::-webkit-search-results-button {\n appearance: none;\n}\n.searchWrapper_e62c654d29 .loader_1d1605e941 {\n margin-inline-end: var(--space-4);\n}\n.searchWrapper_e62c654d29 .icon_f26d395efa {\n opacity: 1;\n color: var(--icon-color);\n transition: opacity var(--motion-productive-short);\n}\n.searchWrapper_e62c654d29 .icon_f26d395efa.empty_9945af8ead {\n opacity: 0;\n}");export{e as default};
2
- //# sourceMappingURL=Search.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Search.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}