@rocket.chat/fuselage 0.96.0 → 1.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/README.md +140 -83
  2. package/dist/Theme.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  4. package/dist/components/Accordion/AccordionItem.d.ts.map +1 -1
  5. package/dist/components/Accordion/index.d.ts +1 -1
  6. package/dist/components/Accordion/index.d.ts.map +1 -1
  7. package/dist/components/AnimatedVisibility/AnimatedVisibility.d.ts +7 -7
  8. package/dist/components/AnimatedVisibility/AnimatedVisibility.d.ts.map +1 -1
  9. package/dist/components/AnimatedVisibility/index.d.ts +1 -1
  10. package/dist/components/AnimatedVisibility/index.d.ts.map +1 -1
  11. package/dist/components/AudioPlayer/AudioPlayer.d.ts.map +1 -1
  12. package/dist/components/AudioPlayer/AudioPlayerControls.d.ts.map +1 -1
  13. package/dist/components/AudioPlayer/index.d.ts +1 -1
  14. package/dist/components/AudioPlayer/index.d.ts.map +1 -1
  15. package/dist/components/AutoComplete/AutoComplete.d.ts.map +1 -1
  16. package/dist/components/AutoComplete/index.d.ts +1 -1
  17. package/dist/components/AutoComplete/index.d.ts.map +1 -1
  18. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  19. package/dist/components/Avatar/AvatarContainer.d.ts.map +1 -1
  20. package/dist/components/Avatar/AvatarStack.d.ts.map +1 -1
  21. package/dist/components/Avatar/index.d.ts +1 -1
  22. package/dist/components/Avatar/index.d.ts.map +1 -1
  23. package/dist/components/Badge/Badge.d.ts.map +1 -1
  24. package/dist/components/Banner/Banner.d.ts.map +1 -1
  25. package/dist/components/Banner/index.d.ts +1 -1
  26. package/dist/components/Banner/index.d.ts.map +1 -1
  27. package/dist/components/Box/Box.d.ts +1 -1
  28. package/dist/components/Box/Box.d.ts.map +1 -1
  29. package/dist/components/Box/BoxTransforms.d.ts.map +1 -1
  30. package/dist/components/Box/StylingBox.d.ts +1 -1
  31. package/dist/components/Box/StylingBox.d.ts.map +1 -1
  32. package/dist/components/Box/stylingProps.d.ts.map +1 -1
  33. package/dist/components/Box/useStylingProps.d.ts.map +1 -1
  34. package/dist/components/Box/withBoxStyling.d.ts.map +1 -1
  35. package/dist/components/Bubble/Bubble.d.ts.map +1 -1
  36. package/dist/components/Bubble/BubbleButton.d.ts.map +1 -1
  37. package/dist/components/Bubble/BubbleItem.d.ts.map +1 -1
  38. package/dist/components/Button/Button.d.ts +9 -5
  39. package/dist/components/Button/Button.d.ts.map +1 -1
  40. package/dist/components/Button/IconButton.d.ts +25 -4
  41. package/dist/components/Button/IconButton.d.ts.map +1 -1
  42. package/dist/components/Button/index.d.ts +1 -1
  43. package/dist/components/Button/index.d.ts.map +1 -1
  44. package/dist/components/ButtonGroup/ButtonGroup.d.ts +2 -1
  45. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  46. package/dist/components/Callout/Callout.d.ts +2 -2
  47. package/dist/components/Callout/Callout.d.ts.map +1 -1
  48. package/dist/components/Card/Card.d.ts.map +1 -1
  49. package/dist/components/Card/CardBody.d.ts +3 -2
  50. package/dist/components/Card/CardBody.d.ts.map +1 -1
  51. package/dist/components/Card/CardCol.d.ts.map +1 -1
  52. package/dist/components/Card/CardControls.d.ts.map +1 -1
  53. package/dist/components/Card/CardHeader.d.ts.map +1 -1
  54. package/dist/components/Card/CardRow.d.ts.map +1 -1
  55. package/dist/components/Card/CardTitle.d.ts.map +1 -1
  56. package/dist/components/Card/index.d.ts +1 -1
  57. package/dist/components/Card/index.d.ts.map +1 -1
  58. package/dist/components/CardGrid/CardGrid.d.ts +3 -1
  59. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  60. package/dist/components/CardGrid/CardGridItem.d.ts +11 -0
  61. package/dist/components/CardGrid/CardGridItem.d.ts.map +1 -0
  62. package/dist/components/CardGrid/index.d.ts +1 -0
  63. package/dist/components/CardGrid/index.d.ts.map +1 -1
  64. package/dist/components/CardGroup/CardGroup.d.ts.map +1 -1
  65. package/dist/components/CheckBox/CheckBox.d.ts +4 -4
  66. package/dist/components/CheckBox/CheckBox.d.ts.map +1 -1
  67. package/dist/components/Chevron/Chevron.d.ts +2 -1
  68. package/dist/components/Chevron/Chevron.d.ts.map +1 -1
  69. package/dist/components/Chip/Chip.d.ts +9 -1
  70. package/dist/components/Chip/Chip.d.ts.map +1 -1
  71. package/dist/components/CodeSnippet/CodeSnippet.d.ts +2 -2
  72. package/dist/components/CodeSnippet/CodeSnippet.d.ts.map +1 -1
  73. package/dist/components/Contextualbar/Contextualbar.d.ts +8 -4
  74. package/dist/components/Contextualbar/Contextualbar.d.ts.map +1 -1
  75. package/dist/components/Contextualbar/ContextualbarAction.d.ts +2 -1
  76. package/dist/components/Contextualbar/ContextualbarAction.d.ts.map +1 -1
  77. package/dist/components/Contextualbar/ContextualbarActions.d.ts +2 -1
  78. package/dist/components/Contextualbar/ContextualbarActions.d.ts.map +1 -1
  79. package/dist/components/Contextualbar/ContextualbarButton.d.ts +2 -1
  80. package/dist/components/Contextualbar/ContextualbarButton.d.ts.map +1 -1
  81. package/dist/components/Contextualbar/ContextualbarContent.d.ts +8 -4
  82. package/dist/components/Contextualbar/ContextualbarContent.d.ts.map +1 -1
  83. package/dist/components/Contextualbar/ContextualbarEmptyContent.d.ts.map +1 -1
  84. package/dist/components/Contextualbar/ContextualbarFooter.d.ts +2 -3
  85. package/dist/components/Contextualbar/ContextualbarFooter.d.ts.map +1 -1
  86. package/dist/components/Contextualbar/ContextualbarHeader.d.ts +4 -3
  87. package/dist/components/Contextualbar/ContextualbarHeader.d.ts.map +1 -1
  88. package/dist/components/Contextualbar/ContextualbarIcon.d.ts +2 -1
  89. package/dist/components/Contextualbar/ContextualbarIcon.d.ts.map +1 -1
  90. package/dist/components/Contextualbar/ContextualbarSection.d.ts +2 -3
  91. package/dist/components/Contextualbar/ContextualbarSection.d.ts.map +1 -1
  92. package/dist/components/Contextualbar/ContextualbarSkeleton.d.ts +4 -3
  93. package/dist/components/Contextualbar/ContextualbarSkeleton.d.ts.map +1 -1
  94. package/dist/components/Contextualbar/ContextualbarTitle.d.ts +4 -3
  95. package/dist/components/Contextualbar/ContextualbarTitle.d.ts.map +1 -1
  96. package/dist/components/Contextualbar/index.d.ts +12 -12
  97. package/dist/components/Contextualbar/index.d.ts.map +1 -1
  98. package/dist/components/Divider/Divider.d.ts +10 -4
  99. package/dist/components/Divider/Divider.d.ts.map +1 -1
  100. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  101. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -1
  102. package/dist/components/Dropdown/DropdownDesktop.d.ts +2 -3
  103. package/dist/components/Dropdown/DropdownDesktop.d.ts.map +1 -1
  104. package/dist/components/Dropdown/DropdownDesktopWrapper.d.ts.map +1 -1
  105. package/dist/components/Dropdown/DropdownMobile.d.ts.map +1 -1
  106. package/dist/components/EmailInput/EmailInput.d.ts.map +1 -1
  107. package/dist/components/Field/Field.d.ts +2 -2
  108. package/dist/components/Field/Field.d.ts.map +1 -1
  109. package/dist/components/Field/FieldDescription.d.ts +2 -2
  110. package/dist/components/Field/FieldDescription.d.ts.map +1 -1
  111. package/dist/components/Field/FieldError.d.ts +2 -2
  112. package/dist/components/Field/FieldError.d.ts.map +1 -1
  113. package/dist/components/Field/FieldHint.d.ts +2 -2
  114. package/dist/components/Field/FieldHint.d.ts.map +1 -1
  115. package/dist/components/Field/FieldLabel.d.ts +1 -1
  116. package/dist/components/Field/FieldLabel.d.ts.map +1 -1
  117. package/dist/components/Field/FieldLabelInfo.d.ts.map +1 -1
  118. package/dist/components/Field/FieldLink.d.ts +3 -2
  119. package/dist/components/Field/FieldLink.d.ts.map +1 -1
  120. package/dist/components/Field/FieldRow.d.ts +6 -3
  121. package/dist/components/Field/FieldRow.d.ts.map +1 -1
  122. package/dist/components/Field/index.d.ts +2 -2
  123. package/dist/components/Field/index.d.ts.map +1 -1
  124. package/dist/components/FieldGroup/FieldGroup.d.ts +3 -2
  125. package/dist/components/FieldGroup/FieldGroup.d.ts.map +1 -1
  126. package/dist/components/Flex/FlexContainer.d.ts +1 -1
  127. package/dist/components/Flex/FlexContainer.d.ts.map +1 -1
  128. package/dist/components/Flex/FlexItem.d.ts +1 -1
  129. package/dist/components/Flex/FlexItem.d.ts.map +1 -1
  130. package/dist/components/Flex/index.d.ts +1 -1
  131. package/dist/components/Flex/index.d.ts.map +1 -1
  132. package/dist/components/FramedIcon/FramedIcon.d.ts +2 -2
  133. package/dist/components/FramedIcon/FramedIcon.d.ts.map +1 -1
  134. package/dist/components/Grid/Grid.d.ts +7 -6
  135. package/dist/components/Grid/Grid.d.ts.map +1 -1
  136. package/dist/components/Grid/GridItem.d.ts +2 -2
  137. package/dist/components/Grid/GridItem.d.ts.map +1 -1
  138. package/dist/components/Icon/Icon.d.ts +8 -2
  139. package/dist/components/Icon/Icon.d.ts.map +1 -1
  140. package/dist/components/Icon/index.d.ts +1 -1
  141. package/dist/components/Icon/index.d.ts.map +1 -1
  142. package/dist/components/InputBox/Input.d.ts +7 -3
  143. package/dist/components/InputBox/Input.d.ts.map +1 -1
  144. package/dist/components/InputBox/InputBox.d.ts +7 -4
  145. package/dist/components/InputBox/InputBox.d.ts.map +1 -1
  146. package/dist/components/InputBox/InputBoxAddon.d.ts +2 -3
  147. package/dist/components/InputBox/InputBoxAddon.d.ts.map +1 -1
  148. package/dist/components/InputBox/InputBoxSkeleton.d.ts +2 -2
  149. package/dist/components/InputBox/InputBoxSkeleton.d.ts.map +1 -1
  150. package/dist/components/InputBox/InputBoxWrapper.d.ts +5 -2
  151. package/dist/components/InputBox/InputBoxWrapper.d.ts.map +1 -1
  152. package/dist/components/InputBox/index.d.ts +1 -1
  153. package/dist/components/InputBox/index.d.ts.map +1 -1
  154. package/dist/components/Item/Item.d.ts +6 -1
  155. package/dist/components/Item/Item.d.ts.map +1 -1
  156. package/dist/components/Item/ItemActions.d.ts.map +1 -1
  157. package/dist/components/Item/ItemContent.d.ts.map +1 -1
  158. package/dist/components/Item/ItemContext.d.ts +1 -0
  159. package/dist/components/Item/ItemContext.d.ts.map +1 -1
  160. package/dist/components/Item/ItemDescription.d.ts.map +1 -1
  161. package/dist/components/Item/ItemDivider.d.ts.map +1 -1
  162. package/dist/components/Item/ItemGroup.d.ts.map +1 -1
  163. package/dist/components/Item/ItemGroupContext.d.ts.map +1 -1
  164. package/dist/components/Item/ItemGroupHeader.d.ts.map +1 -1
  165. package/dist/components/Item/ItemGroupTitle.d.ts.map +1 -1
  166. package/dist/components/Item/ItemIcon.d.ts +1 -1
  167. package/dist/components/Item/ItemIcon.d.ts.map +1 -1
  168. package/dist/components/Item/ItemLink.d.ts.map +1 -1
  169. package/dist/components/Item/ItemMedia.d.ts.map +1 -1
  170. package/dist/components/Item/ItemMeta.d.ts +6 -2
  171. package/dist/components/Item/ItemMeta.d.ts.map +1 -1
  172. package/dist/components/Item/ItemRow.d.ts.map +1 -1
  173. package/dist/components/Item/ItemSkeleton.d.ts +1 -1
  174. package/dist/components/Item/ItemSkeleton.d.ts.map +1 -1
  175. package/dist/components/Item/ItemTitle.d.ts +1 -1
  176. package/dist/components/Item/ItemTitle.d.ts.map +1 -1
  177. package/dist/components/Item/index.d.ts +4 -4
  178. package/dist/components/Item/index.d.ts.map +1 -1
  179. package/dist/components/Item/useIdRegistry.d.ts.map +1 -1
  180. package/dist/components/Label/Label.d.ts +5 -3
  181. package/dist/components/Label/Label.d.ts.map +1 -1
  182. package/dist/components/Label/LabelInfo.d.ts.map +1 -1
  183. package/dist/components/Listbox/Listbox.d.ts +12 -0
  184. package/dist/components/Listbox/Listbox.d.ts.map +1 -0
  185. package/dist/components/Listbox/ListboxOption.d.ts +23 -0
  186. package/dist/components/Listbox/ListboxOption.d.ts.map +1 -0
  187. package/dist/components/Listbox/index.d.ts +3 -0
  188. package/dist/components/Listbox/index.d.ts.map +1 -0
  189. package/dist/components/Margins/Margins.d.ts.map +1 -1
  190. package/dist/components/Menu/Menu.d.ts +8 -2
  191. package/dist/components/Menu/Menu.d.ts.map +1 -1
  192. package/dist/components/Menu/MenuDropdown.d.ts.map +1 -1
  193. package/dist/components/Menu/MenuItem.d.ts +3 -0
  194. package/dist/components/Menu/MenuItem.d.ts.map +1 -1
  195. package/dist/components/Menu/MenuOption.d.ts +3 -4
  196. package/dist/components/Menu/MenuOption.d.ts.map +1 -1
  197. package/dist/components/Menu/MenuPopover.d.ts.map +1 -1
  198. package/dist/components/Menu/MenuPortalContext.d.ts.map +1 -1
  199. package/dist/components/Menu/MenuSection.d.ts +1 -1
  200. package/dist/components/Menu/MenuSection.d.ts.map +1 -1
  201. package/dist/components/Menu/MenuSubmenu.d.ts +1 -1
  202. package/dist/components/Menu/MenuSubmenu.d.ts.map +1 -1
  203. package/dist/components/Menu/helpers/helpers.d.ts +1 -1
  204. package/dist/components/Menu/helpers/helpers.d.ts.map +1 -1
  205. package/dist/components/Menu/index.d.ts +2 -2
  206. package/dist/components/Menu/index.d.ts.map +1 -1
  207. package/dist/components/Menu/stately/MenuItem.d.ts.map +1 -1
  208. package/dist/components/Menu/stately/MenuSection.d.ts.map +1 -1
  209. package/dist/components/Menu/stately/MenuSubmenuTrigger.d.ts.map +1 -1
  210. package/dist/components/Menu/stately/PartialNode.d.ts.map +1 -1
  211. package/dist/components/Message/Message.d.ts.map +1 -1
  212. package/dist/components/Message/MessageBlock.d.ts +2 -3
  213. package/dist/components/Message/MessageBlock.d.ts.map +1 -1
  214. package/dist/components/Message/MessageBody.d.ts.map +1 -1
  215. package/dist/components/Message/MessageContainer.d.ts.map +1 -1
  216. package/dist/components/Message/MessageContainerFixed.d.ts.map +1 -1
  217. package/dist/components/Message/MessageDivider/MessageDivider.d.ts.map +1 -1
  218. package/dist/components/Message/MessageDivider/index.d.ts +1 -1
  219. package/dist/components/Message/MessageDivider/index.d.ts.map +1 -1
  220. package/dist/components/Message/MessageEmoji.d.ts.map +1 -1
  221. package/dist/components/Message/MessageEmojiBase.d.ts.map +1 -1
  222. package/dist/components/Message/MessageGenericPreview/MessageGenericPreview.d.ts.map +1 -1
  223. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewContent.d.ts.map +1 -1
  224. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewCoverImage.d.ts.map +1 -1
  225. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewDescription.d.ts +1 -1
  226. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewDescription.d.ts.map +1 -1
  227. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewFooter.d.ts +1 -1
  228. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewFooter.d.ts.map +1 -1
  229. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewIcon.d.ts +2 -2
  230. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewIcon.d.ts.map +1 -1
  231. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewImage.d.ts.map +1 -1
  232. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewThumb.d.ts.map +1 -1
  233. package/dist/components/Message/MessageGenericPreview/MessageGenericPreviewTitle.d.ts.map +1 -1
  234. package/dist/components/Message/MessageGenericPreview/index.d.ts +8 -8
  235. package/dist/components/Message/MessageGenericPreview/index.d.ts.map +1 -1
  236. package/dist/components/Message/MessageHeader.d.ts.map +1 -1
  237. package/dist/components/Message/MessageHighlight.d.ts.map +1 -1
  238. package/dist/components/Message/MessageLeftContainer.d.ts.map +1 -1
  239. package/dist/components/Message/MessageMetrics/MessageMetrics.d.ts.map +1 -1
  240. package/dist/components/Message/MessageMetrics/MessageMetricsContentItem.d.ts.map +1 -1
  241. package/dist/components/Message/MessageMetrics/MessageMetricsFollowing.d.ts +1 -1
  242. package/dist/components/Message/MessageMetrics/MessageMetricsFollowing.d.ts.map +1 -1
  243. package/dist/components/Message/MessageMetrics/MessageMetricsItem/MessageMetricsItem.d.ts.map +1 -1
  244. package/dist/components/Message/MessageMetrics/MessageMetricsItem/MessageMetricsItemAvatarRow.d.ts.map +1 -1
  245. package/dist/components/Message/MessageMetrics/MessageMetricsItem/MessageMetricsItemAvatarRowContent.d.ts.map +1 -1
  246. package/dist/components/Message/MessageMetrics/MessageMetricsItem/MessageMetricsItemIcon.d.ts.map +1 -1
  247. package/dist/components/Message/MessageMetrics/MessageMetricsItem/MessageMetricsItemLabel.d.ts.map +1 -1
  248. package/dist/components/Message/MessageMetrics/MessageMetricsItem/index.d.ts +3 -3
  249. package/dist/components/Message/MessageMetrics/MessageMetricsItem/index.d.ts.map +1 -1
  250. package/dist/components/Message/MessageMetrics/MessageMetricsReply.d.ts.map +1 -1
  251. package/dist/components/Message/MessageMetrics/index.d.ts +3 -3
  252. package/dist/components/Message/MessageMetrics/index.d.ts.map +1 -1
  253. package/dist/components/Message/MessageName.d.ts.map +1 -1
  254. package/dist/components/Message/MessageNameContainer.d.ts.map +1 -1
  255. package/dist/components/Message/MessageReactions/MessageReaction.d.ts.map +1 -1
  256. package/dist/components/Message/MessageReactions/MessageReactionAction.d.ts.map +1 -1
  257. package/dist/components/Message/MessageReactions/MessageReactionCounter.d.ts +1 -1
  258. package/dist/components/Message/MessageReactions/MessageReactionCounter.d.ts.map +1 -1
  259. package/dist/components/Message/MessageReactions/MessageReactionEmoji.d.ts.map +1 -1
  260. package/dist/components/Message/MessageReactions/MessageReactions.d.ts.map +1 -1
  261. package/dist/components/Message/MessageReactions/index.d.ts +4 -4
  262. package/dist/components/Message/MessageReactions/index.d.ts.map +1 -1
  263. package/dist/components/Message/MessageRole.d.ts.map +1 -1
  264. package/dist/components/Message/MessageRoles.d.ts.map +1 -1
  265. package/dist/components/Message/MessageStatusIndicator/MessageStatusIndicator.d.ts.map +1 -1
  266. package/dist/components/Message/MessageStatusIndicator/MessageStatusIndicatorItem.d.ts +2 -1
  267. package/dist/components/Message/MessageStatusIndicator/MessageStatusIndicatorItem.d.ts.map +1 -1
  268. package/dist/components/Message/MessageStatusIndicator/MessageStatusIndicatorText.d.ts +1 -1
  269. package/dist/components/Message/MessageStatusIndicator/MessageStatusIndicatorText.d.ts.map +1 -1
  270. package/dist/components/Message/MessageStatusIndicator/MessageStatusPrivateIndicator.d.ts +1 -1
  271. package/dist/components/Message/MessageStatusIndicator/MessageStatusPrivateIndicator.d.ts.map +1 -1
  272. package/dist/components/Message/MessageStatusIndicator/index.d.ts +4 -4
  273. package/dist/components/Message/MessageStatusIndicator/index.d.ts.map +1 -1
  274. package/dist/components/Message/MessageSystem/MessageSystem.d.ts.map +1 -1
  275. package/dist/components/Message/MessageSystem/MessageSystemBlock.d.ts.map +1 -1
  276. package/dist/components/Message/MessageSystem/MessageSystemBody.d.ts.map +1 -1
  277. package/dist/components/Message/MessageSystem/MessageSystemContainer.d.ts.map +1 -1
  278. package/dist/components/Message/MessageSystem/MessageSystemName.d.ts.map +1 -1
  279. package/dist/components/Message/MessageSystem/MessageSystemTimestamp.d.ts.map +1 -1
  280. package/dist/components/Message/MessageSystem/index.d.ts +6 -6
  281. package/dist/components/Message/MessageSystem/index.d.ts.map +1 -1
  282. package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
  283. package/dist/components/Message/MessageToolbar/MessageToolbar.d.ts.map +1 -1
  284. package/dist/components/Message/MessageToolbar/MessageToolbarItem.d.ts.map +1 -1
  285. package/dist/components/Message/MessageToolbar/MessageToolbarWrapper.d.ts.map +1 -1
  286. package/dist/components/Message/MessageToolbar/index.d.ts +3 -3
  287. package/dist/components/Message/MessageToolbar/index.d.ts.map +1 -1
  288. package/dist/components/Message/MessageUsername.d.ts.map +1 -1
  289. package/dist/components/Message/ThreadMessage/ThreadMessage.d.ts.map +1 -1
  290. package/dist/components/Message/ThreadMessage/ThreadMessageBody.d.ts.map +1 -1
  291. package/dist/components/Message/ThreadMessage/ThreadMessageContainer.d.ts.map +1 -1
  292. package/dist/components/Message/ThreadMessage/ThreadMessageEmoji.d.ts.map +1 -1
  293. package/dist/components/Message/ThreadMessage/ThreadMessageFollow.d.ts.map +1 -1
  294. package/dist/components/Message/ThreadMessage/ThreadMessageIcon.d.ts.map +1 -1
  295. package/dist/components/Message/ThreadMessage/ThreadMessageIconThread.d.ts.map +1 -1
  296. package/dist/components/Message/ThreadMessage/ThreadMessageLeftContainer.d.ts.map +1 -1
  297. package/dist/components/Message/ThreadMessage/ThreadMessageOrigin.d.ts +1 -1
  298. package/dist/components/Message/ThreadMessage/ThreadMessageOrigin.d.ts.map +1 -1
  299. package/dist/components/Message/ThreadMessage/ThreadMessageRow.d.ts.map +1 -1
  300. package/dist/components/Message/ThreadMessage/ThreadMessageUnfollow.d.ts.map +1 -1
  301. package/dist/components/Message/ThreadMessage/index.d.ts +7 -7
  302. package/dist/components/Message/ThreadMessage/index.d.ts.map +1 -1
  303. package/dist/components/Message/helpers.d.ts.map +1 -1
  304. package/dist/components/Message/index.d.ts +11 -11
  305. package/dist/components/Message/index.d.ts.map +1 -1
  306. package/dist/components/Modal/Modal.d.ts +11 -2
  307. package/dist/components/Modal/Modal.d.ts.map +1 -1
  308. package/dist/components/Modal/ModalBackdrop.d.ts +6 -3
  309. package/dist/components/Modal/ModalBackdrop.d.ts.map +1 -1
  310. package/dist/components/Modal/ModalClose.d.ts +2 -2
  311. package/dist/components/Modal/ModalClose.d.ts.map +1 -1
  312. package/dist/components/Modal/ModalContent.d.ts +5 -3
  313. package/dist/components/Modal/ModalContent.d.ts.map +1 -1
  314. package/dist/components/Modal/ModalFooter.d.ts +6 -3
  315. package/dist/components/Modal/ModalFooter.d.ts.map +1 -1
  316. package/dist/components/Modal/ModalFooterAnnotation.d.ts +2 -2
  317. package/dist/components/Modal/ModalFooterAnnotation.d.ts.map +1 -1
  318. package/dist/components/Modal/ModalFooterControllers.d.ts.map +1 -1
  319. package/dist/components/Modal/ModalHeader.d.ts +2 -2
  320. package/dist/components/Modal/ModalHeader.d.ts.map +1 -1
  321. package/dist/components/Modal/ModalHeaderText.d.ts +2 -2
  322. package/dist/components/Modal/ModalHeaderText.d.ts.map +1 -1
  323. package/dist/components/Modal/ModalHeroImage.d.ts +8 -1
  324. package/dist/components/Modal/ModalHeroImage.d.ts.map +1 -1
  325. package/dist/components/Modal/ModalIcon.d.ts +14 -3
  326. package/dist/components/Modal/ModalIcon.d.ts.map +1 -1
  327. package/dist/components/Modal/ModalTagline.d.ts +6 -3
  328. package/dist/components/Modal/ModalTagline.d.ts.map +1 -1
  329. package/dist/components/Modal/ModalThumb.d.ts.map +1 -1
  330. package/dist/components/Modal/ModalTitle.d.ts +2 -2
  331. package/dist/components/Modal/ModalTitle.d.ts.map +1 -1
  332. package/dist/components/Modal/index.d.ts +7 -7
  333. package/dist/components/Modal/index.d.ts.map +1 -1
  334. package/dist/components/MultiSelect/MultiSelect.d.ts +6 -2
  335. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  336. package/dist/components/MultiSelect/MultiSelectAnchor.d.ts.map +1 -1
  337. package/dist/components/MultiSelect/MultiSelectAnchorParams.d.ts.map +1 -1
  338. package/dist/components/MultiSelect/MultiSelectFiltered.d.ts.map +1 -1
  339. package/dist/components/MultiSelect/MultiSelectFilteredAnchor.d.ts.map +1 -1
  340. package/dist/components/MultiSelect/MultiSelectFilteredContext.d.ts.map +1 -1
  341. package/dist/components/MultiSelect/SelectedOptions.d.ts +1 -1
  342. package/dist/components/MultiSelect/SelectedOptions.d.ts.map +1 -1
  343. package/dist/components/MultiSelect/index.d.ts +1 -1
  344. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  345. package/dist/components/NavBar/NavBar.d.ts.map +1 -1
  346. package/dist/components/NavBar/NavBarDivider.d.ts +1 -1
  347. package/dist/components/NavBar/NavBarDivider.d.ts.map +1 -1
  348. package/dist/components/NavBar/NavBarGroup.d.ts.map +1 -1
  349. package/dist/components/NavBar/NavBarItem.d.ts.map +1 -1
  350. package/dist/components/NavBar/NavBarSection.d.ts.map +1 -1
  351. package/dist/components/NavBar/index.d.ts +2 -2
  352. package/dist/components/NavBar/index.d.ts.map +1 -1
  353. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  354. package/dist/components/Option/CheckOption.d.ts +5 -1
  355. package/dist/components/Option/CheckOption.d.ts.map +1 -1
  356. package/dist/components/Option/Option.d.ts +12 -7
  357. package/dist/components/Option/Option.d.ts.map +1 -1
  358. package/dist/components/Option/OptionAvatar.d.ts.map +1 -1
  359. package/dist/components/Option/OptionColumn.d.ts +3 -0
  360. package/dist/components/Option/OptionColumn.d.ts.map +1 -1
  361. package/dist/components/Option/OptionContent.d.ts +1 -1
  362. package/dist/components/Option/OptionContent.d.ts.map +1 -1
  363. package/dist/components/Option/OptionDescription.d.ts.map +1 -1
  364. package/dist/components/Option/OptionDescriptionBlock.d.ts.map +1 -1
  365. package/dist/components/Option/OptionDivider.d.ts.map +1 -1
  366. package/dist/components/Option/OptionHeader.d.ts +3 -0
  367. package/dist/components/Option/OptionHeader.d.ts.map +1 -1
  368. package/dist/components/Option/OptionIcon.d.ts +1 -1
  369. package/dist/components/Option/OptionIcon.d.ts.map +1 -1
  370. package/dist/components/Option/OptionInput.d.ts.map +1 -1
  371. package/dist/components/Option/OptionMenu.d.ts +1 -1
  372. package/dist/components/Option/OptionMenu.d.ts.map +1 -1
  373. package/dist/components/Option/OptionSkeleton.d.ts.map +1 -1
  374. package/dist/components/Option/OptionTitle.d.ts +1 -1
  375. package/dist/components/Option/OptionTitle.d.ts.map +1 -1
  376. package/dist/components/Option/index.d.ts +7 -7
  377. package/dist/components/Option/index.d.ts.map +1 -1
  378. package/dist/components/Options/OptionContainer.d.ts +2 -3
  379. package/dist/components/Options/OptionContainer.d.ts.map +1 -1
  380. package/dist/components/Options/OptionType.d.ts +1 -22
  381. package/dist/components/Options/OptionType.d.ts.map +1 -1
  382. package/dist/components/Options/Options.d.ts +4 -2
  383. package/dist/components/Options/Options.d.ts.map +1 -1
  384. package/dist/components/Options/OptionsEmpty.d.ts +2 -1
  385. package/dist/components/Options/OptionsEmpty.d.ts.map +1 -1
  386. package/dist/components/Options/index.d.ts +1 -1
  387. package/dist/components/Options/index.d.ts.map +1 -1
  388. package/dist/components/Options/useCursor.d.ts.map +1 -1
  389. package/dist/components/Options/useVisible.d.ts +2 -6
  390. package/dist/components/Options/useVisible.d.ts.map +1 -1
  391. package/dist/components/OptionsPaginated/OptionsPaginated.d.ts +6 -8
  392. package/dist/components/OptionsPaginated/OptionsPaginated.d.ts.map +1 -1
  393. package/dist/components/PaginatedSelect/PaginatedMultiSelect.d.ts +6 -3
  394. package/dist/components/PaginatedSelect/PaginatedMultiSelect.d.ts.map +1 -1
  395. package/dist/components/PaginatedSelect/PaginatedMultiSelectFiltered.d.ts.map +1 -1
  396. package/dist/components/PaginatedSelect/PaginatedSelect.d.ts +1 -1
  397. package/dist/components/PaginatedSelect/PaginatedSelect.d.ts.map +1 -1
  398. package/dist/components/PaginatedSelect/PaginatedSelectFiltered.d.ts.map +1 -1
  399. package/dist/components/PaginatedSelect/index.d.ts +4 -4
  400. package/dist/components/PaginatedSelect/index.d.ts.map +1 -1
  401. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  402. package/dist/components/Pagination/index.d.ts +1 -1
  403. package/dist/components/Pagination/index.d.ts.map +1 -1
  404. package/dist/components/PaletteStyleTag/PaletteStyleTag.d.ts +1 -1
  405. package/dist/components/PaletteStyleTag/PaletteStyleTag.d.ts.map +1 -1
  406. package/dist/components/PaletteStyleTag/helpers/convertToCss.d.ts.map +1 -1
  407. package/dist/components/PaletteStyleTag/helpers/getPalette.d.ts.map +1 -1
  408. package/dist/components/PaletteStyleTag/hooks/useCreateStyleContainer.d.ts.map +1 -1
  409. package/dist/components/PaletteStyleTag/index.d.ts +1 -1
  410. package/dist/components/PaletteStyleTag/index.d.ts.map +1 -1
  411. package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -1
  412. package/dist/components/PasswordInput/index.d.ts +1 -1
  413. package/dist/components/PasswordInput/index.d.ts.map +1 -1
  414. package/dist/components/Popover/Popover.d.ts.map +1 -1
  415. package/dist/components/PopoverSurface/PopoverSurface.d.ts +15 -0
  416. package/dist/components/PopoverSurface/PopoverSurface.d.ts.map +1 -0
  417. package/dist/components/PopoverSurface/index.d.ts +2 -0
  418. package/dist/components/PopoverSurface/index.d.ts.map +1 -0
  419. package/dist/components/PositionAnimated/Position.d.ts +5 -3
  420. package/dist/components/PositionAnimated/Position.d.ts.map +1 -1
  421. package/dist/components/PositionAnimated/PositionAnimated.d.ts +4 -3
  422. package/dist/components/PositionAnimated/PositionAnimated.d.ts.map +1 -1
  423. package/dist/components/PositionAnimated/index.d.ts +1 -1
  424. package/dist/components/PositionAnimated/index.d.ts.map +1 -1
  425. package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  426. package/dist/components/RadioButton/RadioButton.d.ts +3 -3
  427. package/dist/components/RadioButton/RadioButton.d.ts.map +1 -1
  428. package/dist/components/Scrollable/Scrollable.d.ts +1 -1
  429. package/dist/components/Scrollable/Scrollable.d.ts.map +1 -1
  430. package/dist/components/SearchInput/SearchInput.d.ts.map +1 -1
  431. package/dist/components/Select/Select.d.ts +15 -8
  432. package/dist/components/Select/Select.d.ts.map +1 -1
  433. package/dist/components/Select/SelectAddon.d.ts +2 -3
  434. package/dist/components/Select/SelectAddon.d.ts.map +1 -1
  435. package/dist/components/Select/SelectAnchorParams.d.ts.map +1 -1
  436. package/dist/components/Select/SelectFiltered.d.ts.map +1 -1
  437. package/dist/components/Select/SelectFilteredAnchor.d.ts.map +1 -1
  438. package/dist/components/Select/SelectFilteredContext.d.ts.map +1 -1
  439. package/dist/components/Select/SelectFocus.d.ts +3 -3
  440. package/dist/components/Select/SelectFocus.d.ts.map +1 -1
  441. package/dist/components/Select/SelectLegacy.d.ts +8 -8
  442. package/dist/components/Select/SelectLegacy.d.ts.map +1 -1
  443. package/dist/components/Select/index.d.ts +2 -2
  444. package/dist/components/Select/index.d.ts.map +1 -1
  445. package/dist/components/Select/useTypeahead.d.ts +17 -0
  446. package/dist/components/Select/useTypeahead.d.ts.map +1 -0
  447. package/dist/components/Sidebar/Sidebar.d.ts.map +1 -1
  448. package/dist/components/Sidebar/SidebarAccordion.d.ts.map +1 -1
  449. package/dist/components/Sidebar/SidebarAccordionItem.d.ts.map +1 -1
  450. package/dist/components/Sidebar/SidebarAction.d.ts.map +1 -1
  451. package/dist/components/Sidebar/SidebarActions.d.ts.map +1 -1
  452. package/dist/components/Sidebar/SidebarBanner.d.ts.map +1 -1
  453. package/dist/components/Sidebar/SidebarButtonGroup.d.ts.map +1 -1
  454. package/dist/components/Sidebar/SidebarCollapseGroup.d.ts +1 -1
  455. package/dist/components/Sidebar/SidebarCollapseGroup.d.ts.map +1 -1
  456. package/dist/components/Sidebar/SidebarCollapseGroupMenu.d.ts +1 -1
  457. package/dist/components/Sidebar/SidebarCollapseGroupMenu.d.ts.map +1 -1
  458. package/dist/components/Sidebar/SidebarDivider.d.ts.map +1 -1
  459. package/dist/components/Sidebar/SidebarFooter/SidebarFooter.d.ts.map +1 -1
  460. package/dist/components/Sidebar/SidebarFooter/SidebarFooterContent.d.ts +2 -2
  461. package/dist/components/Sidebar/SidebarFooter/SidebarFooterContent.d.ts.map +1 -1
  462. package/dist/components/Sidebar/SidebarGroupTitle.d.ts +4 -1
  463. package/dist/components/Sidebar/SidebarGroupTitle.d.ts.map +1 -1
  464. package/dist/components/Sidebar/SidebarItem/SidebarItem.d.ts +20 -1
  465. package/dist/components/Sidebar/SidebarItem/SidebarItem.d.ts.map +1 -1
  466. package/dist/components/Sidebar/SidebarItem/SidebarItemAction.d.ts.map +1 -1
  467. package/dist/components/Sidebar/SidebarItem/SidebarItemActions.d.ts +8 -0
  468. package/dist/components/Sidebar/SidebarItem/SidebarItemActions.d.ts.map +1 -0
  469. package/dist/components/Sidebar/SidebarItem/SidebarItemAvatarWrapper.d.ts.map +1 -1
  470. package/dist/components/Sidebar/SidebarItem/SidebarItemBadge.d.ts.map +1 -1
  471. package/dist/components/Sidebar/SidebarItem/SidebarItemCol.d.ts.map +1 -1
  472. package/dist/components/Sidebar/SidebarItem/SidebarItemContent.d.ts.map +1 -1
  473. package/dist/components/Sidebar/SidebarItem/SidebarItemIcon.d.ts +6 -2
  474. package/dist/components/Sidebar/SidebarItem/SidebarItemIcon.d.ts.map +1 -1
  475. package/dist/components/Sidebar/SidebarItem/SidebarItemLink.d.ts +8 -0
  476. package/dist/components/Sidebar/SidebarItem/SidebarItemLink.d.ts.map +1 -0
  477. package/dist/components/Sidebar/SidebarItem/SidebarItemMenu.d.ts +1 -1
  478. package/dist/components/Sidebar/SidebarItem/SidebarItemMenu.d.ts.map +1 -1
  479. package/dist/components/Sidebar/SidebarItem/SidebarItemRow.d.ts.map +1 -1
  480. package/dist/components/Sidebar/SidebarItem/SidebarItemStatusBullet.d.ts.map +1 -1
  481. package/dist/components/Sidebar/SidebarItem/SidebarItemTimestamp.d.ts.map +1 -1
  482. package/dist/components/Sidebar/SidebarItem/SidebarItemTitle.d.ts.map +1 -1
  483. package/dist/components/Sidebar/SidebarItem/SidebarListItem.d.ts.map +1 -1
  484. package/dist/components/Sidebar/SidebarItem/index.d.ts +2 -0
  485. package/dist/components/Sidebar/SidebarItem/index.d.ts.map +1 -1
  486. package/dist/components/Sidebar/SidebarLink.d.ts +1 -1
  487. package/dist/components/Sidebar/SidebarLink.d.ts.map +1 -1
  488. package/dist/components/Sidebar/SidebarMedia/SidebarMedia.d.ts.map +1 -1
  489. package/dist/components/Sidebar/SidebarMedia/SidebarMediaController.d.ts.map +1 -1
  490. package/dist/components/Sidebar/SidebarMedia/SidebarMediaTitle.d.ts.map +1 -1
  491. package/dist/components/Sidebar/SidebarSection.d.ts.map +1 -1
  492. package/dist/components/Sidebar/helpers.d.ts.map +1 -1
  493. package/dist/components/Sidebar/hooks/useCollapse.d.ts +4 -4
  494. package/dist/components/Sidebar/hooks/useCollapse.d.ts.map +1 -1
  495. package/dist/components/Sidebar/index.d.ts +6 -6
  496. package/dist/components/Sidebar/index.d.ts.map +1 -1
  497. package/dist/components/Sidepanel/Sidepanel.d.ts.map +1 -1
  498. package/dist/components/Sidepanel/SidepanelDivider.d.ts.map +1 -1
  499. package/dist/components/Sidepanel/SidepanelHeader.d.ts.map +1 -1
  500. package/dist/components/Sidepanel/SidepanelHeaderTitle.d.ts.map +1 -1
  501. package/dist/components/Sidepanel/SidepanelList.d.ts.map +1 -1
  502. package/dist/components/Sidepanel/SidepanelListItem.d.ts.map +1 -1
  503. package/dist/components/Sidepanel/SidepanelSection.d.ts.map +1 -1
  504. package/dist/components/Sidepanel/SidepanelSectionAction.d.ts.map +1 -1
  505. package/dist/components/Sidepanel/index.d.ts +6 -6
  506. package/dist/components/Sidepanel/index.d.ts.map +1 -1
  507. package/dist/components/Skeleton/Skeleton.d.ts +10 -5
  508. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  509. package/dist/components/Slider/Slider.d.ts.map +1 -1
  510. package/dist/components/Slider/SliderHead.d.ts +1 -1
  511. package/dist/components/Slider/SliderHead.d.ts.map +1 -1
  512. package/dist/components/Slider/SliderThumb.d.ts.map +1 -1
  513. package/dist/components/Slider/SliderTrack.d.ts +1 -1
  514. package/dist/components/Slider/SliderTrack.d.ts.map +1 -1
  515. package/dist/components/SplitButton/SplitButton.d.ts.map +1 -1
  516. package/dist/components/SplitButton/SplitButtonTrigger.d.ts +1 -1
  517. package/dist/components/SplitButton/SplitButtonTrigger.d.ts.map +1 -1
  518. package/dist/components/SplitButton/index.d.ts +1 -1
  519. package/dist/components/SplitButton/index.d.ts.map +1 -1
  520. package/dist/components/Stack/Stack.d.ts +16 -0
  521. package/dist/components/Stack/Stack.d.ts.map +1 -0
  522. package/dist/components/Stack/index.d.ts +2 -0
  523. package/dist/components/Stack/index.d.ts.map +1 -0
  524. package/dist/components/States/States.d.ts.map +1 -1
  525. package/dist/components/States/StatesAction.d.ts +1 -1
  526. package/dist/components/States/StatesAction.d.ts.map +1 -1
  527. package/dist/components/States/StatesActions.d.ts.map +1 -1
  528. package/dist/components/States/StatesIcon.d.ts +1 -1
  529. package/dist/components/States/StatesIcon.d.ts.map +1 -1
  530. package/dist/components/States/StatesLink.d.ts +3 -3
  531. package/dist/components/States/StatesLink.d.ts.map +1 -1
  532. package/dist/components/States/StatesSubtitle.d.ts.map +1 -1
  533. package/dist/components/States/StatesSuggestion.d.ts.map +1 -1
  534. package/dist/components/States/StatesSuggestionList.d.ts.map +1 -1
  535. package/dist/components/States/StatesSuggestionListItem.d.ts.map +1 -1
  536. package/dist/components/States/StatesSuggestionText.d.ts.map +1 -1
  537. package/dist/components/States/StatesTitle.d.ts.map +1 -1
  538. package/dist/components/States/index.d.ts +7 -7
  539. package/dist/components/States/index.d.ts.map +1 -1
  540. package/dist/components/StatusBullet/StatusBullet.d.ts.map +1 -1
  541. package/dist/components/StatusBullet/icons/Away.d.ts.map +1 -1
  542. package/dist/components/StatusBullet/icons/Busy.d.ts.map +1 -1
  543. package/dist/components/StatusBullet/icons/Disabled.d.ts.map +1 -1
  544. package/dist/components/StatusBullet/icons/Loading.d.ts.map +1 -1
  545. package/dist/components/StatusBullet/icons/Offline.d.ts.map +1 -1
  546. package/dist/components/StatusBullet/icons/Online.d.ts.map +1 -1
  547. package/dist/components/StatusBullet/index.d.ts +1 -1
  548. package/dist/components/StatusBullet/index.d.ts.map +1 -1
  549. package/dist/components/Table/Table.d.ts +8 -3
  550. package/dist/components/Table/Table.d.ts.map +1 -1
  551. package/dist/components/Table/TableBody.d.ts +2 -2
  552. package/dist/components/Table/TableBody.d.ts.map +1 -1
  553. package/dist/components/Table/TableCell.d.ts +13 -3
  554. package/dist/components/Table/TableCell.d.ts.map +1 -1
  555. package/dist/components/Table/TableFoot.d.ts +2 -2
  556. package/dist/components/Table/TableFoot.d.ts.map +1 -1
  557. package/dist/components/Table/TableHead.d.ts +2 -2
  558. package/dist/components/Table/TableHead.d.ts.map +1 -1
  559. package/dist/components/Table/TableRow.d.ts +3 -2
  560. package/dist/components/Table/TableRow.d.ts.map +1 -1
  561. package/dist/components/Table/TableSelection/TableSelection.d.ts +2 -2
  562. package/dist/components/Table/TableSelection/TableSelection.d.ts.map +1 -1
  563. package/dist/components/Table/TableSelection/TableSelectionButton.d.ts +1 -1
  564. package/dist/components/Table/TableSelection/TableSelectionButton.d.ts.map +1 -1
  565. package/dist/components/Table/TableSelection/TableSelectionButtonGroup.d.ts.map +1 -1
  566. package/dist/components/Table/TableSelection/index.d.ts +3 -3
  567. package/dist/components/Table/TableSelection/index.d.ts.map +1 -1
  568. package/dist/components/Table/index.d.ts +1 -1
  569. package/dist/components/Table/index.d.ts.map +1 -1
  570. package/dist/components/Tabs/Tabs.d.ts +5 -3
  571. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  572. package/dist/components/Tabs/TabsItem.d.ts +3 -3
  573. package/dist/components/Tabs/TabsItem.d.ts.map +1 -1
  574. package/dist/components/Tag/Tag.d.ts +3 -3
  575. package/dist/components/Tag/Tag.d.ts.map +1 -1
  576. package/dist/components/Text/Text.d.ts +306 -0
  577. package/dist/components/Text/Text.d.ts.map +1 -0
  578. package/dist/components/Text/index.d.ts +2 -0
  579. package/dist/components/Text/index.d.ts.map +1 -0
  580. package/dist/components/TextAreaInput/TextAreaInput.d.ts.map +1 -1
  581. package/dist/components/TextAreaInput/index.d.ts +1 -1
  582. package/dist/components/TextAreaInput/index.d.ts.map +1 -1
  583. package/dist/components/TextInput/TextInput.d.ts.map +1 -1
  584. package/dist/components/Throbber/Throbber.d.ts +3 -2
  585. package/dist/components/Throbber/Throbber.d.ts.map +1 -1
  586. package/dist/components/Tile/Tile.d.ts +7 -3
  587. package/dist/components/Tile/Tile.d.ts.map +1 -1
  588. package/dist/components/ToastBar/ToastBar.d.ts.map +1 -1
  589. package/dist/components/ToggleSwitch/ToggleSwitch.d.ts +3 -3
  590. package/dist/components/ToggleSwitch/ToggleSwitch.d.ts.map +1 -1
  591. package/dist/components/ToggleSwitch/index.d.ts +1 -1
  592. package/dist/components/ToggleSwitch/index.d.ts.map +1 -1
  593. package/dist/components/Tooltip/Tooltip.d.ts +2 -3
  594. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  595. package/dist/components/UrlInput/UrlInput.d.ts.map +1 -1
  596. package/dist/components/index.d.ts +4 -0
  597. package/dist/components/index.d.ts.map +1 -1
  598. package/dist/contexts/OwnerDocument.d.ts.map +1 -1
  599. package/dist/fuselage.css +1 -1
  600. package/dist/fuselage.development.css +675 -308
  601. package/dist/fuselage.development.js +1734 -1390
  602. package/dist/fuselage.development.js.map +1 -1
  603. package/dist/fuselage.production.js +176 -177
  604. package/dist/getPaletteColor.d.ts +7 -7
  605. package/dist/getPaletteColor.d.ts.map +1 -1
  606. package/dist/helpers/WithErrorWrapper.d.ts +1 -1
  607. package/dist/helpers/WithErrorWrapper.d.ts.map +1 -1
  608. package/dist/helpers/appendClassName.d.ts.map +1 -1
  609. package/dist/helpers/composeClassNames.d.ts.map +1 -1
  610. package/dist/helpers/exhaustiveCheck.d.ts.map +1 -1
  611. package/dist/helpers/fromCamelToKebab.d.ts.map +1 -1
  612. package/dist/helpers/patchChildren.d.ts.map +1 -1
  613. package/dist/helpers/prependClassName.d.ts.map +1 -1
  614. package/dist/helpers/prevent.d.ts.map +1 -1
  615. package/dist/helpers/setStoryDescription.d.ts.map +1 -1
  616. package/dist/helpers/shallowEqual.d.ts.map +1 -1
  617. package/dist/helpers/toCSSValue.d.ts.map +1 -1
  618. package/dist/hooks/useArrayLikeClassNameProp.d.ts.map +1 -1
  619. package/dist/hooks/useBoxOnlyProps.d.ts +3 -3
  620. package/dist/hooks/useBoxOnlyProps.d.ts.map +1 -1
  621. package/dist/hooks/useStyle.d.ts +2 -1
  622. package/dist/hooks/useStyle.d.ts.map +1 -1
  623. package/dist/index.d.ts +1 -0
  624. package/dist/index.d.ts.map +1 -1
  625. package/dist/styleTokens.d.ts +12 -9
  626. package/dist/styleTokens.d.ts.map +1 -1
  627. package/dist/types/ElementProps.d.ts +8 -0
  628. package/dist/types/ElementProps.d.ts.map +1 -0
  629. package/index.js +2 -3
  630. package/package.json +42 -48
  631. package/dist/components/PaginatedSelect/PaginatedSelectWrapper.d.ts +0 -6
  632. package/dist/components/PaginatedSelect/PaginatedSelectWrapper.d.ts.map +0 -1
  633. package/dist/components/Select/Listbox.d.ts +0 -10
  634. package/dist/components/Select/Listbox.d.ts.map +0 -1
  635. package/dist/components/Select/SelectAria.d.ts +0 -12
  636. package/dist/components/Select/SelectAria.d.ts.map +0 -1
  637. package/dist/components/Select/SelectTrigger.d.ts +0 -10
  638. package/dist/components/Select/SelectTrigger.d.ts.map +0 -1
  639. package/dist/tsdoc-metadata.json +0 -11
@@ -44,6 +44,8 @@ if (process.env.NODE_ENV !== "production") (function() {
44
44
  _rocket_chat_fuselage_tokens_dist_surface_json = __toESM(_rocket_chat_fuselage_tokens_dist_surface_json);
45
45
  let _rocket_chat_fuselage_tokens_dist_border_json = require("@rocket.chat/fuselage-tokens/dist/border.json");
46
46
  _rocket_chat_fuselage_tokens_dist_border_json = __toESM(_rocket_chat_fuselage_tokens_dist_border_json);
47
+ let _rocket_chat_fuselage_tokens_dist_spacing_json = require("@rocket.chat/fuselage-tokens/dist/spacing.json");
48
+ _rocket_chat_fuselage_tokens_dist_spacing_json = __toESM(_rocket_chat_fuselage_tokens_dist_spacing_json);
47
49
  let _rocket_chat_fuselage_tokens_dist_typography_json = require("@rocket.chat/fuselage-tokens/dist/typography.json");
48
50
  _rocket_chat_fuselage_tokens_dist_typography_json = __toESM(_rocket_chat_fuselage_tokens_dist_typography_json);
49
51
  let _rocket_chat_memo = require("@rocket.chat/memo");
@@ -169,98 +171,6 @@ if (process.env.NODE_ENV !== "production") (function() {
169
171
  return classNames.join(" ");
170
172
  };
171
173
  //#endregion
172
- //#region src/helpers/appendClassName.ts
173
- var appendClassName = (currentClassName, newClassName) => {
174
- if (currentClassName === void 0 || currentClassName === "") return newClassName;
175
- if (Array.isArray(currentClassName)) return [...currentClassName, newClassName];
176
- return `${currentClassName} ${newClassName}`;
177
- };
178
- //#endregion
179
- //#region src/contexts/OwnerDocument.ts
180
- var OwnerDocument = (0, react.createContext)({ document: window.document });
181
- var useOwnerDocument = () => {
182
- return (0, react.useContext)(OwnerDocument);
183
- };
184
- //#endregion
185
- //#region src/hooks/useStyle.ts
186
- var useStyle = (cssFn, arg) => {
187
- const content = (0, react.useMemo)(() => cssFn ? cssFn(arg) : void 0, [arg, cssFn]);
188
- const className = (0, react.useMemo)(() => {
189
- if (!content) return;
190
- return content ? (0, _rocket_chat_css_in_js.createClassName)(content) : void 0;
191
- }, [content]);
192
- (0, react.useDebugValue)(className);
193
- const { document } = useOwnerDocument();
194
- (0, react.useInsertionEffect)(() => {
195
- if (!content || !className) return;
196
- const escapedClassName = (0, _rocket_chat_css_in_js.escapeName)(className);
197
- const transpiledContent = (0, _rocket_chat_css_in_js.transpile)(`.${escapedClassName}`, content);
198
- const detach = (0, _rocket_chat_css_in_js.attachRules)(transpiledContent, { document });
199
- return () => {
200
- setTimeout(detach, 1e3);
201
- };
202
- }, [
203
- className,
204
- content,
205
- document
206
- ]);
207
- return className;
208
- };
209
- //#endregion
210
- //#region src/hooks/useArrayLikeClassNameProp.ts
211
- var useArrayLikeClassNameProp = (props) => {
212
- const classNames = props.className ? [].concat(props.className) : [];
213
- const cssFns = classNames.filter((value) => typeof value === "function");
214
- const stylesClassName = useStyle(_rocket_chat_css_in_js.css`
215
- ${cssFns}
216
- `, props);
217
- const className = classNames.filter((value) => typeof value === "string").reduce((className, string) => appendClassName(className, string), stylesClassName || "");
218
- return Object.assign(props, { className });
219
- };
220
- //#endregion
221
- //#region src/helpers/prependClassName.ts
222
- var isStringArray = (value) => Array.isArray(value);
223
- var prependClassName = (currentClassName, newClassName) => {
224
- if (isStringArray(currentClassName)) return [newClassName, ...currentClassName];
225
- if (currentClassName) return `${newClassName} ${currentClassName}`;
226
- return newClassName;
227
- };
228
- //#endregion
229
- //#region src/hooks/useBoxOnlyProps.ts
230
- var useBoxOnlyProps = (props) => {
231
- Object.entries(props).forEach(([key, value]) => {
232
- if (key.slice(0, 4) === "rcx-") try {
233
- if (!value) return;
234
- const newClassName = value === true ? key : `${key}-${value}`;
235
- props.className = prependClassName(props.className, newClassName);
236
- } finally {
237
- delete props[key];
238
- }
239
- });
240
- if (props.animated) {
241
- props.className = prependClassName(props.className, "rcx-box--animated");
242
- delete props.animated;
243
- }
244
- if (props.withRichContent) {
245
- if (props.withRichContent === "inlineWithoutBreaks") props.className = prependClassName(props.className, "rcx-box--with-inline-elements");
246
- else {
247
- props.className = prependClassName(props.className, "rcx-box--with-inline-elements");
248
- props.className = prependClassName(props.className, "rcx-box--with-block-elements");
249
- }
250
- }
251
- if (props.htmlSize) {
252
- props.size = props.htmlSize;
253
- delete props.htmlSize;
254
- }
255
- if (props.focusable) {
256
- props.className = prependClassName(props.className, "rcx-box--focusable");
257
- delete props.focusable;
258
- }
259
- delete props.withRichContent;
260
- props.className = prependClassName(props.className, "rcx-box rcx-box--full");
261
- return props;
262
- };
263
- //#endregion
264
174
  //#region src/components/Box/BoxTransforms.ts
265
175
  var BoxTransforms = (0, react.createContext)(null);
266
176
  var useBoxTransform = () => (0, react.useContext)(BoxTransforms);
@@ -432,6 +342,8 @@ if (process.env.NODE_ENV !== "production") (function() {
432
342
  };
433
343
  //#endregion
434
344
  //#region src/styleTokens.ts
345
+ var spacingScale = _rocket_chat_fuselage_tokens_dist_spacing_json.default;
346
+ var isSpacingToken = (value) => Object.hasOwn(_rocket_chat_fuselage_tokens_dist_spacing_json.default, value);
435
347
  var measure = (computeSpecialValue) => (0, _rocket_chat_memo.memoize)((value) => {
436
348
  if (typeof value === "number") return `${value}px`;
437
349
  if (typeof value !== "string") return;
@@ -518,7 +430,18 @@ if (process.env.NODE_ENV !== "production") (function() {
518
430
  if (value === "sw") return "100vw";
519
431
  if (value === "sh") return "100vh";
520
432
  });
521
- var spacing = measure((value) => {
433
+ var spacing = (0, _rocket_chat_memo.memoize)((value) => {
434
+ if (typeof value === "number") return `${value}px`;
435
+ if (typeof value !== "string") return;
436
+ if (value === "none") return "0px";
437
+ const [, negativeMark, step] = /^(neg-|-)?x(\d+)$/.exec(value) ?? [];
438
+ if (!step) return value;
439
+ const token = `x${step}`;
440
+ const pixels = isSpacingToken(token) ? _rocket_chat_fuselage_tokens_dist_spacing_json.default[token] : Number(step);
441
+ return `${(negativeMark ? -1 : 1) * pixels}px`;
442
+ });
443
+ /** @internal */
444
+ var inset = measure((value) => {
522
445
  if (value === "none") return "0px";
523
446
  });
524
447
  var isFontFamily = (value) => typeof value === "string" && value in _rocket_chat_fuselage_tokens_dist_typography_json.default.fontFamily;
@@ -549,7 +472,7 @@ if (process.env.NODE_ENV !== "production") (function() {
549
472
  var fontColorProp = { toCSSValue: fontColor };
550
473
  var strokeColorProp = { toCSSValue: strokeColor };
551
474
  var sizeProp = { toCSSValue: size };
552
- var insetProp = { toCSSValue: spacing };
475
+ var insetProp = { toCSSValue: inset };
553
476
  var marginProp = { toCSSValue: spacing };
554
477
  var paddingProp = { toCSSValue: spacing };
555
478
  var gapProp = { toCSSValue: spacing };
@@ -652,54 +575,54 @@ if (process.env.NODE_ENV !== "production") (function() {
652
575
  wordBreak: stringProp,
653
576
  elevation: { toStyle: (value) => {
654
577
  if (value === "0") return _rocket_chat_css_in_js.css`
655
- box-shadow: none;
656
- `;
578
+ box-shadow: none;
579
+ `;
657
580
  if (value === "1") return _rocket_chat_css_in_js.css`
658
- box-shadow: 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-1"]};
659
- border: 1px solid ${Palette.shadow["shadow-elevation-border"]};
660
- `;
581
+ box-shadow: 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-1"]};
582
+ border: 1px solid ${Palette.shadow["shadow-elevation-border"]};
583
+ `;
661
584
  if (value === "1nb") return _rocket_chat_css_in_js.css`
662
- box-shadow: 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-1"]};
663
- `;
585
+ box-shadow: 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-1"]};
586
+ `;
664
587
  if (value === "2") return _rocket_chat_css_in_js.css`
665
- box-shadow:
666
- 0px 0px 2px 0px ${Palette.shadow["shadow-elevation-2x"]},
667
- 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-2y"]};
668
- border: 1px solid ${Palette.shadow["shadow-elevation-border"]};
669
- `;
588
+ box-shadow:
589
+ 0px 0px 2px 0px ${Palette.shadow["shadow-elevation-2x"]},
590
+ 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-2y"]};
591
+ border: 1px solid ${Palette.shadow["shadow-elevation-border"]};
592
+ `;
670
593
  if (value === "2nb") return _rocket_chat_css_in_js.css`
671
- box-shadow:
672
- 0px 0px 2px 0px ${Palette.shadow["shadow-elevation-2x"]},
673
- 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-2y"]};
674
- `;
594
+ box-shadow:
595
+ 0px 0px 2px 0px ${Palette.shadow["shadow-elevation-2x"]},
596
+ 0px 0px 12px 0px ${Palette.shadow["shadow-elevation-2y"]};
597
+ `;
675
598
  } },
676
599
  invisible: { toStyle: (value) => value ? _rocket_chat_css_in_js.css`
677
- visibility: hidden;
678
- opacity: 0;
679
- ` : void 0 },
600
+ visibility: hidden;
601
+ opacity: 0;
602
+ ` : void 0 },
680
603
  withTruncatedText: { toStyle: (value) => value ? _rocket_chat_css_in_js.css`
681
- overflow: hidden;
682
- text-overflow: ellipsis;
683
- white-space: nowrap;
684
- ` : void 0 },
604
+ overflow: hidden;
605
+ text-overflow: ellipsis;
606
+ white-space: nowrap;
607
+ ` : void 0 },
685
608
  size: { toStyle: (value) => size(value) ? _rocket_chat_css_in_js.css`
686
- width: ${size(value)} !important;
687
- height: ${size(value)} !important;
688
- ` : void 0 },
609
+ width: ${size(value)} !important;
610
+ height: ${size(value)} !important;
611
+ ` : void 0 },
689
612
  minSize: { toStyle: (value) => size(value) ? _rocket_chat_css_in_js.css`
690
- min-width: ${size(value)} !important;
691
- min-height: ${size(value)} !important;
692
- ` : void 0 },
613
+ min-width: ${size(value)} !important;
614
+ min-height: ${size(value)} !important;
615
+ ` : void 0 },
693
616
  maxSize: { toStyle: (value) => size(value) ? _rocket_chat_css_in_js.css`
694
- max-width: ${size(value)} !important;
695
- max-height: ${size(value)} !important;
696
- ` : void 0 },
617
+ max-width: ${size(value)} !important;
618
+ max-height: ${size(value)} !important;
619
+ ` : void 0 },
697
620
  fontScale: { toStyle: (value) => _rocket_chat_css_in_js.css`
698
- font-size: ${fontScale(value)?.fontSize} !important;
699
- font-weight: ${fontScale(value)?.fontWeight} !important;
700
- letter-spacing: ${fontScale(value)?.letterSpacing} !important;
701
- line-height: ${fontScale(value)?.lineHeight} !important;
702
- ` }
621
+ font-size: ${fontScale(value)?.fontSize} !important;
622
+ font-weight: ${fontScale(value)?.fontWeight} !important;
623
+ letter-spacing: ${fontScale(value)?.letterSpacing} !important;
624
+ line-height: ${fontScale(value)?.lineHeight} !important;
625
+ ` }
703
626
  }).map(([propName, propDef]) => {
704
627
  if ("toCSSValue" in propDef) {
705
628
  const cssProperty = fromCamelToKebab(propName);
@@ -708,8 +631,8 @@ if (process.env.NODE_ENV !== "production") (function() {
708
631
  const cssValue = toCSSValue(value);
709
632
  if (cssValue === void 0) return;
710
633
  stylingProps.set(propName, _rocket_chat_css_in_js.css`
711
- ${cssProperty}: ${cssValue} !important;
712
- `);
634
+ ${cssProperty}: ${cssValue} !important;
635
+ `);
713
636
  }];
714
637
  }
715
638
  const { toStyle } = propDef;
@@ -732,8 +655,47 @@ if (process.env.NODE_ENV !== "production") (function() {
732
655
  inject(value, stylingProps);
733
656
  }
734
657
  return [newProps, stylingProps.size ? _rocket_chat_css_in_js.css`
735
- ${Array.from(stylingProps.values())}
736
- ` : void 0];
658
+ ${Array.from(stylingProps.values())}
659
+ ` : void 0];
660
+ };
661
+ //#endregion
662
+ //#region src/helpers/appendClassName.ts
663
+ var appendClassName = (currentClassName, newClassName) => {
664
+ if (currentClassName === void 0 || currentClassName === "") return newClassName;
665
+ if (Array.isArray(currentClassName)) return [...currentClassName, newClassName];
666
+ return `${currentClassName} ${newClassName}`;
667
+ };
668
+ //#endregion
669
+ //#region src/contexts/OwnerDocument.ts
670
+ var OwnerDocument = (0, react.createContext)({ document: window.document });
671
+ var useOwnerDocument = () => {
672
+ return (0, react.useContext)(OwnerDocument);
673
+ };
674
+ //#endregion
675
+ //#region src/hooks/useStyle.ts
676
+ /** Attaches a `css` style to the document and returns its class name, for a `className` that takes strings only. */
677
+ var useStyle = (cssFn, arg) => {
678
+ const content = (0, react.useMemo)(() => cssFn ? cssFn(arg) : void 0, [arg, cssFn]);
679
+ const className = (0, react.useMemo)(() => {
680
+ if (!content) return;
681
+ return content ? (0, _rocket_chat_css_in_js.createClassName)(content) : void 0;
682
+ }, [content]);
683
+ (0, react.useDebugValue)(className);
684
+ const { document } = useOwnerDocument();
685
+ (0, react.useInsertionEffect)(() => {
686
+ if (!content || !className) return;
687
+ const escapedClassName = (0, _rocket_chat_css_in_js.escapeName)(className);
688
+ const transpiledContent = (0, _rocket_chat_css_in_js.transpile)(`.${escapedClassName}`, content);
689
+ const detach = (0, _rocket_chat_css_in_js.attachRules)(transpiledContent, { document });
690
+ return () => {
691
+ setTimeout(detach, 1e3);
692
+ };
693
+ }, [
694
+ className,
695
+ content,
696
+ document
697
+ ]);
698
+ return className;
737
699
  };
738
700
  //#endregion
739
701
  //#region src/components/Box/useStylingProps.ts
@@ -744,6 +706,60 @@ if (process.env.NODE_ENV !== "production") (function() {
744
706
  return props;
745
707
  };
746
708
  //#endregion
709
+ //#region src/hooks/useArrayLikeClassNameProp.ts
710
+ var useArrayLikeClassNameProp = (props) => {
711
+ const classNames = props.className ? [].concat(props.className) : [];
712
+ const cssFns = classNames.filter((value) => typeof value === "function");
713
+ const stylesClassName = useStyle(_rocket_chat_css_in_js.css`
714
+ ${cssFns}
715
+ `, props);
716
+ const className = classNames.filter((value) => typeof value === "string").reduce((className, string) => appendClassName(className, string), stylesClassName || "");
717
+ return Object.assign(props, { className });
718
+ };
719
+ //#endregion
720
+ //#region src/helpers/prependClassName.ts
721
+ var isStringArray = (value) => Array.isArray(value);
722
+ var prependClassName = (currentClassName, newClassName) => {
723
+ if (isStringArray(currentClassName)) return [newClassName, ...currentClassName];
724
+ if (currentClassName) return `${newClassName} ${currentClassName}`;
725
+ return newClassName;
726
+ };
727
+ //#endregion
728
+ //#region src/hooks/useBoxOnlyProps.ts
729
+ var useBoxOnlyProps = (props) => {
730
+ Object.entries(props).forEach(([key, value]) => {
731
+ if (key.slice(0, 4) === "rcx-") try {
732
+ if (!value) return;
733
+ const newClassName = value === true ? key : `${key}-${value}`;
734
+ props.className = prependClassName(props.className, newClassName);
735
+ } finally {
736
+ delete props[key];
737
+ }
738
+ });
739
+ if (props.animated) {
740
+ props.className = prependClassName(props.className, "rcx-box--animated");
741
+ delete props.animated;
742
+ }
743
+ if (props.withRichContent) {
744
+ if (props.withRichContent === "inlineWithoutBreaks") props.className = prependClassName(props.className, "rcx-box--with-inline-elements");
745
+ else {
746
+ props.className = prependClassName(props.className, "rcx-box--with-inline-elements");
747
+ props.className = prependClassName(props.className, "rcx-box--with-block-elements");
748
+ }
749
+ }
750
+ if (props.htmlSize) {
751
+ props.size = props.htmlSize;
752
+ delete props.htmlSize;
753
+ }
754
+ if (props.focusable) {
755
+ props.className = prependClassName(props.className, "rcx-box--focusable");
756
+ delete props.focusable;
757
+ }
758
+ delete props.withRichContent;
759
+ props.className = prependClassName(props.className, "rcx-box rcx-box--full");
760
+ return props;
761
+ };
762
+ //#endregion
747
763
  //#region src/components/Box/Box.tsx
748
764
  function Box({ is = "div", ...props }) {
749
765
  let propsWithStringClassName = useArrayLikeClassNameProp(props);
@@ -883,10 +899,11 @@ if (process.env.NODE_ENV !== "production") (function() {
883
899
  });
884
900
  }, [propVisibility]);
885
901
  const className = useStyle(_rocket_chat_css_in_js.css`
886
- animation-duration: 230ms;
902
+ animation-duration: 230ms;
903
+ animation-fill-mode: both;
887
904
 
888
- ${visibility === AnimatedVisibility.HIDING && _rocket_chat_css_in_js.css`
889
- animation-name: ${_rocket_chat_css_in_js.keyframes`
905
+ ${visibility === AnimatedVisibility.HIDING && _rocket_chat_css_in_js.css`
906
+ animation-name: ${_rocket_chat_css_in_js.keyframes`
890
907
  from {
891
908
  transform: translate3d(0, 0, 0);
892
909
  opacity: 1;
@@ -897,10 +914,10 @@ if (process.env.NODE_ENV !== "production") (function() {
897
914
  opacity: 0;
898
915
  }
899
916
  `};
900
- `}
917
+ `}
901
918
 
902
- ${visibility === AnimatedVisibility.UNHIDING && _rocket_chat_css_in_js.css`
903
- animation-name: ${_rocket_chat_css_in_js.keyframes`
919
+ ${visibility === AnimatedVisibility.UNHIDING && _rocket_chat_css_in_js.css`
920
+ animation-name: ${_rocket_chat_css_in_js.keyframes`
904
921
  from {
905
922
  transform: translate3d(0, 1rem, 0);
906
923
  opacity: 0;
@@ -911,8 +928,8 @@ if (process.env.NODE_ENV !== "production") (function() {
911
928
  opacity: 1;
912
929
  }
913
930
  `};
914
- `}
915
- `, null);
931
+ `}
932
+ `, null);
916
933
  const handleAnimationEnd = (0, react.useCallback)(() => setVisibility((visibility) => {
917
934
  if (visibility === AnimatedVisibility.HIDING) return AnimatedVisibility.HIDDEN;
918
935
  if (visibility === AnimatedVisibility.UNHIDING) return AnimatedVisibility.VISIBLE;
@@ -963,12 +980,12 @@ if (process.env.NODE_ENV !== "production") (function() {
963
980
  //#region src/components/Slider/SliderHead.tsx
964
981
  var SliderHead = ({ state, labelProps, outputProps, label, showOutput = true, multiThumb }) => {
965
982
  const labelContainer = useStyle(_rocket_chat_css_in_js.css`
966
- display: flex;
967
- justify-content: space-between;
968
- ${state.orientation === "vertical" && _rocket_chat_css_in_js.css`
969
- flex-direction: column;
970
- `}
971
- `, null);
983
+ display: flex;
984
+ justify-content: space-between;
985
+ ${state.orientation === "vertical" && _rocket_chat_css_in_js.css`
986
+ flex-direction: column;
987
+ `}
988
+ `, null);
972
989
  const output = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Label, {
973
990
  ...outputProps,
974
991
  children: multiThumb ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Label, {
@@ -1001,18 +1018,18 @@ if (process.env.NODE_ENV !== "production") (function() {
1001
1018
  }, state);
1002
1019
  const { focusProps, isFocusVisible } = (0, react_aria.useFocusRing)();
1003
1020
  const thumb = useStyle(_rocket_chat_css_in_js.css`
1004
- width: 12px;
1005
- height: 12px;
1021
+ width: 12px;
1022
+ height: 12px;
1006
1023
 
1007
- cursor: ${state.isDisabled ? "not-allowed" : "pointer"};
1008
- border-radius: 50%;
1009
- background: ${isFocusVisible || isDragging ? Palette.text["font-info"] : Palette.stroke["stroke-highlight"]};
1010
- ${state.orientation === "horizontal" ? _rocket_chat_css_in_js.css`
1011
- top: 50%;
1012
- ` : _rocket_chat_css_in_js.css`
1013
- left: 50%;
1014
- `}
1015
- `, {
1024
+ cursor: ${state.isDisabled ? "not-allowed" : "pointer"};
1025
+ border-radius: 50%;
1026
+ background: ${isFocusVisible || isDragging ? Palette.text["font-info"] : Palette.stroke["stroke-highlight"]};
1027
+ ${state.orientation === "horizontal" ? _rocket_chat_css_in_js.css`
1028
+ top: 50%;
1029
+ ` : _rocket_chat_css_in_js.css`
1030
+ left: 50%;
1031
+ `}
1032
+ `, {
1016
1033
  isFocusVisible,
1017
1034
  isDragging
1018
1035
  });
@@ -1040,39 +1057,39 @@ if (process.env.NODE_ENV !== "production") (function() {
1040
1057
  if (isVertical) return multiThumb ? `to top, ${light$1} ${getThumbPosition(state.values[0])}%, ${highlight} 0, ${highlight} ${getThumbPosition(state.values[1])}%, ${light$1} 0` : `to top, ${highlight} ${getThumbPosition(state.values[0])}%, ${light$1} 0%`;
1041
1058
  };
1042
1059
  const track = useStyle(_rocket_chat_css_in_js.css`
1043
- &::before {
1044
- position: absolute;
1045
- display: block;
1046
- content: '';
1060
+ &::before {
1061
+ position: absolute;
1062
+ display: block;
1063
+ content: '';
1047
1064
 
1048
- background: linear-gradient(${getTrackGradient()});
1049
- transform: translateX(-50%);
1050
- border-radius: 1rem;
1051
- }
1052
- ${isHorizontal && _rocket_chat_css_in_js.css`
1053
- width: 100%;
1054
- height: 30px;
1055
- &::before {
1056
- top: 50%;
1057
- width: 100%;
1058
- height: 4px;
1059
- transform: translateY(-50%);
1060
- }
1061
- `};
1062
- ${isVertical && _rocket_chat_css_in_js.css`
1063
- width: 30px;
1064
- height: 100%;
1065
- &::before {
1066
- left: 50%;
1067
- width: 4px;
1068
- height: 100%;
1069
- }
1070
- `};
1071
- ${state.isDisabled && _rocket_chat_css_in_js.css`
1072
- cursor: not-allowed;
1073
- opacity: 0.4;
1074
- `};
1075
- `, state);
1065
+ background: linear-gradient(${getTrackGradient()});
1066
+ transform: translateX(-50%);
1067
+ border-radius: 1rem;
1068
+ }
1069
+ ${isHorizontal && _rocket_chat_css_in_js.css`
1070
+ width: 100%;
1071
+ height: 30px;
1072
+ &::before {
1073
+ top: 50%;
1074
+ width: 100%;
1075
+ height: 4px;
1076
+ transform: translateY(-50%);
1077
+ }
1078
+ `};
1079
+ ${isVertical && _rocket_chat_css_in_js.css`
1080
+ width: 30px;
1081
+ height: 100%;
1082
+ &::before {
1083
+ left: 50%;
1084
+ width: 4px;
1085
+ height: 100%;
1086
+ }
1087
+ `};
1088
+ ${state.isDisabled && _rocket_chat_css_in_js.css`
1089
+ cursor: not-allowed;
1090
+ opacity: 0.4;
1091
+ `};
1092
+ `, state);
1076
1093
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1077
1094
  ...trackProps,
1078
1095
  ref: trackRef,
@@ -1108,16 +1125,16 @@ if (process.env.NODE_ENV !== "production") (function() {
1108
1125
  const isHorizontal = (0, react.useMemo)(() => sliderState.orientation === "horizontal", [sliderState.orientation]);
1109
1126
  const isVertical = (0, react.useMemo)(() => sliderState.orientation === "vertical", [sliderState.orientation]);
1110
1127
  const slider = useStyle(_rocket_chat_css_in_js.css`
1111
- display: flex;
1112
- ${isHorizontal && _rocket_chat_css_in_js.css`
1113
- flex-direction: column;
1114
- width: 100%;
1115
- `};
1116
- ${isVertical && _rocket_chat_css_in_js.css`
1117
- flex-direction: row-reverse;
1118
- height: 100%;
1119
- `}
1120
- `, sliderState);
1128
+ display: flex;
1129
+ ${isHorizontal && _rocket_chat_css_in_js.css`
1130
+ flex-direction: column;
1131
+ width: 100%;
1132
+ `};
1133
+ ${isVertical && _rocket_chat_css_in_js.css`
1134
+ flex-direction: row-reverse;
1135
+ height: 100%;
1136
+ `}
1137
+ `, sliderState);
1121
1138
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1122
1139
  ...groupProps,
1123
1140
  ref,
@@ -1168,8 +1185,12 @@ if (process.env.NODE_ENV !== "production") (function() {
1168
1185
  "aria-label": isPlaying ? pauseLabel : playLabel,
1169
1186
  icon: isPlaying ? "pause-shape-filled" : "play-shape-filled"
1170
1187
  }),
1171
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Margins, {
1172
- inline: 8,
1188
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
1189
+ display: "flex",
1190
+ alignItems: "center",
1191
+ flexGrow: 1,
1192
+ marginInline: 8,
1193
+ gap: 16,
1173
1194
  children: [
1174
1195
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1175
1196
  fontScale: "p2",
@@ -1438,30 +1459,30 @@ if (process.env.NODE_ENV !== "production") (function() {
1438
1459
  inlineStart
1439
1460
  ]);
1440
1461
  const marginsClassName = useStyle(_rocket_chat_css_in_js.css`
1441
- &:not(.rcx-box--full) {
1442
- ${props.all && _rocket_chat_css_in_js.css`
1443
- margin: ${spacing(props.all)};
1444
- `}
1445
- ${props.inline && _rocket_chat_css_in_js.css`
1446
- margin-inline: ${spacing(props.inline)};
1447
- `}
1462
+ &:not(.rcx-box--full) {
1463
+ ${props.all && _rocket_chat_css_in_js.css`
1464
+ margin: ${spacing(props.all)};
1465
+ `}
1466
+ ${props.inline && _rocket_chat_css_in_js.css`
1467
+ margin-inline: ${spacing(props.inline)};
1468
+ `}
1448
1469
  ${props.inlineStart && _rocket_chat_css_in_js.css`
1449
- margin-inline-start: ${spacing(props.inlineStart)};
1450
- `}
1470
+ margin-inline-start: ${spacing(props.inlineStart)};
1471
+ `}
1451
1472
  ${props.inlineEnd && _rocket_chat_css_in_js.css`
1452
- margin-inline-end: ${spacing(props.inlineEnd)};
1453
- `}
1473
+ margin-inline-end: ${spacing(props.inlineEnd)};
1474
+ `}
1454
1475
  ${props.block && _rocket_chat_css_in_js.css`
1455
- margin-block: ${spacing(props.block)};
1456
- `}
1476
+ margin-block: ${spacing(props.block)};
1477
+ `}
1457
1478
  ${props.blockStart && _rocket_chat_css_in_js.css`
1458
- margin-block-start: ${spacing(props.blockStart)};
1459
- `}
1479
+ margin-block-start: ${spacing(props.blockStart)};
1480
+ `}
1460
1481
  ${props.blockEnd && _rocket_chat_css_in_js.css`
1461
- margin-block-end: ${spacing(props.blockEnd)};
1462
- `}
1463
- }
1464
- `, props);
1482
+ margin-block-end: ${spacing(props.blockEnd)};
1483
+ `}
1484
+ }
1485
+ `, props);
1465
1486
  const patchedChildren = patchChildren(children, (childProps) => ({ className: appendClassName(childProps.className, appendClassName(className, marginsClassName)) }));
1466
1487
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BoxTransforms.Provider, {
1467
1488
  value: useComposedBoxTransform(transformFn),
@@ -1481,23 +1502,23 @@ if (process.env.NODE_ENV !== "production") (function() {
1481
1502
  name: "cross",
1482
1503
  size: "x16"
1483
1504
  });
1484
- var Chip = ({ children, className, thumbUrl, onClick, onMouseDown, renderThumb = defaultRenderThumb, renderDismissSymbol = defaultRenderDismissSymbol, ...rest }) => {
1505
+ var Chip = ({ children, className, thumbUrl, onClick, onMouseDown, renderThumb = defaultRenderThumb, renderDismissSymbol = defaultRenderDismissSymbol, small, label, ...rest }) => {
1485
1506
  const onDismiss = onClick || onMouseDown;
1486
1507
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
1487
1508
  type: "button",
1488
- className: prependClassName(className, "rcx-box rcx-chip"),
1509
+ className: prependClassName(className, `rcx-box rcx-chip${small ? " rcx-chip--small" : ""}${label ? " rcx-chip--label" : ""}`),
1489
1510
  disabled: !onDismiss,
1490
1511
  onClick: onDismiss,
1491
1512
  ...rest,
1492
1513
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Margins, {
1493
1514
  all: "x4",
1494
1515
  children: [
1495
- thumbUrl && renderThumb && renderThumb({ url: thumbUrl }),
1516
+ thumbUrl && renderThumb?.({ url: thumbUrl }),
1496
1517
  children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1497
1518
  className: "rcx-box rcx-chip__text",
1498
1519
  children
1499
1520
  }),
1500
- onDismiss && renderDismissSymbol && renderDismissSymbol()
1521
+ onDismiss && renderDismissSymbol?.()
1501
1522
  ]
1502
1523
  })
1503
1524
  });
@@ -1541,7 +1562,7 @@ if (process.env.NODE_ENV !== "production") (function() {
1541
1562
  * Usually you'll perfer to use `-Input` (e.g. <LinkTo kind='Forms/TextInput' story='Default'>`TextInput`</LinkTo>)
1542
1563
  * components over this one because it works as a construction block for them.
1543
1564
  */
1544
- function InputBox({ ref, className, startAddon, endAddon, error, hidden, invisible, multiple, placeholderVisible, type = "text", small, onChange, ...props }) {
1565
+ function InputBox({ ref, className, startAddon, endAddon, endAddonFlush, error, hidden, invisible, multiple, placeholderVisible, type = "text", small, onChange, ...props }) {
1545
1566
  const innerRef = (0, react.useRef)(null);
1546
1567
  const mergedRef = (0, _rocket_chat_fuselage_hooks.useMergedRefs)(ref, innerRef);
1547
1568
  let defaultAddon = endAddon;
@@ -1584,9 +1605,10 @@ if (process.env.NODE_ENV !== "production") (function() {
1584
1605
  ...props
1585
1606
  });
1586
1607
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(InputBoxWrapper, {
1587
- className: [props.disabled && "disabled", ...Array.isArray(className) ? className : [className]],
1608
+ className: [props.disabled && "disabled", className].filter(Boolean).join(" "),
1588
1609
  hidden,
1589
1610
  invisible,
1611
+ "rcx-input-box__wrapper--end-addon-flush": endAddonFlush,
1590
1612
  children: [
1591
1613
  startAddon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputBoxAddon, { children: startAddon }),
1592
1614
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
@@ -1611,12 +1633,13 @@ if (process.env.NODE_ENV !== "production") (function() {
1611
1633
  }
1612
1634
  //#endregion
1613
1635
  //#region src/components/Skeleton/Skeleton.tsx
1614
- var Skeleton = ({ variant = "text", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StylingBox, {
1636
+ var Skeleton = ({ variant = "text", inverted, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StylingBox, {
1615
1637
  ...props,
1616
1638
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: cx(cxx("rcx-skeleton")({
1617
1639
  text: variant === "text",
1618
1640
  rect: variant === "rect",
1619
- circle: variant === "circle"
1641
+ circle: variant === "circle",
1642
+ inverted: !!inverted
1620
1643
  })) })
1621
1644
  });
1622
1645
  //#endregion
@@ -1634,122 +1657,422 @@ if (process.env.NODE_ENV !== "production") (function() {
1634
1657
  event.nativeEvent.stopImmediatePropagation();
1635
1658
  };
1636
1659
  //#endregion
1637
- //#region src/components/CheckBox/CheckBox.tsx
1638
- function CheckBox({ ref, indeterminate, onChange, className, labelChildren, ...props }) {
1639
- const innerRef = (0, react.useRef)(null);
1640
- const mergedRef = (0, _rocket_chat_fuselage_hooks.useMergedRefs)(ref, innerRef);
1641
- (0, react.useLayoutEffect)(() => {
1642
- if (innerRef && innerRef.current && indeterminate !== void 0) innerRef.current.indeterminate = indeterminate;
1643
- }, [innerRef, indeterminate]);
1644
- const handleChange = (0, react.useCallback)((event) => {
1645
- if (innerRef && innerRef.current && indeterminate !== void 0) innerRef.current.indeterminate = indeterminate;
1646
- onChange?.call(innerRef.current, event);
1647
- }, [
1648
- innerRef,
1649
- indeterminate,
1650
- onChange
1651
- ]);
1652
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
1653
- is: "label",
1654
- className,
1655
- "rcx-check-box": true,
1656
- children: [
1657
- labelChildren,
1658
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1659
- is: "input",
1660
- type: "checkbox",
1661
- "rcx-check-box__input": true,
1662
- ref: mergedRef,
1663
- onChange: handleChange,
1664
- ...props
1665
- }),
1666
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1667
- is: "i",
1668
- "rcx-check-box__fake": true,
1669
- "aria-hidden": "true"
1670
- })
1671
- ]
1672
- });
1673
- }
1674
- //#endregion
1675
- //#region src/components/Option/OptionAvatar.tsx
1676
- var OptionAvatar = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1677
- className: "rcx-option__avatar",
1678
- ...props
1679
- });
1680
- //#endregion
1681
- //#region src/components/Option/OptionColumn.tsx
1682
- var OptionColumn = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1683
- className: "rcx-option__column",
1684
- ...props
1685
- });
1686
- //#endregion
1687
- //#region src/components/Option/OptionContent.tsx
1688
- var OptionContent = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1689
- className: "rcx-option__content",
1690
- ...props
1660
+ //#region src/components/Item/ItemContext.ts
1661
+ var ItemContext = (0, react.createContext)({
1662
+ descriptionIds: [],
1663
+ registerDescription: () => () => void 0,
1664
+ registerTitle: () => () => void 0
1691
1665
  });
1666
+ var useItemContext = () => (0, react.useContext)(ItemContext);
1692
1667
  //#endregion
1693
- //#region src/components/Option/OptionIcon.tsx
1694
- var OptionIcon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionColumn, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
1695
- size: "x20",
1696
- "rcx-option__icon": true,
1697
- ...props
1698
- }) });
1699
- //#endregion
1700
- //#region src/components/Option/Option.tsx
1668
+ //#region src/components/Item/useIdRegistry.ts
1701
1669
  /**
1702
- * The generic `Option` item of options. Can be freely used or inside the `Options` as well.
1670
+ * Collects the ids that descendants announce, so a parent can reference them
1671
+ * in ARIA relationships without the consumer wiring ids by hand.
1672
+ */
1673
+ var useIdRegistry = () => {
1674
+ const [ids, setIds] = (0, react.useState)([]);
1675
+ return [ids, (0, react.useCallback)((id) => {
1676
+ setIds((prev) => prev.includes(id) ? prev : [...prev, id]);
1677
+ return () => {
1678
+ setIds((prev) => prev.filter((value) => value !== id));
1679
+ };
1680
+ }, [])];
1681
+ };
1682
+ //#endregion
1683
+ //#region src/components/Item/Item.tsx
1684
+ /**
1685
+ * A list row composed from slots: media, icon, content and actions.
1686
+ */
1687
+ var Item = ({ is: Tag = "div", inset = "none", selected, highlighted, focused, focusVisible, disabled, variant, className, onClick, children, ...props }) => {
1688
+ const [descriptionIds, registerDescription] = useIdRegistry();
1689
+ const [titleIds, registerTitle] = useIdRegistry();
1690
+ const contextValue = (0, react.useMemo)(() => ({
1691
+ descriptionIds,
1692
+ registerDescription,
1693
+ registerTitle
1694
+ }), [
1695
+ descriptionIds,
1696
+ registerDescription,
1697
+ registerTitle
1698
+ ]);
1699
+ const isMenuItem = !!props.role?.startsWith("menuitem");
1700
+ const ariaLabelledBy = isMenuItem ? props["aria-labelledby"] ?? (titleIds.join(" ") || void 0) : props["aria-labelledby"];
1701
+ const ariaDescribedBy = isMenuItem ? [props["aria-describedby"], ...descriptionIds].filter(Boolean).join(" ") || void 0 : props["aria-describedby"];
1702
+ const handleClick = onClick ? (event) => {
1703
+ if (disabled) return;
1704
+ onClick(event);
1705
+ } : void 0;
1706
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemContext.Provider, {
1707
+ value: contextValue,
1708
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1709
+ ...props,
1710
+ "aria-labelledby": ariaLabelledBy,
1711
+ "aria-describedby": ariaDescribedBy,
1712
+ className: cx(cxx("rcx-item")({
1713
+ [`inset-${inset}`]: inset !== "none",
1714
+ "clickable": !!onClick,
1715
+ "selected": !!selected,
1716
+ "highlighted": !!highlighted,
1717
+ "focused": !!focused,
1718
+ "focus-managed": focusVisible !== void 0,
1719
+ "focus-visible": !!focusVisible,
1720
+ "disabled": !!disabled,
1721
+ "danger": variant === "danger"
1722
+ }), className),
1723
+ onClick: handleClick,
1724
+ children
1725
+ })
1726
+ });
1727
+ };
1728
+ //#endregion
1729
+ //#region src/components/Item/ItemActions.tsx
1730
+ /**
1731
+ * The trailing buttons, icon buttons or menu trigger of an `Item` or `ItemGroupHeader`.
1732
+ * Placed as a direct child it spans every row; placed inside an `ItemRow` it only takes space from that row.
1733
+ */
1734
+ var ItemActions = ({ is: Tag = "div", reveal = "always", className, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1735
+ ...props,
1736
+ className: cx(cxx("rcx-item__actions")({ "reveal-hover": reveal === "hover" }), className),
1737
+ children: reveal === "hover" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1738
+ className: "rcx-item__actions-inner",
1739
+ children
1740
+ }) : children
1741
+ });
1742
+ //#endregion
1743
+ //#region src/components/Item/ItemContent.tsx
1744
+ /**
1745
+ * The flexible, truncating column that holds the title and description, or one `ItemRow` per line.
1746
+ */
1747
+ var ItemContent = ({ is: Tag = "div", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1748
+ ...props,
1749
+ className: cx("rcx-item__content", className)
1750
+ });
1751
+ //#endregion
1752
+ //#region src/components/Item/ItemDescription.tsx
1753
+ /**
1754
+ * The secondary line of an `Item`, such as a last message preview or a username.
1755
+ */
1756
+ var ItemDescription = ({ is, inline, className, ...props }) => {
1757
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(is ?? (inline ? "span" : "div"), {
1758
+ ...props,
1759
+ className: cx(cxx("rcx-item__description")({ inline: !!inline }), className)
1760
+ });
1761
+ };
1762
+ //#endregion
1763
+ //#region src/components/Item/ItemDivider.tsx
1764
+ /**
1765
+ * The divider between groups, menu sections, or a header and its rows.
1766
+ */
1767
+ var ItemDivider = ({ is: Tag = "div", inset = "none", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1768
+ ...props,
1769
+ className: cx(cxx("rcx-item-divider")({ [`inset-${inset}`]: inset !== "none" }), className)
1770
+ });
1771
+ //#endregion
1772
+ //#region src/components/Item/ItemGroupContext.ts
1773
+ var ItemGroupContext = (0, react.createContext)({ registerTitle: () => () => void 0 });
1774
+ var useItemGroupContext = () => (0, react.useContext)(ItemGroupContext);
1775
+ //#endregion
1776
+ //#region src/components/Item/ItemGroup.tsx
1777
+ /**
1778
+ * A list of `Item` rows. An `ItemGroupTitle` inside it labels the group, and its width drives the narrow layout.
1779
+ */
1780
+ var ItemGroup = ({ is: Tag = "div", className, children, ...props }) => {
1781
+ const [titleIds, registerTitle] = useIdRegistry();
1782
+ const contextValue = (0, react.useMemo)(() => ({ registerTitle }), [registerTitle]);
1783
+ const ariaLabelledBy = !(!!props["aria-label"] || !!props["aria-labelledby"]) && titleIds.length > 0 ? titleIds.join(" ") : void 0;
1784
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupContext.Provider, {
1785
+ value: contextValue,
1786
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1787
+ "aria-labelledby": ariaLabelledBy,
1788
+ ...props,
1789
+ className: cx("rcx-item-group", className),
1790
+ children
1791
+ })
1792
+ });
1793
+ };
1794
+ //#endregion
1795
+ //#region src/components/Item/ItemGroupHeader.tsx
1796
+ /**
1797
+ * The label row of a group, such as Favorites, Recent or Moderators. It holds an `ItemGroupTitle` and optional trailing content.
1798
+ */
1799
+ var ItemGroupHeader = ({ is: Tag = "div", inset = "none", sticky, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1800
+ ...props,
1801
+ className: cx(cxx("rcx-item-group-header")({
1802
+ [`inset-${inset}`]: inset !== "none",
1803
+ sticky: !!sticky
1804
+ }), className)
1805
+ });
1806
+ //#endregion
1807
+ //#region src/components/Item/ItemGroupTitle.tsx
1808
+ /**
1809
+ * The text of an `ItemGroupHeader`. Inside an `ItemGroup`, it becomes the group's accessible name.
1810
+ */
1811
+ var ItemGroupTitle = ({ is: Tag = "div", id: propId, className, type, ...props }) => {
1812
+ const generatedId = (0, react.useId)();
1813
+ const id = propId ?? generatedId;
1814
+ const { registerTitle } = useItemGroupContext();
1815
+ (0, react.useEffect)(() => registerTitle(id), [id, registerTitle]);
1816
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1817
+ ...props,
1818
+ type: Tag === "button" ? type ?? "button" : type,
1819
+ id,
1820
+ className: cx("rcx-item-group-title", className)
1821
+ });
1822
+ };
1823
+ //#endregion
1824
+ //#region src/components/Item/ItemIcon.tsx
1825
+ /**
1826
+ * A 20px slot for the room type icon or a user status, placed before the title.
1827
+ */
1828
+ var ItemIcon = ({ is: Tag = "div", label, id: propId, className, ...props }) => {
1829
+ const generatedId = (0, react.useId)();
1830
+ const id = propId ?? generatedId;
1831
+ const { registerDescription } = useItemContext();
1832
+ (0, react.useEffect)(() => {
1833
+ if (!label) return;
1834
+ return registerDescription(id);
1835
+ }, [
1836
+ id,
1837
+ label,
1838
+ registerDescription
1839
+ ]);
1840
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1841
+ ...label ? {
1842
+ "role": "img",
1843
+ "aria-label": label
1844
+ } : { "aria-hidden": true },
1845
+ ...props,
1846
+ id,
1847
+ className: cx("rcx-item__icon", className)
1848
+ });
1849
+ };
1850
+ //#endregion
1851
+ //#region src/components/Item/ItemLink.tsx
1852
+ /**
1853
+ * The primary target of an `Item`. It covers the whole row, so actions sit beside it instead of inside it.
1854
+ */
1855
+ var ItemLink = (props) => {
1856
+ const { descriptionIds } = useItemContext();
1857
+ const ariaDescribedBy = [props["aria-describedby"], ...descriptionIds].filter(Boolean).join(" ") || void 0;
1858
+ if (props.is === "button") {
1859
+ const { is: _is, className, type = "button", ...rest } = props;
1860
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
1861
+ ...rest,
1862
+ type,
1863
+ "aria-describedby": ariaDescribedBy,
1864
+ className: cx("rcx-item__link", className)
1865
+ });
1866
+ }
1867
+ const { is: _is, className, children, ...rest } = props;
1868
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
1869
+ ...rest,
1870
+ "aria-describedby": ariaDescribedBy,
1871
+ className: cx("rcx-item__link", className),
1872
+ children
1873
+ });
1874
+ };
1875
+ //#endregion
1876
+ //#region src/components/Item/ItemMedia.tsx
1877
+ /**
1878
+ * The leading avatar, icon or thumbnail of an `Item`. Its box fits its child, so the child's size sets the row height.
1879
+ */
1880
+ var ItemMedia = ({ is: Tag = "div", variant = "default", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1881
+ ...props,
1882
+ className: cx(cxx("rcx-item__media")({ icon: variant === "icon" }), className)
1883
+ });
1884
+ //#endregion
1885
+ //#region src/components/Item/ItemMeta.tsx
1886
+ /**
1887
+ * Short trailing text, such as a timestamp, count or file size. It never truncates unless `truncate` is set.
1888
+ */
1889
+ var ItemMeta = ({ is: Tag = "div", truncate, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1890
+ ...props,
1891
+ className: cx(cxx("rcx-item__meta")({ truncate: !!truncate }), className)
1892
+ });
1893
+ //#endregion
1894
+ //#region src/components/Item/ItemRow.tsx
1895
+ /**
1896
+ * A horizontal line inside `ItemContent`, such as a title with a timestamp or a description with a badge.
1897
+ */
1898
+ var ItemRow = ({ is: Tag = "div", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1899
+ ...props,
1900
+ className: cx("rcx-item__row", className)
1901
+ });
1902
+ //#endregion
1903
+ //#region src/components/Item/ItemTitle.tsx
1904
+ /**
1905
+ * The main label of an `Item`. It truncates with an ellipsis.
1703
1906
  */
1704
- function Option({ is: Tag = "li", id, children, label, focus, selected, className, icon, gap, avatar, title, disabled, variant, onClick, description, ...props }) {
1705
- return /* @__PURE__ */ (0, react.createElement)(Tag, {
1907
+ var ItemTitle = ({ is: Tag = "div", id: propId, className, ...props }) => {
1908
+ const generatedId = (0, react.useId)();
1909
+ const id = propId ?? generatedId;
1910
+ const { registerTitle } = useItemContext();
1911
+ (0, react.useEffect)(() => registerTitle(id), [id, registerTitle]);
1912
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1706
1913
  ...props,
1707
- key: id,
1708
1914
  id,
1915
+ className: cx("rcx-item__title", className)
1916
+ });
1917
+ };
1918
+ //#endregion
1919
+ //#region src/components/Item/ItemSkeleton.tsx
1920
+ /**
1921
+ * A loading placeholder with the same height as an `Item` with the same media and lines.
1922
+ */
1923
+ var ItemSkeleton = ({ is, inset, mediaSize = "x20", description = false }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Item, {
1924
+ is,
1925
+ inset,
1926
+ "aria-hidden": true,
1927
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMedia, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
1928
+ variant: "rect",
1929
+ width: mediaSize,
1930
+ height: mediaSize
1931
+ }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ItemContent, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
1932
+ variant: "text",
1933
+ width: "60%"
1934
+ }) }), description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDescription, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
1935
+ variant: "text",
1936
+ width: "40%"
1937
+ }) })] })]
1938
+ });
1939
+ //#endregion
1940
+ //#region src/components/CheckBox/CheckBox.tsx
1941
+ function CheckBox({ ref, indeterminate, onChange, className, labelChildren, ...props }) {
1942
+ const innerRef = (0, react.useRef)(null);
1943
+ const mergedRef = (0, _rocket_chat_fuselage_hooks.useMergedRefs)(ref, innerRef);
1944
+ (0, react.useLayoutEffect)(() => {
1945
+ if (innerRef && innerRef.current && indeterminate !== void 0) innerRef.current.indeterminate = indeterminate;
1946
+ }, [innerRef, indeterminate]);
1947
+ const handleChange = (0, react.useCallback)((event) => {
1948
+ if (innerRef && innerRef.current && indeterminate !== void 0) innerRef.current.indeterminate = indeterminate;
1949
+ onChange?.call(innerRef.current, event);
1950
+ }, [
1951
+ innerRef,
1952
+ indeterminate,
1953
+ onChange
1954
+ ]);
1955
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
1956
+ is: "label",
1957
+ className,
1958
+ "rcx-check-box": true,
1959
+ children: [
1960
+ labelChildren,
1961
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1962
+ is: "input",
1963
+ type: "checkbox",
1964
+ "rcx-check-box__input": true,
1965
+ ref: mergedRef,
1966
+ onChange: handleChange,
1967
+ ...props
1968
+ }),
1969
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1970
+ is: "i",
1971
+ "rcx-check-box__fake": true,
1972
+ "aria-hidden": "true"
1973
+ })
1974
+ ]
1975
+ });
1976
+ }
1977
+ //#endregion
1978
+ //#region src/components/Option/Option.tsx
1979
+ /**
1980
+ * The generic `Option` item of options. Can be freely used or inside the `Options` as well.
1981
+ *
1982
+ * It renders an `Item` row, so its content can also be composed from `Item` parts.
1983
+ */
1984
+ function Option({ is = "li", children, label, focus, focusVisible, selected, className, icon, iconLabel, gap, avatar, disabled, variant, onClick, description, ...props }) {
1985
+ const { className: normalizedClassName } = useArrayLikeClassNameProp({ className });
1986
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Item, {
1987
+ ...props,
1988
+ ref: props.ref,
1989
+ is,
1990
+ inset: "md",
1991
+ focused: focus,
1992
+ focusVisible,
1993
+ selected,
1994
+ disabled,
1995
+ variant: variant === "danger" ? "danger" : void 0,
1709
1996
  "aria-selected": !!selected,
1710
1997
  "aria-disabled": !!disabled,
1711
- title,
1712
- onClick: (e) => {
1713
- if (disabled) {
1714
- prevent(e);
1715
- return;
1716
- }
1717
- onClick?.(e);
1718
- },
1719
- className: [
1720
- "rcx-option",
1721
- className,
1722
- focus && "rcx-option--focus",
1723
- selected && "rcx-option--selected",
1724
- disabled && "rcx-option--disabled",
1725
- variant && `rcx-option--${variant}`
1726
- ].filter(Boolean).join(" ")
1727
- }, /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1728
- className: ["rcx-option__wrapper", !!description && "rcx-option__wrapper--align-top"].filter(Boolean).join(" "),
1998
+ onClickCapture: disabled ? prevent : void 0,
1999
+ onClick: (event) => onClick?.(event),
2000
+ className: cx(cxx("rcx-option")({
2001
+ "focus": !!focus,
2002
+ "selected": !!selected,
2003
+ "disabled": !!disabled,
2004
+ "align-top": !!description
2005
+ }, variant), normalizedClassName),
1729
2006
  children: [
1730
- avatar && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionAvatar, { children: avatar }),
1731
- icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionIcon, { name: icon }),
1732
- gap && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionColumn, {}),
1733
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionContent, { children: label }),
2007
+ avatar && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMedia, {
2008
+ className: "rcx-option__avatar",
2009
+ children: avatar
2010
+ }),
2011
+ icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, {
2012
+ className: "rcx-option__column",
2013
+ label: iconLabel,
2014
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2015
+ name: icon,
2016
+ size: "x20",
2017
+ className: "rcx-option__icon"
2018
+ })
2019
+ }),
2020
+ gap && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, { className: "rcx-option__column" }),
2021
+ label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemContent, {
2022
+ className: "rcx-option__content",
2023
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, { children: label })
2024
+ }),
1734
2025
  label !== children && children
1735
2026
  ]
1736
- }));
2027
+ });
1737
2028
  }
1738
2029
  var Option_default = (0, react.memo)(Option);
1739
2030
  //#endregion
1740
2031
  //#region src/components/Option/CheckOption.tsx
1741
- var CheckOption$1 = ({ selected, children: label, ...options }) => {
2032
+ /**
2033
+ * An `Option` with a checkbox. Its selection is announced through `aria-selected`, so the checkbox is hidden from assistive technology.
2034
+ */
2035
+ var CheckOption = ({ selected, children: label, ...options }) => {
1742
2036
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, {
1743
2037
  label,
1744
2038
  selected,
1745
2039
  ...options,
1746
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckBox, { checked: selected })
2040
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckBox, {
2041
+ checked: !!selected,
2042
+ readOnly: true,
2043
+ tabIndex: -1,
2044
+ "aria-hidden": true,
2045
+ inert: true
2046
+ })
1747
2047
  });
1748
2048
  };
1749
- var CheckOption_default = (0, react.memo)(CheckOption$1);
2049
+ var CheckOption_default = (0, react.memo)(CheckOption);
2050
+ //#endregion
2051
+ //#region src/components/Option/OptionAvatar.tsx
2052
+ var OptionAvatar = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMedia, {
2053
+ className: "rcx-option__avatar",
2054
+ ...props
2055
+ });
2056
+ //#endregion
2057
+ //#region src/components/Option/OptionColumn.tsx
2058
+ /**
2059
+ * A slot of at least 20px for a status, an emoji or a short label. Empty, it lines up rows with and without icons.
2060
+ */
2061
+ var OptionColumn = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMedia, {
2062
+ className: "rcx-option__column",
2063
+ ...props
2064
+ });
2065
+ //#endregion
2066
+ //#region src/components/Option/OptionContent.tsx
2067
+ var OptionContent = ({ className, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemContent, {
2068
+ ...props,
2069
+ className: cx("rcx-option__content", className),
2070
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, { children })
2071
+ });
1750
2072
  //#endregion
1751
2073
  //#region src/components/Option/OptionDescription.tsx
1752
- var OptionDescription = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2074
+ var OptionDescription = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDescription, {
2075
+ inline: true,
1753
2076
  className: "rcx-option__description",
1754
2077
  ...props
1755
2078
  });
@@ -1761,16 +2084,21 @@ if (process.env.NODE_ENV !== "production") (function() {
1761
2084
  });
1762
2085
  //#endregion
1763
2086
  //#region src/components/Divider/Divider.tsx
1764
- var Divider = ({ variation, children, vertical, ...props }) => {
2087
+ var Divider = ({ variation, children, vertical, flush, small, stretch, ...props }) => {
1765
2088
  if (!children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1766
2089
  is: "hr",
1767
2090
  "rcx-divider": true,
1768
2091
  "rcx-divider--vertical": vertical,
2092
+ "rcx-divider--small": vertical && small,
2093
+ "rcx-divider--stretch": vertical && stretch,
2094
+ "rcx-divider--flush": flush,
1769
2095
  "rcx-divider--danger": variation === "danger",
2096
+ "rcx-divider--light": variation === "light",
1770
2097
  ...props
1771
2098
  });
1772
2099
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
1773
2100
  "rcx-message-divider": true,
2101
+ "rcx-divider--labelled": true,
1774
2102
  role: "separator",
1775
2103
  ...props,
1776
2104
  children: [
@@ -1787,33 +2115,76 @@ if (process.env.NODE_ENV !== "production") (function() {
1787
2115
  //#region src/components/Option/OptionDivider.tsx
1788
2116
  var OptionDivider = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, { ...props });
1789
2117
  //#endregion
2118
+ //#region src/components/Option/OptionIcon.tsx
2119
+ var OptionIcon = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, {
2120
+ className: "rcx-option__column",
2121
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2122
+ size: "x20",
2123
+ ...props,
2124
+ className: ["rcx-option__icon", className].filter(Boolean).join(" ")
2125
+ })
2126
+ });
2127
+ //#endregion
1790
2128
  //#region src/components/Option/OptionInput.tsx
1791
- var OptionInput = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2129
+ var OptionInput = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemActions, {
1792
2130
  className: "rcx-option__input",
1793
2131
  ...props
1794
2132
  });
1795
2133
  //#endregion
1796
2134
  //#region src/components/Option/OptionMenu.tsx
1797
- var OptionMenu = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1798
- className: "rcx-box--animated rcx-option__menu-wrapper",
1799
- ...props
2135
+ var OptionMenu = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemActions, {
2136
+ ...props,
2137
+ reveal: "hover",
2138
+ className: cx("rcx-option__menu-wrapper", className)
1800
2139
  });
1801
2140
  //#endregion
1802
2141
  //#region src/components/Option/OptionSkeleton.tsx
1803
- var OptionSkeleton = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, { width: "100%" }) });
2142
+ var OptionSkeleton = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, {
2143
+ "aria-hidden": true,
2144
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, { width: "100%" })
2145
+ });
1804
2146
  //#endregion
1805
2147
  //#region src/components/Option/OptionTitle.tsx
1806
- var OptionTitle = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2148
+ var OptionTitle = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupHeader, {
2149
+ ...props,
2150
+ inset: "md",
1807
2151
  className: "rcx-option__title",
1808
- ...props
2152
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupTitle, { children })
1809
2153
  });
1810
2154
  //#endregion
1811
2155
  //#region src/components/Option/OptionHeader.tsx
1812
- var OptionHeader = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2156
+ /**
2157
+ * A group label inside an `Options` listbox. It is presentational, so the listbox only reports its options.
2158
+ */
2159
+ var OptionHeader = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupHeader, {
2160
+ is: "li",
2161
+ role: "presentation",
2162
+ inset: "md",
1813
2163
  className: "rcx-option__header",
1814
- children
2164
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupTitle, { children })
1815
2165
  });
1816
2166
  //#endregion
2167
+ //#region src/components/PopoverSurface/PopoverSurface.tsx
2168
+ var maxHeights = {
2169
+ "half-screen": "50vh",
2170
+ "most-of-screen": "80vh"
2171
+ };
2172
+ /**
2173
+ * The raised surface of a dropdown or popover: it fills its positioner and scrolls its content.
2174
+ */
2175
+ function PopoverSurface({ maxHeight, flush, elevation = "2", ...props }) {
2176
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2177
+ "rcx-tile": true,
2178
+ "rcx-tile--elevation": elevation,
2179
+ display: "flex",
2180
+ flexDirection: "column",
2181
+ overflow: "auto",
2182
+ paddingBlock: flush ? void 0 : 12,
2183
+ maxHeight: maxHeight && maxHeights[maxHeight],
2184
+ ...props
2185
+ });
2186
+ }
2187
+ //#endregion
1817
2188
  //#region src/components/Scrollable/Scrollable.tsx
1818
2189
  var getTouchingEdges = (element) => ({
1819
2190
  top: !element.scrollTop,
@@ -1824,7 +2195,7 @@ if (process.env.NODE_ENV !== "production") (function() {
1824
2195
  var pollTouchingEdges = (element, touchingEdgesRef, onScrollContent) => {
1825
2196
  const touchingEdges = touchingEdgesRef.current;
1826
2197
  const newTouchingEdges = getTouchingEdges(element);
1827
- if (touchingEdges && (touchingEdges["top"] !== newTouchingEdges.top || touchingEdges["bottom"] !== newTouchingEdges.bottom || touchingEdges["left"] !== newTouchingEdges.left || touchingEdges["right"] !== newTouchingEdges.right)) {
2198
+ if (touchingEdges && (touchingEdges.top !== newTouchingEdges.top || touchingEdges.bottom !== newTouchingEdges.bottom || touchingEdges.left !== newTouchingEdges.left || touchingEdges.right !== newTouchingEdges.right)) {
1828
2199
  touchingEdgesRef.current = newTouchingEdges;
1829
2200
  onScrollContent?.(newTouchingEdges);
1830
2201
  }
@@ -1845,44 +2216,38 @@ if (process.env.NODE_ENV !== "production") (function() {
1845
2216
  }, 200);
1846
2217
  });
1847
2218
  const className = useStyle(_rocket_chat_css_in_js.css`
1848
- position: relative;
2219
+ position: relative;
1849
2220
 
1850
- &::-webkit-scrollbar {
1851
- width: ${4 / 16}rem;
1852
- height: ${4 / 16}rem;
1853
- }
2221
+ &::-webkit-scrollbar {
2222
+ width: ${4 / 16}rem;
2223
+ height: ${4 / 16}rem;
2224
+ }
1854
2225
 
1855
- &::-webkit-scrollbar-track {
1856
- background-color: transparent;
1857
- }
2226
+ &::-webkit-scrollbar-track {
2227
+ background-color: transparent;
2228
+ }
1858
2229
 
1859
- &::-webkit-scrollbar-thumb {
1860
- background-color: rgba(0, 0, 0, 0.05);
1861
- background-color: var(
1862
- --rcx-theme-scrollbar-thumb-color,
1863
- rgba(0, 0, 0, 0.05)
1864
- );
1865
- }
2230
+ &::-webkit-scrollbar-thumb {
2231
+ background-color: rgba(0, 0, 0, 0.05);
2232
+ background-color: var(--rcx-theme-scrollbar-thumb-color, rgba(0, 0, 0, 0.05));
2233
+ }
1866
2234
 
1867
- &:hover::-webkit-scrollbar-thumb {
1868
- background-color: rgba(0, 0, 0, 0.15);
1869
- background-color: var(
1870
- --rcx-theme-scrollbar-thumb-hover-color,
1871
- rgba(0, 0, 0, 0.15)
1872
- );
1873
- }
2235
+ &:hover::-webkit-scrollbar-thumb {
2236
+ background-color: rgba(0, 0, 0, 0.15);
2237
+ background-color: var(--rcx-theme-scrollbar-thumb-hover-color, rgba(0, 0, 0, 0.15));
2238
+ }
1874
2239
 
1875
- ${horizontal && _rocket_chat_css_in_js.css`
1876
- overflow-x: auto !important;
1877
- ` || vertical && _rocket_chat_css_in_js.css`
1878
- overflow-y: auto !important;
1879
- ` || _rocket_chat_css_in_js.css`
1880
- overflow: auto !important;
1881
- `}
1882
- ${smooth && _rocket_chat_css_in_js.css`
1883
- scroll-behavior: smooth !important;
1884
- `}
1885
- `, null);
2240
+ ${horizontal && _rocket_chat_css_in_js.css`
2241
+ overflow-x: auto !important;
2242
+ ` || vertical && _rocket_chat_css_in_js.css`
2243
+ overflow-y: auto !important;
2244
+ ` || _rocket_chat_css_in_js.css`
2245
+ overflow: auto !important;
2246
+ `}
2247
+ ${smooth && _rocket_chat_css_in_js.css`
2248
+ scroll-behavior: smooth !important;
2249
+ `}
2250
+ `, null);
1886
2251
  const transformFn = (0, react.useCallback)((props) => {
1887
2252
  props.className = className && appendClassName(props.className, className);
1888
2253
  if (onScrollContent !== void 0 && props.onScroll === void 0) props.onScroll = handleScroll;
@@ -1898,18 +2263,12 @@ if (process.env.NODE_ENV !== "production") (function() {
1898
2263
  });
1899
2264
  };
1900
2265
  //#endregion
1901
- //#region src/components/Tile/Tile.tsx
1902
- function Tile({ elevation = "1", padding = 16, ...props }) {
1903
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1904
- "rcx-tile": true,
1905
- "rcx-tile--elevation": elevation,
1906
- padding,
1907
- ...props
1908
- });
1909
- }
1910
- //#endregion
1911
2266
  //#region src/components/Options/OptionsEmpty.tsx
1912
- var OptionsEmpty = ({ customEmpty }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, { label: customEmpty || "Empty" });
2267
+ var OptionsEmpty = ({ customEmpty }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, {
2268
+ role: "option",
2269
+ disabled: true,
2270
+ label: customEmpty || "Empty"
2271
+ });
1913
2272
  var OptionsEmpty_default = (0, react.memo)(OptionsEmpty);
1914
2273
  //#endregion
1915
2274
  //#region src/components/Options/Options.tsx
@@ -1921,14 +2280,17 @@ if (process.env.NODE_ENV !== "production") (function() {
1921
2280
  (0, react.useLayoutEffect)(() => {
1922
2281
  if (!liRef.current) return;
1923
2282
  const { current } = liRef;
1924
- const li = current?.querySelector(".rcx-option--focus");
2283
+ const li = current?.querySelector(".rcx-option--focus, .rcx-item--focused");
1925
2284
  if (!li) return;
1926
2285
  if (li.offsetTop + li.clientHeight > current.scrollTop + current.clientHeight || li.offsetTop - li.clientHeight < current.scrollTop) current.scrollTop = li.offsetTop;
1927
2286
  }, [cursor]);
1928
2287
  const optionsMemoized = (0, react.useMemo)(() => options.map(([value, label, selected, disabled, type, url], i) => {
1929
2288
  switch (type) {
1930
2289
  case "heading": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionHeader, { children: label }, value);
1931
- case "divider": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionDivider, {}, value);
2290
+ case "divider": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDivider, {
2291
+ is: "li",
2292
+ "aria-hidden": true
2293
+ }, value);
1932
2294
  default: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionComponent, {
1933
2295
  role: "option",
1934
2296
  label,
@@ -1959,30 +2321,24 @@ if (process.env.NODE_ENV !== "production") (function() {
1959
2321
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1960
2322
  "rcx-options": true,
1961
2323
  ...props,
1962
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tile, {
1963
- padding: 0,
1964
- paddingBlock: "x12",
1965
- paddingInline: 0,
1966
- elevation: "2",
1967
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Scrollable, {
1968
- vertical: true,
1969
- smooth: true,
1970
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Tile, {
1971
- ref: liRef,
1972
- elevation: "0",
1973
- padding: "none",
1974
- maxHeight,
1975
- onMouseDown: prevent,
1976
- onClick: prevent,
1977
- is: "ol",
1978
- "aria-multiselectable": multiple || true,
1979
- role: "listbox",
1980
- id,
1981
- "aria-activedescendant": options?.[cursor]?.[0] ? String(options?.[cursor]?.[0]) : void 0,
1982
- children: [!options.length && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EmptyComponent, { customEmpty }), optionsMemoized]
1983
- })
2324
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PopoverSurface, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Scrollable, {
2325
+ vertical: true,
2326
+ smooth: true,
2327
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
2328
+ ref: liRef,
2329
+ borderRadius: "medium",
2330
+ backgroundColor: "light",
2331
+ maxHeight,
2332
+ onMouseDown: prevent,
2333
+ onClick: prevent,
2334
+ is: "ol",
2335
+ "aria-multiselectable": multiple || true,
2336
+ role: "listbox",
2337
+ id,
2338
+ "aria-activedescendant": options?.[cursor]?.[0] ? String(options?.[cursor]?.[0]) : void 0,
2339
+ children: [!options.length && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EmptyComponent, { customEmpty }), optionsMemoized]
1984
2340
  })
1985
- })
2341
+ }) })
1986
2342
  });
1987
2343
  }
1988
2344
  //#endregion
@@ -1990,16 +2346,14 @@ if (process.env.NODE_ENV !== "production") (function() {
1990
2346
  function OptionContainer(props) {
1991
2347
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
1992
2348
  "rcx-options": true,
1993
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tile, {
1994
- padding: 0,
1995
- paddingBlock: "x12",
1996
- paddingInline: 0,
2349
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PopoverSurface, {
2350
+ elevation: "1",
1997
2351
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Scrollable, {
1998
2352
  vertical: true,
1999
2353
  smooth: true,
2000
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tile, {
2001
- elevation: "0",
2002
- padding: "none",
2354
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2355
+ borderRadius: "medium",
2356
+ backgroundColor: "light",
2003
2357
  maxHeight: "x240",
2004
2358
  ...props
2005
2359
  })
@@ -2109,12 +2463,13 @@ if (process.env.NODE_ENV !== "production") (function() {
2109
2463
  };
2110
2464
  //#endregion
2111
2465
  //#region src/components/PositionAnimated/Position.tsx
2112
- var Position = ({ anchor, children, placement, margin, className: _className, ...props }) => {
2466
+ var Position = ({ anchor, children, placement, margin, preventScroll = false, className: _className, ...props }) => {
2113
2467
  const target = (0, react.useRef)(null);
2114
2468
  const { style: positionStyle, placement: positionPlacement } = (0, _rocket_chat_fuselage_hooks.usePosition)(anchor, target, (0, react.useMemo)(() => ({
2115
2469
  placement,
2116
2470
  margin
2117
2471
  }), [placement, margin])) || {};
2472
+ (0, _rocket_chat_fuselage_hooks.usePreventScrollOutside)(target, preventScroll);
2118
2473
  const style = (0, react.useMemo)(() => ({
2119
2474
  position: "fixed",
2120
2475
  ...positionStyle
@@ -2129,18 +2484,21 @@ if (process.env.NODE_ENV !== "production") (function() {
2129
2484
  return element;
2130
2485
  });
2131
2486
  (0, react.useEffect)(() => () => {
2132
- if (portalContainer.childNodes.length === 0) ownerDocument.body.removeChild(portalContainer);
2133
- }, [portalContainer, ownerDocument]);
2487
+ if (!portalContainer.hasChildNodes()) portalContainer.remove();
2488
+ }, [portalContainer]);
2134
2489
  return (0, react_dom.createPortal)((0, react.cloneElement)(children, {
2135
2490
  ref: target,
2136
- style,
2491
+ style: {
2492
+ ...children.props.style,
2493
+ ...style
2494
+ },
2137
2495
  ...props,
2138
2496
  placement: positionPlacement
2139
2497
  }), portalContainer);
2140
2498
  };
2141
2499
  //#endregion
2142
2500
  //#region src/components/PositionAnimated/PositionAnimated.tsx
2143
- var PositionAnimated = ({ width: _width, visible, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AnimatedVisibility, {
2501
+ var PositionAnimated = ({ visible, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AnimatedVisibility, {
2144
2502
  visibility: visible,
2145
2503
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Position, {
2146
2504
  ...props,
@@ -2211,55 +2569,54 @@ if (process.env.NODE_ENV !== "production") (function() {
2211
2569
  flexGrow: 1,
2212
2570
  className: (0, react.useMemo)(() => [error && "invalid", disabled && "disabled"], [error, disabled]),
2213
2571
  children: [
2214
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2572
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
2215
2573
  display: "flex",
2216
2574
  flexGrow: 1,
2217
2575
  alignItems: "center",
2218
2576
  flexWrap: "wrap",
2219
- margin: "neg-x4",
2577
+ gap: 4,
2220
2578
  role: "group",
2221
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Margins, {
2222
- all: "x4",
2223
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
2224
- ref: mergedRefs,
2225
- onChange: (0, _rocket_chat_fuselage_hooks.useStableCallback)((e) => setFilter?.(e.currentTarget.value)),
2226
- onBlur: handleOnBlur,
2227
- onFocus: show,
2228
- onKeyDown: handleKeyDown,
2229
- placeholder: optionsAreVisible === AnimatedVisibility.HIDDEN || !value ? placeholder : void 0,
2230
- order: 1,
2231
- "rcx-input-box--undecorated": true,
2232
- value: filter,
2233
- disabled,
2234
- ...props
2235
- }), selected.map((itemSelected) => RenderSelected ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderSelected, {
2236
- selected: itemSelected,
2237
- onRemove: handleRemove
2238
- }, itemSelected.value) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Chip_default, {
2239
- value: itemSelected.value,
2240
- onClick: handleRemove,
2241
- children: itemSelected.label
2242
- }, itemSelected.value))]
2243
- })
2579
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
2580
+ ref: mergedRefs,
2581
+ onChange: (0, _rocket_chat_fuselage_hooks.useStableCallback)((e) => setFilter?.(e.currentTarget.value)),
2582
+ onBlur: handleOnBlur,
2583
+ onFocus: show,
2584
+ onKeyDown: handleKeyDown,
2585
+ placeholder: optionsAreVisible === AnimatedVisibility.HIDDEN || !value ? placeholder : void 0,
2586
+ value: filter,
2587
+ disabled,
2588
+ ...props,
2589
+ className: [
2590
+ "rcx-input-box--undecorated",
2591
+ "rcx-autocomplete__input",
2592
+ props.className
2593
+ ].filter(Boolean).join(" ")
2594
+ }), selected.map((itemSelected) => RenderSelected ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderSelected, {
2595
+ selected: itemSelected,
2596
+ onRemove: handleRemove
2597
+ }, itemSelected.value) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Chip_default, {
2598
+ value: itemSelected.value,
2599
+ onClick: handleRemove,
2600
+ children: itemSelected.label
2601
+ }, itemSelected.value))]
2244
2602
  }),
2245
2603
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2246
2604
  "rcx-autocomplete__addon": true,
2605
+ color: "titles-labels",
2247
2606
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2248
2607
  name: optionsAreVisible === AnimatedVisibility.VISIBLE ? "cross" : "magnifier",
2249
- size: "x20",
2250
- color: "titles-labels"
2608
+ size: "x20"
2251
2609
  })
2252
2610
  }),
2253
2611
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PositionAnimated, {
2254
2612
  visible: optionsAreVisible,
2255
2613
  anchor: containerRef,
2256
2614
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Options, {
2257
- width: borderBoxSize.inlineSize,
2615
+ style: { width: borderBoxSize.inlineSize },
2258
2616
  onSelect: handleSelect,
2259
2617
  renderItem,
2260
2618
  renderEmpty,
2261
2619
  cursor,
2262
- value,
2263
2620
  options: memoizedOptions
2264
2621
  })
2265
2622
  })
@@ -2283,7 +2640,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2283
2640
  /**
2284
2641
  * Indicates an actionable user action.
2285
2642
  */
2286
- function Button({ ref, variant, primary, secondary, danger, warning, success, external, icon, is = "button", rel: _rel, size, tiny, mini, small, medium, large, square, loading, disabled, children, ...props }) {
2643
+ function Button({ ref, variant, primary, secondary, danger, warning, success, external, icon, is = "button", rel: _rel, size, tiny, mini, small, medium, large, square, compact, loading, disabled, children, ...props }) {
2287
2644
  const extraProps = is === "a" && {
2288
2645
  rel: external ? "noopener noreferrer" : void 0,
2289
2646
  target: external ? "_blank" : void 0
@@ -2303,13 +2660,13 @@ if (process.env.NODE_ENV !== "production") (function() {
2303
2660
  const effectiveSize = size || mini && "mini" || tiny && "tiny" || small && "small" || medium && "medium" || large && "large" || void 0;
2304
2661
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2305
2662
  is,
2306
- type: "button",
2307
2663
  "rcx-button": true,
2308
2664
  ...kindAndVariantProps,
2309
2665
  "rcx-button--small": effectiveSize === "small",
2310
2666
  "rcx-button--medium": effectiveSize === "medium",
2311
2667
  "rcx-button--large": effectiveSize === "large",
2312
2668
  "rcx-button--square": square,
2669
+ "rcx-button--compact": compact,
2313
2670
  "rcx-button--tiny-square": effectiveSize === "tiny" && square,
2314
2671
  "rcx-button--mini-square": effectiveSize === "mini" && square,
2315
2672
  "rcx-button--small-square": effectiveSize === "small" && square,
@@ -2324,14 +2681,14 @@ if (process.env.NODE_ENV !== "production") (function() {
2324
2681
  className: "rcx-button--content",
2325
2682
  children: [
2326
2683
  icon && !loading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2684
+ className: "rcx-button__icon",
2327
2685
  size: "x16",
2328
- name: icon,
2329
- marginInlineEnd: 4
2686
+ name: icon
2330
2687
  }),
2331
2688
  loading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2689
+ className: "rcx-button__icon",
2332
2690
  size: "x16",
2333
- name: "loading",
2334
- marginInlineEnd: 4
2691
+ name: "loading"
2335
2692
  }),
2336
2693
  children
2337
2694
  ]
@@ -2340,6 +2697,13 @@ if (process.env.NODE_ENV !== "production") (function() {
2340
2697
  }
2341
2698
  //#endregion
2342
2699
  //#region src/components/Button/IconButton.tsx
2700
+ var iconSizes = {
2701
+ mini: "x12",
2702
+ tiny: "x16",
2703
+ small: "x20",
2704
+ medium: "x24",
2705
+ large: "x28"
2706
+ };
2343
2707
  var getVariantClass = (variant) => {
2344
2708
  if (variant) return [`rcx-button--icon-${[variant].filter(Boolean).join("-")}`];
2345
2709
  return [""];
@@ -2347,8 +2711,9 @@ if (process.env.NODE_ENV !== "production") (function() {
2347
2711
  var getPressedClass = (variant) => {
2348
2712
  return [`rcx-button--icon-${[variant].filter(Boolean).join("-")}-pressed`];
2349
2713
  };
2350
- function IconButton({ icon, badge, primary, info, secondary, danger, warning, success, mini, large, tiny, small, medium, pressed, children, ...props }) {
2351
- const variant = (0, react.useMemo)(() => secondary && danger && "secondary-danger" || secondary && warning && "secondary-warning" || secondary && success && "secondary-success" || secondary && info && "secondary-info" || info && "info" || success && "success" || warning && "warning" || danger && "danger" || primary && "secondary-info" || secondary && "secondary" || "", [
2714
+ function IconButton({ icon, badge, badgePosition = "top-end", variant: variantProp, size: sizeProp, primary, info, secondary, danger, warning, success, mini, large, tiny, small, medium, pressed, is = "button", external, color, children, ...props }) {
2715
+ const variant = (0, react.useMemo)(() => (variantProp === "primary" ? "secondary-info" : variantProp) || secondary && danger && "secondary-danger" || secondary && warning && "secondary-warning" || secondary && success && "secondary-success" || secondary && info && "secondary-info" || info && "info" || success && "success" || warning && "warning" || danger && "danger" || primary && "secondary-info" || secondary && "secondary" || "", [
2716
+ variantProp,
2352
2717
  danger,
2353
2718
  info,
2354
2719
  primary,
@@ -2362,7 +2727,8 @@ if (process.env.NODE_ENV !== "production") (function() {
2362
2727
  if (pressed) variantProp[`${getPressedClass(variant)}`] = true;
2363
2728
  return variantProp;
2364
2729
  }, [variant, pressed]);
2365
- const size = (0, react.useMemo)(() => mini && "mini" || tiny && "tiny" || small && "small" || medium && "medium" || large && "large" || "large", [
2730
+ const size = (0, react.useMemo)(() => sizeProp || mini && "mini" || tiny && "tiny" || small && "small" || medium && "medium" || large && "large" || "large", [
2731
+ sizeProp,
2366
2732
  medium,
2367
2733
  mini,
2368
2734
  small,
@@ -2370,10 +2736,13 @@ if (process.env.NODE_ENV !== "production") (function() {
2370
2736
  large
2371
2737
  ]);
2372
2738
  const getSizeClass = () => ({ [`rcx-button--${size}-square`]: true });
2373
- const getIconSize = () => large && "x28" || medium && "x24" || small && "x20" || tiny && "x16" || mini && "x12" || "x28";
2739
+ const getIconSize = () => sizeProp && iconSizes[sizeProp] || large && "x28" || medium && "x24" || small && "x20" || tiny && "x16" || mini && "x12" || "x28";
2374
2740
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
2375
- is: "button",
2376
- type: "button",
2741
+ is,
2742
+ ...is === "a" ? {
2743
+ rel: external ? "noopener noreferrer" : void 0,
2744
+ target: external ? "_blank" : void 0
2745
+ } : { type: "button" },
2377
2746
  "rcx-button": true,
2378
2747
  "rcx-button--icon": true,
2379
2748
  "rcx-button--square": true,
@@ -2381,6 +2750,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2381
2750
  ...getSizeClass(),
2382
2751
  "rcx-button--icon-pressed": pressed,
2383
2752
  "rcx-button--with-badge": Boolean(badge),
2753
+ color,
2384
2754
  ...props,
2385
2755
  children: [
2386
2756
  (0, react.isValidElement)(icon) ? icon : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
@@ -2388,7 +2758,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2388
2758
  size: getIconSize()
2389
2759
  }),
2390
2760
  Boolean(badge) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2391
- className: "rcx-button__badge",
2761
+ className: `rcx-button__badge rcx-button__badge--${badgePosition}`,
2392
2762
  "aria-hidden": "true",
2393
2763
  children: badge
2394
2764
  }),
@@ -2454,7 +2824,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2454
2824
  closeable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2455
2825
  className: composeClassNames("rcx-banner__close-button")({ inline }),
2456
2826
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
2457
- small: true,
2827
+ size: "small",
2458
2828
  onClick: handleCloseButtonClick,
2459
2829
  icon: "cross"
2460
2830
  })
@@ -2480,8 +2850,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2480
2850
  ...props,
2481
2851
  children: [icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2482
2852
  name: icon,
2483
- size: "x16",
2484
- marginInlineEnd: 8
2853
+ size: "x16"
2485
2854
  }), label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: label })]
2486
2855
  });
2487
2856
  //#endregion
@@ -2524,6 +2893,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2524
2893
  className: [
2525
2894
  "rcx-button-group",
2526
2895
  stretch && "rcx-button-group--stretch",
2896
+ stretch === "equal" && "rcx-button-group--stretch-equal",
2527
2897
  vertical && "rcx-button-group--vertical",
2528
2898
  align && `rcx-button-group--align-${align}`,
2529
2899
  small && "rcx-button-group--small",
@@ -2622,7 +2992,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2622
2992
  //#region src/components/Label/LabelInfo.tsx
2623
2993
  var LabelInfo = ({ title, id, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
2624
2994
  is: "span",
2625
- marginInline: 2,
2995
+ marginInline: "x4",
2626
2996
  "rcx-label__info": true,
2627
2997
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2628
2998
  hidden: true,
@@ -2681,20 +3051,43 @@ if (process.env.NODE_ENV !== "production") (function() {
2681
3051
  ...props
2682
3052
  })
2683
3053
  });
2684
- Grid.Item = GridItem;
2685
- //#endregion
2686
- //#region src/components/CardGrid/CardGrid.tsx
2687
- var CardGrid = ({ children, breakpoints, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Grid, {
2688
- "rcx-card-grid": true,
2689
- margin: -8,
2690
- ...props,
2691
- children: react.Children.map(children, (child) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridItem, {
2692
- "rcx-card-grid__item": true,
2693
- padding: 8,
2694
- ...breakpoints,
2695
- children: child
2696
- }))
2697
- });
3054
+ Grid.Item = GridItem;
3055
+ //#endregion
3056
+ //#region src/components/CardGrid/CardGridItem.tsx
3057
+ /**
3058
+ * A `CardGrid` cell with its own column spans, for grids whose cards are not all the same width.
3059
+ */
3060
+ var CardGridItem = ({ children, xs, sm, md, lg, xl }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridItem, {
3061
+ className: "rcx-card-grid__item",
3062
+ xs,
3063
+ sm,
3064
+ md,
3065
+ lg,
3066
+ xl,
3067
+ children
3068
+ });
3069
+ //#endregion
3070
+ //#region src/components/CardGrid/CardGrid.tsx
3071
+ var CardGrid = ({ children, breakpoints, minRowHeight }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3072
+ "rcx-grid__wrapper": true,
3073
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3074
+ "rcx-grid": true,
3075
+ className: ["rcx-card-grid", minRowHeight !== void 0 && _rocket_chat_css_in_js.css`
3076
+ & > .rcx-card-grid__item {
3077
+ min-height: ${minRowHeight}px;
3078
+ }
3079
+ `],
3080
+ children: react.Children.map(children, (child) => {
3081
+ if (child === null) return null;
3082
+ if ((0, react.isValidElement)(child) && child.type === CardGridItem) return child;
3083
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridItem, {
3084
+ className: "rcx-card-grid__item",
3085
+ ...breakpoints,
3086
+ children: child
3087
+ });
3088
+ })
3089
+ })
3090
+ });
2698
3091
  //#endregion
2699
3092
  //#region src/components/CardGroup/CardGroup.tsx
2700
3093
  var CardGroup = ({ align = "start", children, stretch, vertical, wrap, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
@@ -2736,8 +3129,8 @@ if (process.env.NODE_ENV !== "production") (function() {
2736
3129
  "rcx-code-snippet__codebox": true,
2737
3130
  children
2738
3131
  }), onClick && children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
2739
- small: true,
2740
- primary: true,
3132
+ size: "small",
3133
+ variant: "primary",
2741
3134
  onClick,
2742
3135
  disabled: buttonDisabled,
2743
3136
  children: buttonText
@@ -2749,15 +3142,15 @@ if (process.env.NODE_ENV !== "production") (function() {
2749
3142
  /**
2750
3143
  * The `Contextualbar` has the purpose to persist and input information about the scope of the related page.
2751
3144
  */
2752
- function Contextualbar({ width, position, backgroundColor = "room", ...props }) {
3145
+ function Contextualbar({ stretch, position, ...props }) {
2753
3146
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2754
3147
  "rcx-vertical-bar": true,
2755
- backgroundColor,
3148
+ backgroundColor: "room",
2756
3149
  color: "default",
2757
3150
  display: "flex",
2758
3151
  flexDirection: "column",
2759
3152
  flexShrink: 0,
2760
- width,
3153
+ width: stretch ? "100%" : void 0,
2761
3154
  borderInlineStartWidth: "default",
2762
3155
  borderInlineStartColor: "extra-light",
2763
3156
  borderInlineStartStyle: "solid",
@@ -2774,8 +3167,7 @@ if (process.env.NODE_ENV !== "production") (function() {
2774
3167
  //#region src/components/Contextualbar/ContextualbarAction.tsx
2775
3168
  var ContextualbarAction = ({ name, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
2776
3169
  ...props,
2777
- small: true,
2778
- flexShrink: 0,
3170
+ size: "small",
2779
3171
  icon: name
2780
3172
  });
2781
3173
  var ContextualbarAction_default = (0, react.memo)(ContextualbarAction);
@@ -2789,10 +3181,11 @@ if (process.env.NODE_ENV !== "production") (function() {
2789
3181
  var ContextualbarButton_default = (0, react.memo)(ContextualbarButton);
2790
3182
  //#endregion
2791
3183
  //#region src/components/Contextualbar/ContextualbarContent.tsx
2792
- function ContextualbarContent(props) {
3184
+ function ContextualbarContent({ flush, spaced, ...props }) {
2793
3185
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2794
3186
  "rcx-vertical-bar__content": true,
2795
- paddingInline: 24,
3187
+ paddingInline: flush ? 0 : 24,
3188
+ paddingBlock: spaced ? 12 : void 0,
2796
3189
  display: "flex",
2797
3190
  flexDirection: "column",
2798
3191
  overflowY: "hidden",
@@ -2810,17 +3203,20 @@ if (process.env.NODE_ENV !== "production") (function() {
2810
3203
  });
2811
3204
  //#endregion
2812
3205
  //#region src/components/States/StatesIcon.tsx
2813
- var StatesIcon = ({ variation, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
3206
+ var StatesIcon = ({ variation, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2814
3207
  ...props,
2815
- "rcx-states__icon": true,
2816
- className: variation && `rcx-states__icon--${variation}`,
3208
+ className: [
3209
+ "rcx-states__icon",
3210
+ variation && `rcx-states__icon--${variation}`,
3211
+ className
3212
+ ].filter(Boolean).join(" "),
2817
3213
  size: "x32"
2818
3214
  });
2819
3215
  //#endregion
2820
3216
  //#region src/components/States/StatesAction.tsx
2821
- var StatesAction = ({ primary = true, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
3217
+ var StatesAction = ({ primary = true, variant = primary ? "primary" : void 0, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
2822
3218
  ...props,
2823
- primary
3219
+ variant
2824
3220
  });
2825
3221
  //#endregion
2826
3222
  //#region src/components/States/StatesActions.tsx
@@ -2881,13 +3277,18 @@ if (process.env.NODE_ENV !== "production") (function() {
2881
3277
  //#region src/components/Contextualbar/ContextualbarEmptyContent.tsx
2882
3278
  function ContextualbarEmptyContent({ icon = "magnifier", title = "Nothing Found", subtitle, ...props }) {
2883
3279
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContextualbarContent_default, {
2884
- justifyContent: "center",
2885
3280
  ...props,
2886
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(States, { children: [
2887
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatesIcon, { name: icon }),
2888
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatesTitle, { children: title }),
2889
- subtitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatesSubtitle, { children: subtitle })
2890
- ] })
3281
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3282
+ display: "flex",
3283
+ flexDirection: "column",
3284
+ justifyContent: "center",
3285
+ flexGrow: 1,
3286
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(States, { children: [
3287
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatesIcon, { name: icon }),
3288
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatesTitle, { children: title }),
3289
+ subtitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatesSubtitle, { children: subtitle })
3290
+ ] })
3291
+ })
2891
3292
  });
2892
3293
  }
2893
3294
  var ContextualbarEmptyContent_default = (0, react.memo)(ContextualbarEmptyContent);
@@ -2922,8 +3323,8 @@ if (process.env.NODE_ENV !== "production") (function() {
2922
3323
  marginInline: -4,
2923
3324
  paddingInline: 4,
2924
3325
  className: _rocket_chat_css_in_js.css`
2925
- gap: 8px;
2926
- `,
3326
+ gap: 8px;
3327
+ `,
2927
3328
  children
2928
3329
  })
2929
3330
  });
@@ -2932,7 +3333,6 @@ if (process.env.NODE_ENV !== "production") (function() {
2932
3333
  //#region src/components/Contextualbar/ContextualbarIcon.tsx
2933
3334
  var ContextualbarIcon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
2934
3335
  ...props,
2935
- paddingInline: 2,
2936
3336
  size: "x20"
2937
3337
  });
2938
3338
  var ContextualbarIcon_default = (0, react.memo)(ContextualbarIcon);
@@ -2957,12 +3357,14 @@ if (process.env.NODE_ENV !== "production") (function() {
2957
3357
  ...props,
2958
3358
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContextualbarHeader_default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, { width: "100%" }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
2959
3359
  padding: 24,
3360
+ display: "flex",
3361
+ flexDirection: "column",
3362
+ gap: 4,
2960
3363
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
2961
- marginBlockEnd: 4,
2962
3364
  width: "32px",
2963
3365
  height: "32px",
2964
3366
  variant: "rect"
2965
- }), Array(5).fill(5).map((_, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {}, index))]
3367
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, { children: Array(5).fill(5).map((_, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {}, index)) })]
2966
3368
  })]
2967
3369
  });
2968
3370
  var ContextualbarSkeleton_default = (0, react.memo)(ContextualbarSkeleton);
@@ -2980,21 +3382,11 @@ if (process.env.NODE_ENV !== "production") (function() {
2980
3382
  //#endregion
2981
3383
  //#region src/components/Dropdown/DropdownDesktop.tsx
2982
3384
  function DropdownDesktop({ children, style, ...props }) {
2983
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tile, {
3385
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PopoverSurface, {
2984
3386
  style,
2985
- elevation: "2",
2986
- paddingInline: "0",
2987
- paddingBlock: "0",
2988
- display: "flex",
2989
- flexDirection: "column",
2990
- overflow: "auto",
2991
3387
  "data-testid": "dropdown",
2992
3388
  ...props,
2993
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
2994
- flexShrink: 1,
2995
- paddingBlock: 12,
2996
- children: style?.visibility === "hidden" ? null : children
2997
- })
3389
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, { children: style?.visibility === "hidden" ? null : children })
2998
3390
  });
2999
3391
  }
3000
3392
  //#endregion
@@ -3009,26 +3401,21 @@ if (process.env.NODE_ENV !== "production") (function() {
3009
3401
  }
3010
3402
  //#endregion
3011
3403
  //#region src/components/Dropdown/DropdownMobile.tsx
3404
+ var bottomSheet = {
3405
+ position: "fixed",
3406
+ bottom: 0,
3407
+ left: 0,
3408
+ zIndex: 2,
3409
+ width: "100vw"
3410
+ };
3012
3411
  function DropdownMobile({ children, ...props }) {
3013
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tile, {
3014
- elevation: "2",
3015
- paddingInline: "0",
3016
- paddingBlock: "0",
3017
- width: "100vw",
3018
- maxHeight: "80%",
3019
- position: "fixed",
3020
- display: "flex",
3021
- flexDirection: "column",
3022
- overflow: "auto",
3023
- style: {
3024
- bottom: 0,
3025
- left: 0
3026
- },
3027
- zIndex: 2,
3412
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PopoverSurface, {
3413
+ flush: true,
3414
+ maxHeight: "most-of-screen",
3415
+ style: bottomSheet,
3028
3416
  "data-testid": "dropdown",
3029
3417
  ...props,
3030
3418
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3031
- flexShrink: 1,
3032
3419
  paddingBlock: 16,
3033
3420
  children
3034
3421
  })
@@ -3129,10 +3516,10 @@ if (process.env.NODE_ENV !== "production") (function() {
3129
3516
  };
3130
3517
  //#endregion
3131
3518
  //#region src/components/Field/FieldLabel.tsx
3132
- function FieldLabel(props) {
3519
+ function FieldLabel({ className, ...props }) {
3133
3520
  const component = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Label, {
3134
- "rcx-field__label": true,
3135
- ...props
3521
+ ...props,
3522
+ className: prependClassName(className, "rcx-field__label")
3136
3523
  });
3137
3524
  if (process.env.NODE_ENV === "development") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WithErrorWrapper, {
3138
3525
  context: FieldContext,
@@ -3163,403 +3550,166 @@ if (process.env.NODE_ENV !== "production") (function() {
3163
3550
  ...props
3164
3551
  });
3165
3552
  if (process.env.NODE_ENV === "development") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WithErrorWrapper, {
3166
- context: FieldContext,
3167
- parentComponent: "Field",
3168
- componentName: FieldLink.name,
3169
- children: component
3170
- });
3171
- return component;
3172
- };
3173
- //#endregion
3174
- //#region src/components/Field/FieldRow.tsx
3175
- var FieldRow = (props) => {
3176
- const component = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3177
- is: "span",
3178
- "rcx-field__row": true,
3179
- ...props
3180
- });
3181
- if (process.env.NODE_ENV === "development") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WithErrorWrapper, {
3182
- context: FieldContext,
3183
- parentComponent: "Field",
3184
- componentName: FieldRow.name,
3185
- children: component
3186
- });
3187
- return component;
3188
- };
3189
- //#endregion
3190
- //#region src/components/FieldGroup/FieldGroup.tsx
3191
- /**
3192
- * A container for grouping fields that semantically share a common data context.
3193
- */
3194
- var FieldGroup = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3195
- is: "fieldset",
3196
- "rcx-field-group": true,
3197
- role: "group",
3198
- ...props,
3199
- children: patchChildren(children, (childProps) => ({ className: appendClassName(childProps.className, "rcx-field-group__item") }))
3200
- });
3201
- //#endregion
3202
- //#region src/components/Flex/FlexContainer.tsx
3203
- function FlexContainer({ inline = false, children, direction, wrap, alignItems, alignContent, justifyContent }) {
3204
- const transformFn = (0, react.useCallback)((props) => {
3205
- if (inline !== void 0 && props.display === void 0) props.display = inline ? "inline-flex" : "flex";
3206
- if (direction !== void 0 && props.flexDirection === void 0) props.flexDirection = direction;
3207
- if (wrap !== void 0 && props.flexWrap === void 0) props.flexWrap = wrap === "no-wrap" ? "nowrap" : wrap;
3208
- if (alignItems !== void 0 && props.alignItems === void 0) props.alignItems = alignItems === "start" && "flex-start" || alignItems === "end" && "flex-end" || alignItems;
3209
- if (alignContent !== void 0 && props.alignContent === void 0) props.alignContent = alignContent === "start" && "flex-start" || alignContent === "end" && "flex-end" || alignContent;
3210
- if (justifyContent !== void 0 && props.justifyContent === void 0) props.justifyContent = justifyContent === "start" && "flex-start" || justifyContent === "end" && "flex-end" || justifyContent;
3211
- return props;
3212
- }, [
3213
- alignContent,
3214
- alignItems,
3215
- direction,
3216
- inline,
3217
- justifyContent,
3218
- wrap
3219
- ]);
3220
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BoxTransforms.Provider, {
3221
- value: useComposedBoxTransform(transformFn),
3222
- children
3223
- });
3224
- }
3225
- //#endregion
3226
- //#region src/components/Flex/FlexItem.tsx
3227
- function FlexItem({ children, order, grow, shrink, basis, align }) {
3228
- const transformFn = (0, react.useCallback)((props) => {
3229
- if (order !== void 0 && props.order === void 0) props.order = order;
3230
- if (grow !== void 0 && props.flexGrow === void 0) props.flexGrow = grow;
3231
- if (shrink !== void 0 && props.flexShrink === void 0) props.flexShrink = shrink;
3232
- if (basis !== void 0 && props.flexBasis === void 0) props.flexBasis = basis;
3233
- if (align !== void 0 && props.alignSelf === void 0) props.alignSelf = align === "start" && "flex-start" || align === "end" && "flex-end" || align;
3234
- return props;
3235
- }, [
3236
- align,
3237
- basis,
3238
- grow,
3239
- order,
3240
- shrink
3241
- ]);
3242
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BoxTransforms.Provider, {
3243
- value: useComposedBoxTransform(transformFn),
3244
- children
3245
- });
3246
- }
3247
- //#endregion
3248
- //#region src/components/FramedIcon/FramedIcon.tsx
3249
- var FramedIcon = ({ info, success, warning, danger, neutral, icon, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
3250
- ...props,
3251
- "rcx-framed-icon": true,
3252
- "rcx-framed-icon--info": info,
3253
- "rcx-framed-icon--success": success,
3254
- "rcx-framed-icon--warning": warning,
3255
- "rcx-framed-icon--danger": danger,
3256
- "rcx-framed-icon--neutral": neutral || !info && !success && !warning && !danger,
3257
- name: icon,
3258
- size: 20
3259
- });
3260
- //#endregion
3261
- //#region src/components/Item/ItemContext.ts
3262
- var ItemContext = (0, react.createContext)({
3263
- descriptionIds: [],
3264
- registerDescription: () => () => void 0
3265
- });
3266
- var useItemContext = () => (0, react.useContext)(ItemContext);
3267
- //#endregion
3268
- //#region src/components/Item/useIdRegistry.ts
3269
- /**
3270
- * Collects the ids that descendants announce, so a parent can reference them
3271
- * in ARIA relationships without the consumer wiring ids by hand.
3272
- */
3273
- var useIdRegistry = () => {
3274
- const [ids, setIds] = (0, react.useState)([]);
3275
- return [ids, (0, react.useCallback)((id) => {
3276
- setIds((prev) => prev.includes(id) ? prev : [...prev, id]);
3277
- return () => {
3278
- setIds((prev) => prev.filter((value) => value !== id));
3279
- };
3280
- }, [])];
3281
- };
3282
- //#endregion
3283
- //#region src/components/Item/Item.tsx
3284
- /**
3285
- * A list row composed from slots: media, icon, content and actions.
3286
- */
3287
- var Item = ({ is: Tag = "div", inset = "none", selected, highlighted, focused, disabled, variant, className, onClick, children, ...props }) => {
3288
- const [descriptionIds, registerDescription] = useIdRegistry();
3289
- const contextValue = (0, react.useMemo)(() => ({
3290
- descriptionIds,
3291
- registerDescription
3292
- }), [descriptionIds, registerDescription]);
3293
- const handleClick = onClick ? (event) => {
3294
- if (disabled) return;
3295
- onClick(event);
3296
- } : void 0;
3297
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemContext.Provider, {
3298
- value: contextValue,
3299
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3300
- ...props,
3301
- className: cx(cxx("rcx-item")({
3302
- [`inset-${inset}`]: inset !== "none",
3303
- clickable: !!onClick,
3304
- selected: !!selected,
3305
- highlighted: !!highlighted,
3306
- focused: !!focused,
3307
- disabled: !!disabled,
3308
- danger: variant === "danger"
3309
- }), className),
3310
- onClick: handleClick,
3311
- children
3312
- })
3313
- });
3314
- };
3315
- //#endregion
3316
- //#region src/components/Item/ItemActions.tsx
3317
- /**
3318
- * The trailing buttons, icon buttons or menu trigger of an `Item` or `ItemGroupHeader`.
3319
- * Placed as a direct child it spans every row; placed inside an `ItemRow` it only takes space from that row.
3320
- */
3321
- var ItemActions = ({ is: Tag = "div", reveal = "always", className, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3322
- ...props,
3323
- className: cx(cxx("rcx-item__actions")({ "reveal-hover": reveal === "hover" }), className),
3324
- children: reveal === "hover" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3325
- className: "rcx-item__actions-inner",
3326
- children
3327
- }) : children
3328
- });
3329
- //#endregion
3330
- //#region src/components/Item/ItemContent.tsx
3331
- /**
3332
- * The flexible, truncating column that holds the title and description, or one `ItemRow` per line.
3333
- */
3334
- var ItemContent = ({ is: Tag = "div", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3335
- ...props,
3336
- className: cx("rcx-item__content", className)
3337
- });
3338
- //#endregion
3339
- //#region src/components/Item/ItemDescription.tsx
3340
- /**
3341
- * The secondary line of an `Item`, such as a last message preview or a username.
3342
- */
3343
- var ItemDescription = ({ is, inline, className, ...props }) => {
3344
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(is ?? (inline ? "span" : "div"), {
3345
- ...props,
3346
- className: cx(cxx("rcx-item__description")({ inline: !!inline }), className)
3347
- });
3348
- };
3349
- //#endregion
3350
- //#region src/components/Item/ItemDivider.tsx
3351
- /**
3352
- * The divider between groups, menu sections, or a header and its rows.
3353
- */
3354
- var ItemDivider = ({ is: Tag = "div", inset = "none", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3355
- ...props,
3356
- className: cx(cxx("rcx-item-divider")({ [`inset-${inset}`]: inset !== "none" }), className)
3357
- });
3358
- //#endregion
3359
- //#region src/components/Item/ItemGroupContext.ts
3360
- var ItemGroupContext = (0, react.createContext)({ registerTitle: () => () => void 0 });
3361
- var useItemGroupContext = () => (0, react.useContext)(ItemGroupContext);
3362
- //#endregion
3363
- //#region src/components/Item/ItemGroup.tsx
3364
- /**
3365
- * A list of `Item` rows. An `ItemGroupTitle` inside it labels the group, and its width drives the narrow layout.
3366
- */
3367
- var ItemGroup = ({ is: Tag = "div", className, children, ...props }) => {
3368
- const [titleIds, registerTitle] = useIdRegistry();
3369
- const contextValue = (0, react.useMemo)(() => ({ registerTitle }), [registerTitle]);
3370
- const ariaLabelledBy = !(!!props["aria-label"] || !!props["aria-labelledby"]) && titleIds.length > 0 ? titleIds.join(" ") : void 0;
3371
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupContext.Provider, {
3372
- value: contextValue,
3373
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3374
- "aria-labelledby": ariaLabelledBy,
3375
- ...props,
3376
- className: cx("rcx-item-group", className),
3377
- children
3378
- })
3379
- });
3380
- };
3381
- //#endregion
3382
- //#region src/components/Item/ItemGroupHeader.tsx
3383
- /**
3384
- * The label row of a group, such as Favorites, Recent or Moderators. It holds an `ItemGroupTitle` and optional trailing content.
3385
- */
3386
- var ItemGroupHeader = ({ is: Tag = "div", inset = "none", sticky, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3387
- ...props,
3388
- className: cx(cxx("rcx-item-group-header")({
3389
- [`inset-${inset}`]: inset !== "none",
3390
- sticky: !!sticky
3391
- }), className)
3392
- });
3393
- //#endregion
3394
- //#region src/components/Item/ItemGroupTitle.tsx
3395
- /**
3396
- * The text of an `ItemGroupHeader`. Inside an `ItemGroup`, it becomes the group's accessible name.
3397
- */
3398
- var ItemGroupTitle = ({ is: Tag = "div", id: propId, className, type, ...props }) => {
3399
- const generatedId = (0, react.useId)();
3400
- const id = propId ?? generatedId;
3401
- const { registerTitle } = useItemGroupContext();
3402
- (0, react.useEffect)(() => registerTitle(id), [id, registerTitle]);
3403
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3404
- ...props,
3405
- type: Tag === "button" ? type ?? "button" : type,
3406
- id,
3407
- className: cx("rcx-item-group-title", className)
3553
+ context: FieldContext,
3554
+ parentComponent: "Field",
3555
+ componentName: FieldLink.name,
3556
+ children: component
3408
3557
  });
3558
+ return component;
3409
3559
  };
3410
3560
  //#endregion
3411
- //#region src/components/Item/ItemIcon.tsx
3412
- /**
3413
- * A 20px slot for the room type icon or a user status, placed before the title.
3414
- */
3415
- var ItemIcon = ({ is: Tag = "div", label, id: propId, className, ...props }) => {
3416
- const generatedId = (0, react.useId)();
3417
- const id = propId ?? generatedId;
3418
- const { registerDescription } = useItemContext();
3419
- (0, react.useEffect)(() => {
3420
- if (!label) return;
3421
- return registerDescription(id);
3422
- }, [
3423
- id,
3424
- label,
3425
- registerDescription
3426
- ]);
3427
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3428
- ...label ? {
3429
- "role": "img",
3430
- "aria-label": label
3431
- } : { "aria-hidden": true },
3432
- ...props,
3433
- id,
3434
- className: cx("rcx-item__icon", className)
3561
+ //#region src/components/Field/FieldRow.tsx
3562
+ var FieldRow = ({ justify, ...props }) => {
3563
+ const component = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3564
+ is: "span",
3565
+ "rcx-field__row": true,
3566
+ "rcx-field__row--justify-end": justify === "end",
3567
+ ...props
3435
3568
  });
3436
- };
3437
- //#endregion
3438
- //#region src/components/Item/ItemLink.tsx
3439
- /**
3440
- * The primary target of an `Item`. It covers the whole row, so actions sit beside it instead of inside it.
3441
- */
3442
- var ItemLink = (props) => {
3443
- const { descriptionIds } = useItemContext();
3444
- const ariaDescribedBy = [props["aria-describedby"], ...descriptionIds].filter(Boolean).join(" ") || void 0;
3445
- if (props.is === "button") {
3446
- const { is: _is, className, type = "button", ...rest } = props;
3447
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3448
- ...rest,
3449
- type,
3450
- "aria-describedby": ariaDescribedBy,
3451
- className: cx("rcx-item__link", className)
3452
- });
3453
- }
3454
- const { is: _is, className, children, ...rest } = props;
3455
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
3456
- ...rest,
3457
- "aria-describedby": ariaDescribedBy,
3458
- className: cx("rcx-item__link", className),
3459
- children
3569
+ if (process.env.NODE_ENV === "development") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WithErrorWrapper, {
3570
+ context: FieldContext,
3571
+ parentComponent: "Field",
3572
+ componentName: FieldRow.name,
3573
+ children: component
3460
3574
  });
3575
+ return component;
3461
3576
  };
3462
3577
  //#endregion
3463
- //#region src/components/Item/ItemMedia.tsx
3578
+ //#region src/components/FieldGroup/FieldGroup.tsx
3464
3579
  /**
3465
- * The leading avatar, icon or thumbnail of an `Item`. Its box fits its child, so the child's size sets the row height.
3580
+ * A container for grouping fields that semantically share a common data context.
3466
3581
  */
3467
- var ItemMedia = ({ is: Tag = "div", variant = "default", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3582
+ var FieldGroup = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3583
+ is: "fieldset",
3584
+ "rcx-field-group": true,
3585
+ role: "group",
3468
3586
  ...props,
3469
- className: cx(cxx("rcx-item__media")({ icon: variant === "icon" }), className)
3587
+ children: patchChildren(children, (childProps) => ({ className: appendClassName(childProps.className, "rcx-field-group__item") }))
3470
3588
  });
3471
3589
  //#endregion
3472
- //#region src/components/Item/ItemMeta.tsx
3473
- /**
3474
- * Short trailing text that never truncates, such as a timestamp, count or file size.
3475
- */
3476
- var ItemMeta = ({ is: Tag = "div", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3477
- ...props,
3478
- className: cx("rcx-item__meta", className)
3479
- });
3590
+ //#region src/components/Flex/FlexContainer.tsx
3591
+ function FlexContainer({ inline = false, children, direction, wrap, alignItems, alignContent, justifyContent }) {
3592
+ const transformFn = (0, react.useCallback)((props) => {
3593
+ if (inline !== void 0 && props.display === void 0) props.display = inline ? "inline-flex" : "flex";
3594
+ if (direction !== void 0 && props.flexDirection === void 0) props.flexDirection = direction;
3595
+ if (wrap !== void 0 && props.flexWrap === void 0) props.flexWrap = wrap === "no-wrap" ? "nowrap" : wrap;
3596
+ if (alignItems !== void 0 && props.alignItems === void 0) props.alignItems = alignItems === "start" && "flex-start" || alignItems === "end" && "flex-end" || alignItems;
3597
+ if (alignContent !== void 0 && props.alignContent === void 0) props.alignContent = alignContent === "start" && "flex-start" || alignContent === "end" && "flex-end" || alignContent;
3598
+ if (justifyContent !== void 0 && props.justifyContent === void 0) props.justifyContent = justifyContent === "start" && "flex-start" || justifyContent === "end" && "flex-end" || justifyContent;
3599
+ return props;
3600
+ }, [
3601
+ alignContent,
3602
+ alignItems,
3603
+ direction,
3604
+ inline,
3605
+ justifyContent,
3606
+ wrap
3607
+ ]);
3608
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BoxTransforms.Provider, {
3609
+ value: useComposedBoxTransform(transformFn),
3610
+ children
3611
+ });
3612
+ }
3480
3613
  //#endregion
3481
- //#region src/components/Item/ItemRow.tsx
3482
- /**
3483
- * A horizontal line inside `ItemContent`, such as a title with a timestamp or a description with a badge.
3484
- */
3485
- var ItemRow = ({ is: Tag = "div", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3614
+ //#region src/components/Flex/FlexItem.tsx
3615
+ function FlexItem({ children, order, grow, shrink, basis, align }) {
3616
+ const transformFn = (0, react.useCallback)((props) => {
3617
+ if (order !== void 0 && props.order === void 0) props.order = order;
3618
+ if (grow !== void 0 && props.flexGrow === void 0) props.flexGrow = grow;
3619
+ if (shrink !== void 0 && props.flexShrink === void 0) props.flexShrink = shrink;
3620
+ if (basis !== void 0 && props.flexBasis === void 0) props.flexBasis = basis;
3621
+ if (align !== void 0 && props.alignSelf === void 0) props.alignSelf = align === "start" && "flex-start" || align === "end" && "flex-end" || align;
3622
+ return props;
3623
+ }, [
3624
+ align,
3625
+ basis,
3626
+ grow,
3627
+ order,
3628
+ shrink
3629
+ ]);
3630
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BoxTransforms.Provider, {
3631
+ value: useComposedBoxTransform(transformFn),
3632
+ children
3633
+ });
3634
+ }
3635
+ //#endregion
3636
+ //#region src/components/FramedIcon/FramedIcon.tsx
3637
+ var FramedIcon = ({ info, success, warning, danger, neutral, icon, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
3486
3638
  ...props,
3487
- className: cx("rcx-item__row", className)
3639
+ className: [
3640
+ className,
3641
+ "rcx-framed-icon",
3642
+ info && "rcx-framed-icon--info",
3643
+ success && "rcx-framed-icon--success",
3644
+ warning && "rcx-framed-icon--warning",
3645
+ danger && "rcx-framed-icon--danger",
3646
+ (neutral || !info && !success && !warning && !danger) && "rcx-framed-icon--neutral"
3647
+ ].filter(Boolean).join(" "),
3648
+ name: icon,
3649
+ size: 20
3488
3650
  });
3489
3651
  //#endregion
3490
- //#region src/components/Item/ItemTitle.tsx
3652
+ //#region src/components/Listbox/Listbox.tsx
3491
3653
  /**
3492
- * The main label of an `Item`. It truncates with an ellipsis.
3654
+ * A popup list of `ListboxOption`s that a combobox controls: focus stays on the combobox, which marks the active option with `aria-activedescendant`.
3493
3655
  */
3494
- var ItemTitle = ({ is: Tag = "div", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
3495
- ...props,
3496
- className: cx("rcx-item__title", className)
3497
- });
3656
+ function Listbox({ children, ...props }) {
3657
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3658
+ is: "ul",
3659
+ role: "listbox",
3660
+ margin: 0,
3661
+ padding: 0,
3662
+ ...props,
3663
+ children
3664
+ });
3665
+ }
3498
3666
  //#endregion
3499
- //#region src/components/Item/ItemSkeleton.tsx
3667
+ //#region src/components/Listbox/ListboxOption.tsx
3668
+ var keepFocusOnCombobox = (event) => event.preventDefault();
3500
3669
  /**
3501
- * A loading placeholder with the same height as an `Item` with the same media and lines.
3670
+ * An option of a `Listbox`. It never takes focus, so pressing it leaves the focus on the combobox.
3502
3671
  */
3503
- var ItemSkeleton = ({ is, inset, mediaSize = "x20", description = false }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Item, {
3504
- is,
3505
- inset,
3506
- "aria-hidden": true,
3507
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMedia, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
3508
- variant: "rect",
3509
- width: mediaSize,
3510
- height: mediaSize
3511
- }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ItemContent, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
3512
- variant: "text",
3513
- width: "60%"
3514
- }) }), description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDescription, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Skeleton, {
3515
- variant: "text",
3516
- width: "40%"
3517
- }) })] })]
3518
- });
3519
- //#endregion
3520
- //#region src/components/Menu/MenuOption.tsx
3521
- function MenuOption({ is: Tag = "li", id, children, focus, selected, className, title, disabled, variant, onClick, ...props }) {
3522
- return /* @__PURE__ */ (0, react.createElement)(Tag, {
3523
- ...props,
3524
- key: id,
3672
+ function ListboxOption({ id, children, selected, active, focusVisible, disabled, onActivate, onSelect }) {
3673
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, {
3525
3674
  id,
3526
- "aria-selected": !!selected,
3527
- "aria-disabled": !!disabled,
3528
- title,
3529
- onClick: (e) => {
3530
- if (disabled) {
3531
- prevent(e);
3532
- return;
3533
- }
3534
- onClick?.(e);
3675
+ role: "option",
3676
+ label: children,
3677
+ selected,
3678
+ focus: active,
3679
+ focusVisible: !!focusVisible && !!active,
3680
+ disabled,
3681
+ onPointerDown: keepFocusOnCombobox,
3682
+ onPointerMove: () => {
3683
+ if (!disabled && (!active || focusVisible)) onActivate?.();
3535
3684
  },
3536
- className: [
3537
- "rcx-option",
3538
- className,
3539
- focus && "rcx-option--focus",
3540
- selected && "rcx-option--selected",
3541
- disabled && "rcx-option--disabled",
3542
- variant && `rcx-option--${variant}`
3543
- ].filter(Boolean).join(" ")
3544
- }, children);
3685
+ onClick: () => onSelect?.()
3686
+ });
3545
3687
  }
3546
- var MenuOption_default = (0, react.memo)(MenuOption);
3688
+ var ListboxOption_default = (0, react.memo)(ListboxOption);
3547
3689
  //#endregion
3548
3690
  //#region src/components/Menu/MenuItem.tsx
3691
+ /**
3692
+ * Renders a menu item as an `Item` row, so its content is composed from `Item` parts.
3693
+ */
3549
3694
  function MenuItem$1({ item, state }) {
3550
3695
  const ref = (0, react.useRef)(null);
3696
+ const { isFocusVisible } = (0, react_aria.useFocusVisible)();
3551
3697
  const { menuItemProps: { onPointerUp, ...menuItemProps }, isFocused, isDisabled } = (0, react_aria.useMenuItem)({ key: item.key }, state, ref);
3552
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(MenuOption_default, {
3698
+ const description = item.value?.description;
3699
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Item, {
3553
3700
  ...(0, react_aria.mergeProps)(menuItemProps, { onPointerDown: onPointerUp }),
3554
3701
  ref,
3555
- focus: isFocused,
3556
- disabled: isDisabled,
3557
3702
  is: "label",
3558
- variant: item.value?.variant,
3559
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3560
- className: "rcx-option__wrapper",
3561
- children: item.rendered
3562
- }), item.value && item.value.description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionDescriptionBlock, { children: item.value.description })]
3703
+ inset: "md",
3704
+ focused: isFocused,
3705
+ focusVisible: isFocused && isFocusVisible,
3706
+ disabled: isDisabled,
3707
+ variant: item.value?.variant === "danger" ? "danger" : void 0,
3708
+ className: description ? "rcx-menu-item--with-description" : void 0,
3709
+ children: [typeof item.rendered === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemContent, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, { children: item.rendered }) }) : item.rendered, description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3710
+ className: "rcx-menu-item__description",
3711
+ children: description
3712
+ })]
3563
3713
  });
3564
3714
  }
3565
3715
  //#endregion
@@ -3627,11 +3777,12 @@ if (process.env.NODE_ENV !== "production") (function() {
3627
3777
  popoverRef,
3628
3778
  ...props,
3629
3779
  portalContainer: isSubmenu ? groupContainer?.current ?? void 0 : void 0,
3630
- children: [isMobile ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DropdownMobile, { children }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DropdownDesktop, {
3631
- maxHeight: "80vh",
3632
- overflowY: "auto",
3780
+ children: [isMobile ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DropdownMobile, { children }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3633
3781
  maxWidth,
3634
- children
3782
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DropdownDesktop, {
3783
+ maxHeight: "most-of-screen",
3784
+ children
3785
+ })
3635
3786
  }), !isSubmenu && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3636
3787
  ref: containerRef,
3637
3788
  style: { display: "contents" }
@@ -3689,12 +3840,13 @@ if (process.env.NODE_ENV !== "production") (function() {
3689
3840
  }
3690
3841
  submenuTriggerProps.onKeyDown?.(event);
3691
3842
  };
3843
+ const { isFocusVisible } = (0, react_aria.useFocusVisible)();
3692
3844
  const { menuItemProps, isFocused, isDisabled } = (0, react_aria.useMenuItem)({
3693
3845
  ...submenuTriggerProps,
3694
3846
  onKeyDown: onTriggerKeyDown,
3695
3847
  key: item.key
3696
3848
  }, state, triggerRef);
3697
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuOption_default, {
3849
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Item, {
3698
3850
  ...(0, react_aria.mergeProps)(menuItemProps, {
3699
3851
  "id": submenuTriggerProps.id,
3700
3852
  "aria-haspopup": submenuTriggerProps["aria-haspopup"],
@@ -3702,20 +3854,16 @@ if (process.env.NODE_ENV !== "production") (function() {
3702
3854
  "aria-controls": submenuTriggerProps["aria-controls"]
3703
3855
  }),
3704
3856
  ref: triggerRef,
3705
- focus: isFocused,
3706
- disabled: isDisabled,
3707
3857
  is: "div",
3708
- variant: item.value?.variant,
3709
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3710
- className: "rcx-option__wrapper",
3711
- children: [item.rendered, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3712
- className: "rcx-option__input",
3713
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
3714
- name: "chevron-left",
3715
- size: "x16"
3716
- })
3717
- })]
3718
- })
3858
+ inset: "md",
3859
+ focused: isFocused,
3860
+ focusVisible: isFocused && isFocusVisible,
3861
+ disabled: isDisabled,
3862
+ variant: item.value?.variant === "danger" ? "danger" : void 0,
3863
+ children: [item.rendered, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
3864
+ name: "chevron-left",
3865
+ size: "x16"
3866
+ }) })]
3719
3867
  }), submenuTriggerState.isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuPopover, {
3720
3868
  ...popoverProps,
3721
3869
  state: submenuTriggerState,
@@ -3738,15 +3886,17 @@ if (process.env.NODE_ENV !== "production") (function() {
3738
3886
  "heading": section.rendered,
3739
3887
  "aria-label": section["aria-label"]
3740
3888
  });
3741
- const { separatorProps } = (0, react_aria.useSeparator)({ elementType: "span" });
3742
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [section.key !== state.collection.getFirstKey() && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, { ...separatorProps }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3889
+ const { separatorProps } = (0, react_aria.useSeparator)({ elementType: "div" });
3890
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [section.key !== state.collection.getFirstKey() && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDivider, { ...separatorProps }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3743
3891
  ...itemProps,
3744
- children: [section.rendered && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionTitle, {
3745
- ...headingProps,
3746
- children: section.rendered
3747
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
3892
+ children: [section.rendered && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupHeader, {
3893
+ inset: "md",
3894
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroupTitle, {
3895
+ ...headingProps,
3896
+ children: section.rendered
3897
+ })
3898
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3748
3899
  ...groupProps,
3749
- padding: "0",
3750
3900
  children: [...section.childNodes].map((node) => node.hasChildNodes ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuSubmenu, {
3751
3901
  item: node,
3752
3902
  state,
@@ -3822,14 +3972,8 @@ if (process.env.NODE_ENV !== "production") (function() {
3822
3972
  "aria-label": props["aria-label"] || title,
3823
3973
  preventFocusOnPress: true
3824
3974
  }, ref);
3825
- const { large, medium, tiny, mini } = props;
3826
- const sizes = {
3827
- large,
3828
- medium,
3829
- tiny,
3830
- mini
3831
- };
3832
- const defaultSmall = !large && !medium && !tiny && !mini;
3975
+ const { size, large, medium, tiny, mini } = props;
3976
+ const triggerSize = size || mini && "mini" || tiny && "tiny" || medium && "medium" || large && "large" || "small";
3833
3977
  const { document: ownerDocument } = useOwnerDocument();
3834
3978
  const popover = state.isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuPopover, {
3835
3979
  state,
@@ -3856,8 +4000,7 @@ if (process.env.NODE_ENV !== "production") (function() {
3856
4000
  className,
3857
4001
  title,
3858
4002
  pressed: pressed || state.isOpen,
3859
- small: defaultSmall,
3860
- ...sizes
4003
+ size: triggerSize
3861
4004
  }), detached ? (0, react_dom.createPortal)(popover, ownerDocument?.body || document.body) : popover] });
3862
4005
  };
3863
4006
  //#endregion
@@ -4045,7 +4188,7 @@ if (process.env.NODE_ENV !== "production") (function() {
4045
4188
  //#region src/components/Message/MessageEmojiBase.tsx
4046
4189
  var MessageEmojiBase = ({ name, image, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4047
4190
  className: `${className || ""} ${name}`,
4048
- style: image && image.length ? { backgroundImage: image } : void 0,
4191
+ style: image?.length ? { backgroundImage: image } : void 0,
4049
4192
  ...props
4050
4193
  });
4051
4194
  //#endregion
@@ -4130,11 +4273,10 @@ if (process.env.NODE_ENV !== "production") (function() {
4130
4273
  };
4131
4274
  //#endregion
4132
4275
  //#region src/components/Message/MessageGenericPreview/MessageGenericPreviewIcon.tsx
4133
- var MessageGenericPreviewIcon = ({ name = "attachment-file", size = 32, color = "default", type = "file" }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4276
+ var MessageGenericPreviewIcon = ({ name = "attachment-file", size = 32, type = "file" }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4134
4277
  className: "rcx-message-generic-preview__icon",
4135
4278
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
4136
4279
  name,
4137
- color,
4138
4280
  size
4139
4281
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4140
4282
  className: "rcx-message-generic-preview__icon-title",
@@ -4210,11 +4352,10 @@ if (process.env.NODE_ENV !== "production") (function() {
4210
4352
  });
4211
4353
  //#endregion
4212
4354
  //#region src/components/Message/MessageMetrics/MessageMetricsFollowing.tsx
4213
- var MessageMetricsFollowing = ({ name, badge, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
4214
- position: "relative",
4215
- overflow: "visible",
4355
+ var MessageMetricsFollowing = ({ name, badge, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
4216
4356
  ...props,
4217
- small: true,
4357
+ className: ["rcx-message-metrics__item__follow", className].filter(Boolean).join(" "),
4358
+ size: "small",
4218
4359
  icon: name,
4219
4360
  children: badge && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4220
4361
  className: "rcx-message-metrics__item__follow-badge",
@@ -4224,9 +4365,9 @@ if (process.env.NODE_ENV !== "production") (function() {
4224
4365
  //#endregion
4225
4366
  //#region src/components/Message/MessageMetrics/MessageMetricsReply.tsx
4226
4367
  var MessageMetricsReply = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MessageMetricsItem, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
4227
- primary: true,
4228
- ...props,
4229
- small: true
4368
+ variant: "primary",
4369
+ size: "small",
4370
+ ...props
4230
4371
  }) });
4231
4372
  //#endregion
4232
4373
  //#region src/components/Message/MessageName.tsx
@@ -4420,7 +4561,7 @@ if (process.env.NODE_ENV !== "production") (function() {
4420
4561
  //#region src/components/Message/MessageToolbar/MessageToolbarItem.tsx
4421
4562
  function MessageToolbarItem(props) {
4422
4563
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
4423
- small: true,
4564
+ size: "small",
4424
4565
  ...props
4425
4566
  });
4426
4567
  }
@@ -4525,8 +4666,9 @@ if (process.env.NODE_ENV !== "production") (function() {
4525
4666
  };
4526
4667
  //#endregion
4527
4668
  //#region src/components/Modal/ModalBackdrop.tsx
4528
- var ModalBackdrop = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4669
+ var ModalBackdrop = ({ transparent, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4529
4670
  "rcx-modal__backdrop": true,
4671
+ backgroundColor: transparent ? "transparent" : void 0,
4530
4672
  ...props
4531
4673
  });
4532
4674
  //#endregion
@@ -4534,12 +4676,12 @@ if (process.env.NODE_ENV !== "production") (function() {
4534
4676
  var ModalClose = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
4535
4677
  "aria-label": "Close",
4536
4678
  ...props,
4537
- small: true,
4679
+ size: "small",
4538
4680
  icon: "cross"
4539
4681
  });
4540
4682
  //#endregion
4541
4683
  //#region src/components/Modal/ModalContent.tsx
4542
- var ModalContent = ({ children, onScrollContent, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Scrollable, {
4684
+ var ModalContent = ({ children, onScrollContent, fill, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Scrollable, {
4543
4685
  vertical: true,
4544
4686
  onScrollContent,
4545
4687
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
@@ -4547,6 +4689,8 @@ if (process.env.NODE_ENV !== "production") (function() {
4547
4689
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4548
4690
  "rcx-modal__content-wrapper": true,
4549
4691
  marginInline: 24,
4692
+ height: fill ? "100%" : void 0,
4693
+ paddingBlockEnd: fill ? 16 : void 0,
4550
4694
  ...props,
4551
4695
  children
4552
4696
  })
@@ -4554,8 +4698,8 @@ if (process.env.NODE_ENV !== "production") (function() {
4554
4698
  });
4555
4699
  //#endregion
4556
4700
  //#region src/components/Modal/ModalFooter.tsx
4557
- var ModalFooter = ({ children, justifyContent = "end" }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4558
- justifyContent,
4701
+ var ModalFooter = ({ children, justify = "end" }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4702
+ justifyContent: justify,
4559
4703
  "rcx-modal__footer": true,
4560
4704
  children
4561
4705
  });
@@ -4604,20 +4748,28 @@ if (process.env.NODE_ENV !== "production") (function() {
4604
4748
  });
4605
4749
  //#endregion
4606
4750
  //#region src/components/Modal/ModalIcon.tsx
4607
- var ModalIcon = ({ size = "x20", name, alignItems = "center", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4751
+ var variantColors = {
4752
+ danger: "danger",
4753
+ warning: "status-font-on-warning",
4754
+ info: "info",
4755
+ success: "status-font-on-success"
4756
+ };
4757
+ var ModalIcon = ({ size = "x20", name, variant, align = "center", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4758
+ paddingBlock: 4,
4759
+ color: variant && variantColors[variant],
4608
4760
  ...props,
4609
4761
  display: "flex",
4610
- alignItems,
4762
+ alignItems: align,
4611
4763
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
4612
- marginBlock: 4,
4613
4764
  name,
4614
4765
  size
4615
4766
  })
4616
4767
  });
4617
4768
  //#endregion
4618
4769
  //#region src/components/Modal/ModalTagline.tsx
4619
- var ModalTagline = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4770
+ var ModalTagline = ({ subtle, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4620
4771
  "rcx-modal__tagline": true,
4772
+ color: subtle ? "annotation" : void 0,
4621
4773
  ...props,
4622
4774
  children
4623
4775
  });
@@ -4636,30 +4788,14 @@ if (process.env.NODE_ENV !== "production") (function() {
4636
4788
  children
4637
4789
  });
4638
4790
  //#endregion
4639
- //#region src/components/Select/SelectAddon.tsx
4640
- function SelectAddon(props) {
4641
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4642
- is: "div",
4643
- "rcx-select__addon": true,
4644
- ...props
4645
- });
4646
- }
4647
- //#endregion
4648
- //#region src/components/Select/SelectFocus.tsx
4649
- function SelectFocus(props) {
4791
+ //#region src/components/MultiSelect/MultiSelectAnchor.tsx
4792
+ function MultiSelectAnchor(props) {
4650
4793
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4651
4794
  fontScale: "p2m",
4652
4795
  color: "hint",
4653
4796
  "rcx-select__focus": true,
4654
4797
  is: "button",
4655
4798
  type: "button",
4656
- ...props
4657
- });
4658
- }
4659
- //#endregion
4660
- //#region src/components/MultiSelect/MultiSelectAnchor.tsx
4661
- function MultiSelectAnchor(props) {
4662
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectFocus, {
4663
4799
  "rcx-input-box--undecorated": true,
4664
4800
  order: 1,
4665
4801
  ...props
@@ -4671,6 +4807,15 @@ if (process.env.NODE_ENV !== "production") (function() {
4671
4807
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Chip_default, { ...props });
4672
4808
  });
4673
4809
  //#endregion
4810
+ //#region src/components/Select/SelectAddon.tsx
4811
+ function SelectAddon(props) {
4812
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4813
+ is: "div",
4814
+ "rcx-select__addon": true,
4815
+ ...props
4816
+ });
4817
+ }
4818
+ //#endregion
4674
4819
  //#region src/components/MultiSelect/MultiSelect.tsx
4675
4820
  /**
4676
4821
  * An input for selection of options.
@@ -4733,55 +4878,53 @@ if (process.env.NODE_ENV !== "production") (function() {
4733
4878
  inline: "x4",
4734
4879
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexContainer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4735
4880
  is: "div",
4736
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4881
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
4737
4882
  is: "div",
4738
4883
  display: "flex",
4739
4884
  alignItems: "center",
4740
4885
  flexWrap: "wrap",
4741
- margin: "-x8",
4742
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Margins, {
4743
- all: "x4",
4744
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
4745
- ref: anchorRef,
4746
- disabled: disabled ?? false,
4747
- onClick: show,
4748
- onBlur: hide,
4749
- onKeyDown: handleKeyDown,
4750
- onKeyUp: handleKeyUp,
4751
- role: "combobox",
4752
- "aria-expanded": visible === AnimatedVisibility.VISIBLE,
4753
- "aria-haspopup": "listbox",
4754
- "aria-controls": listboxId,
4755
- id,
4756
- name,
4757
- "aria-label": ariaLabel,
4758
- "aria-labelledby": ariaLabelledBy,
4759
- "aria-describedby": ariaDescribedBy,
4760
- "aria-invalid": ariaInvalid,
4761
- "aria-required": ariaRequired,
4762
- children: internalValue.length === 0 ? placeholder : null
4763
- }), internalValue.map((value) => {
4764
- const currentOption = options.find(([val]) => val === value);
4765
- return RenderSelected ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderSelected, {
4766
- value,
4767
- label: getLabel(currentOption),
4768
- onMouseDown: (e) => {
4769
- prevent(e);
4770
- internalChanged(currentOption);
4771
- removeFocusClass();
4772
- },
4773
- children: getLabel(currentOption)
4774
- }, value) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectedOptions, {
4775
- tabIndex: -1,
4776
- onMouseDown: (e) => {
4777
- prevent(e);
4778
- internalChanged(currentOption);
4779
- removeFocusClass();
4780
- },
4781
- children: getLabel(currentOption)
4782
- }, String(value));
4783
- })]
4784
- })
4886
+ margin: "-x4",
4887
+ gap: 4,
4888
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
4889
+ ref: anchorRef,
4890
+ disabled: disabled ?? false,
4891
+ onClick: show,
4892
+ onBlur: hide,
4893
+ onKeyDown: handleKeyDown,
4894
+ onKeyUp: handleKeyUp,
4895
+ role: "combobox",
4896
+ "aria-expanded": visible === AnimatedVisibility.VISIBLE,
4897
+ "aria-haspopup": "listbox",
4898
+ "aria-controls": listboxId,
4899
+ id,
4900
+ name,
4901
+ "aria-label": ariaLabel,
4902
+ "aria-labelledby": ariaLabelledBy,
4903
+ "aria-describedby": ariaDescribedBy,
4904
+ "aria-invalid": ariaInvalid,
4905
+ "aria-required": ariaRequired,
4906
+ children: internalValue.length === 0 ? placeholder : null
4907
+ }), internalValue.map((value) => {
4908
+ const currentOption = options.find(([val]) => val === value);
4909
+ return RenderSelected ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderSelected, {
4910
+ value,
4911
+ label: getLabel(currentOption),
4912
+ onMouseDown: (e) => {
4913
+ prevent(e);
4914
+ internalChanged(currentOption);
4915
+ removeFocusClass();
4916
+ },
4917
+ children: getLabel(currentOption)
4918
+ }, value) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectedOptions, {
4919
+ tabIndex: -1,
4920
+ onMouseDown: (e) => {
4921
+ prevent(e);
4922
+ internalChanged(currentOption);
4923
+ removeFocusClass();
4924
+ },
4925
+ children: getLabel(currentOption)
4926
+ }, String(value));
4927
+ })]
4785
4928
  })
4786
4929
  }) })
4787
4930
  })
@@ -4789,13 +4932,10 @@ if (process.env.NODE_ENV !== "production") (function() {
4789
4932
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexItem, {
4790
4933
  grow: 0,
4791
4934
  shrink: 0,
4792
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Margins, {
4793
- inline: "x4",
4794
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
4795
- name: visible === AnimatedVisibility.VISIBLE ? "chevron-up" : addonIcon || "chevron-down",
4796
- size: "x20"
4797
- }) })
4798
- })
4935
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
4936
+ name: visible === AnimatedVisibility.VISIBLE ? "chevron-up" : addonIcon || "chevron-down",
4937
+ size: "x20"
4938
+ }) })
4799
4939
  }),
4800
4940
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PositionAnimated, {
4801
4941
  visible,
@@ -4825,13 +4965,13 @@ if (process.env.NODE_ENV !== "production") (function() {
4825
4965
  const { placeholder, filter, setFilter } = (0, react.use)(MultiSelectFilteredContext);
4826
4966
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexItem, {
4827
4967
  grow: 1,
4968
+ order: 1,
4828
4969
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
4829
4970
  placeholder,
4830
4971
  value: filter,
4831
4972
  onInput: (e) => setFilter?.(e.currentTarget.value),
4832
4973
  ...props,
4833
- "rcx-input-box--undecorated": true,
4834
- order: 1,
4974
+ className: "rcx-input-box--undecorated",
4835
4975
  autoComplete: "off"
4836
4976
  })
4837
4977
  });
@@ -4873,10 +5013,10 @@ if (process.env.NODE_ENV !== "production") (function() {
4873
5013
  //#region src/components/NavBar/NavBarItem.tsx
4874
5014
  function NavBarItem({ children, icon, ...props }) {
4875
5015
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: icon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
4876
- "rcx-navbar-item": true,
4877
5016
  icon,
4878
- small: true,
4879
- ...props
5017
+ size: "small",
5018
+ ...props,
5019
+ className: ["rcx-navbar-item", props.className].filter(Boolean).join(" ")
4880
5020
  }) : patchChildren(children, (childProps) => ({
4881
5021
  className: appendClassName(childProps.className, "rcx-navbar-item"),
4882
5022
  ...props
@@ -4884,10 +5024,10 @@ if (process.env.NODE_ENV !== "production") (function() {
4884
5024
  }
4885
5025
  //#endregion
4886
5026
  //#region src/components/NavBar/NavBarDivider.tsx
4887
- var NavBarDivider = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, {
4888
- "rcx-navbar-divider": true,
5027
+ var NavBarDivider = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, {
4889
5028
  vertical: true,
4890
- ...props
5029
+ ...props,
5030
+ className: ["rcx-navbar-divider", className].filter(Boolean).join(" ")
4891
5031
  });
4892
5032
  //#endregion
4893
5033
  //#region src/components/NavBar/NavBarSection.tsx
@@ -4913,14 +5053,6 @@ if (process.env.NODE_ENV !== "production") (function() {
4913
5053
  //#endregion
4914
5054
  //#region src/components/OptionsPaginated/OptionsPaginated.tsx
4915
5055
  var Empty = (0, react.memo)(() => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, { label: "Empty" }));
4916
- (0, react.memo)(function CheckOption({ selected, children: label, ...options }) {
4917
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, {
4918
- label,
4919
- selected,
4920
- ...options,
4921
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckBox, { checked: selected })
4922
- });
4923
- });
4924
5056
  /**
4925
5057
  * An input for selection of options.
4926
5058
  */
@@ -4947,36 +5079,33 @@ if (process.env.NODE_ENV !== "production") (function() {
4947
5079
  "rcx-options": true,
4948
5080
  ...props,
4949
5081
  ref,
4950
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tile, {
4951
- padding: 0,
4952
- paddingBlock: "x12",
4953
- paddingInline: 0,
4954
- elevation: "2",
4955
- children: !options.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EmptyComponent, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_virtuoso.Virtuoso, {
4956
- endReached,
4957
- style: { height: "144px" },
4958
- totalCount: options.length,
4959
- data: options,
4960
- itemContent: (index, data) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionsComponentWithData, {
4961
- index,
4962
- data
4963
- })
5082
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PopoverSurface, { children: !options.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EmptyComponent, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_virtuoso.Virtuoso, {
5083
+ endReached,
5084
+ style: { height: "144px" },
5085
+ totalCount: options.length,
5086
+ data: options,
5087
+ itemContent: (index, data) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionsComponentWithData, {
5088
+ index,
5089
+ data
4964
5090
  })
4965
- })
5091
+ }) })
4966
5092
  });
4967
5093
  }
4968
5094
  //#endregion
4969
- //#region src/components/PaginatedSelect/PaginatedSelectWrapper.tsx
4970
- function PaginatedSelectWrapper(props) {
5095
+ //#region src/components/Select/SelectFocus.tsx
5096
+ function SelectFocus(props) {
4971
5097
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
4972
- is: "div",
4973
- "rcx-select__wrapper": true,
5098
+ fontScale: "p2m",
5099
+ color: "hint",
5100
+ "rcx-select__focus": true,
5101
+ is: "button",
5102
+ type: "button",
4974
5103
  ...props
4975
5104
  });
4976
5105
  }
4977
5106
  //#endregion
4978
5107
  //#region src/components/PaginatedSelect/PaginatedSelect.tsx
4979
- var PaginatedSelect = ({ value, withTitle, filter, setFilter: _setFilter, error, disabled, options = [], anchor: Anchor = SelectFocus, onChange = () => {}, placeholder, renderOptions: _Options = OptionsPaginated, renderItem = Option_default, endReached, ...props }) => {
5108
+ var PaginatedSelect = ({ value, withTitle, filter, "setFilter": _setFilter, error, disabled, options = [], "anchor": Anchor = SelectFocus, onChange = () => {}, placeholder, "renderOptions": _Options = OptionsPaginated, renderItem = Option_default, endReached, id, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, ...props }) => {
4980
5109
  const [internalValue, setInternalValue] = (0, react.useState)(value);
4981
5110
  const currentValue = value !== void 0 ? value : internalValue;
4982
5111
  const option = options.find((option) => option?.value === currentValue);
@@ -5005,7 +5134,9 @@ if (process.env.NODE_ENV !== "production") (function() {
5005
5134
  onClick: handleClick,
5006
5135
  className: (0, react.useMemo)(() => [error && "invalid", disabled && "disabled"], [error, disabled]),
5007
5136
  ...props,
5008
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(PaginatedSelectWrapper, {
5137
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
5138
+ is: "div",
5139
+ "rcx-select__wrapper": true,
5009
5140
  display: "flex",
5010
5141
  marginInline: "neg-x4",
5011
5142
  "rcx-select__wrapper--hidden": !!visibleText,
@@ -5025,16 +5156,17 @@ if (process.env.NODE_ENV !== "production") (function() {
5025
5156
  filter,
5026
5157
  ref,
5027
5158
  "aria-haspopup": "listbox",
5159
+ id,
5160
+ "aria-labelledby": ariaLabelledBy,
5161
+ "aria-describedby": ariaDescribedBy,
5162
+ "aria-invalid": ariaInvalid,
5028
5163
  onClick: show,
5029
5164
  onBlur: hide
5030
5165
  }),
5031
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Margins, {
5032
- inline: "x4",
5033
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
5034
- name: visible === AnimatedVisibility.VISIBLE ? "chevron-up" : "chevron-down",
5035
- size: "x20"
5036
- }) })
5037
- })
5166
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
5167
+ name: visible === AnimatedVisibility.VISIBLE ? "chevron-up" : "chevron-down",
5168
+ size: "x20"
5169
+ }) })
5038
5170
  ]
5039
5171
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PositionAnimated, {
5040
5172
  visible,
@@ -5057,16 +5189,13 @@ if (process.env.NODE_ENV !== "production") (function() {
5057
5189
  //#region src/components/PaginatedSelect/PaginatedSelectFiltered.tsx
5058
5190
  var PaginatedSelectFiltered = ({ filter, setFilter, options, placeholder, ...props }) => {
5059
5191
  const anchor = (0, react.useMemo)(() => ({ filter, onChange: _onChange, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
5060
- marginInline: 4,
5061
- flexGrow: 1,
5062
- className: "rcx-select__focus",
5192
+ className: "rcx-select__focus rcx-select__filter rcx-input-box--undecorated",
5063
5193
  placeholder,
5064
5194
  value: filter,
5065
5195
  onChange: (e) => {
5066
5196
  setFilter(e.currentTarget.value);
5067
5197
  },
5068
- ...props,
5069
- "rcx-input-box--undecorated": true
5198
+ ...props
5070
5199
  }), [placeholder, setFilter]);
5071
5200
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginatedSelect, {
5072
5201
  placeholder: void 0,
@@ -5078,7 +5207,7 @@ if (process.env.NODE_ENV !== "production") (function() {
5078
5207
  };
5079
5208
  //#endregion
5080
5209
  //#region src/components/PaginatedSelect/PaginatedMultiSelect.tsx
5081
- var PaginatedMultiSelect = ({ withTitle, value, filter, options = [], error, disabled, anchor: Anchor = SelectFocus, onChange = () => {}, placeholder, renderOptions: OptionsComponent = OptionsPaginated, renderItem = Option_default, endReached, ...props }) => {
5210
+ var PaginatedMultiSelect = ({ withTitle, value, filter, options = [], error, disabled, "anchor": Anchor = SelectFocus, onChange = () => {}, placeholder, "renderOptions": OptionsComponent = OptionsPaginated, renderItem = Option_default, endReached, id, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, ...props }) => {
5082
5211
  const [internalValue, setInternalValue] = (0, react.useState)(value || []);
5083
5212
  const currentValue = value !== void 0 ? value : internalValue;
5084
5213
  const selectedOptions = options.filter((option) => currentValue.some((opt) => opt.value === option.value));
@@ -5126,37 +5255,38 @@ if (process.env.NODE_ENV !== "production") (function() {
5126
5255
  inline: "x4",
5127
5256
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexContainer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
5128
5257
  is: "div",
5129
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
5258
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
5130
5259
  is: "div",
5131
5260
  display: "flex",
5132
5261
  alignItems: "center",
5133
5262
  flexWrap: "wrap",
5134
- margin: "-x8",
5263
+ margin: "neg-x4",
5264
+ gap: 8,
5135
5265
  role: "listbox",
5136
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Margins, {
5137
- all: "x4",
5138
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
5139
- disabled,
5140
- ref,
5141
- "aria-haspopup": "listbox",
5142
- onClick: show,
5143
- onBlur: hide,
5144
- order: 1,
5145
- "rcx-input-box--undecorated": true,
5146
- children: placeholder ?? null
5147
- }), selectedOptions.map(({ value, label }, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Chip_default, {
5148
- maxWidth: "x150",
5149
- withTruncatedText: true,
5150
- title: withTitle ? label : void 0,
5151
- tabIndex: -1,
5152
- role: "option",
5153
- onClick: (e) => {
5154
- prevent(e);
5155
- removeOption(value);
5156
- },
5157
- children: label
5158
- }, value ?? index))]
5159
- })
5266
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
5267
+ disabled,
5268
+ ref,
5269
+ "aria-haspopup": "listbox",
5270
+ id,
5271
+ "aria-labelledby": ariaLabelledBy,
5272
+ "aria-describedby": ariaDescribedBy,
5273
+ "aria-invalid": ariaInvalid,
5274
+ onClick: show,
5275
+ onBlur: hide,
5276
+ order: 1,
5277
+ "rcx-input-box--undecorated": true,
5278
+ children: placeholder ?? null
5279
+ }), selectedOptions.map(({ value, label }, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Chip_default, {
5280
+ className: "rcx-select__chip",
5281
+ title: withTitle ? label : void 0,
5282
+ tabIndex: -1,
5283
+ role: "option",
5284
+ onClick: (e) => {
5285
+ prevent(e);
5286
+ removeOption(value);
5287
+ },
5288
+ children: label
5289
+ }, value ?? index))]
5160
5290
  })
5161
5291
  }) })
5162
5292
  })
@@ -5164,13 +5294,10 @@ if (process.env.NODE_ENV !== "production") (function() {
5164
5294
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexItem, {
5165
5295
  grow: 0,
5166
5296
  shrink: 0,
5167
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Margins, {
5168
- inline: "x4",
5169
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
5170
- name: visible === AnimatedVisibility.VISIBLE ? "cross" : "chevron-down",
5171
- size: "x20"
5172
- }) })
5173
- })
5297
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
5298
+ name: visible === AnimatedVisibility.VISIBLE ? "cross" : "chevron-down",
5299
+ size: "x20"
5300
+ }) })
5174
5301
  }),
5175
5302
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PositionAnimated, {
5176
5303
  visible,
@@ -5196,14 +5323,14 @@ if (process.env.NODE_ENV !== "production") (function() {
5196
5323
  //#endregion
5197
5324
  //#region src/components/PaginatedSelect/PaginatedMultiSelectFiltered.tsx
5198
5325
  var PaginatedMultiSelectFiltered = ({ filter, setFilter, options, placeholder, ...props }) => {
5199
- const anchor = (0, _rocket_chat_fuselage_hooks.useStableCallback)(({ children: _children, filter, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexItem, {
5326
+ const anchor = (0, _rocket_chat_fuselage_hooks.useStableCallback)(({ children: _children, filter, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlexItem, {
5200
5327
  grow: 1,
5201
5328
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
5202
5329
  placeholder,
5203
5330
  value: filter,
5204
5331
  onInput: (e) => setFilter?.(e.currentTarget.value),
5205
5332
  ...props,
5206
- "rcx-input-box--undecorated": true
5333
+ className: ["rcx-input-box--undecorated", className].filter(Boolean).join(" ")
5207
5334
  })
5208
5335
  }));
5209
5336
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginatedMultiSelect, {
@@ -6000,11 +6127,6 @@ if (process.env.NODE_ENV !== "production") (function() {
6000
6127
  }
6001
6128
  //#endregion
6002
6129
  //#region src/components/Select/SelectLegacy.tsx
6003
- var Wrapper = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6004
- is: "div",
6005
- "rcx-select__wrapper": true,
6006
- ...props
6007
- });
6008
6130
  var useDidUpdate = (func, deps) => {
6009
6131
  const didMount = (0, react.useRef)(false);
6010
6132
  const fn = (0, _rocket_chat_fuselage_hooks.useStableCallback)(func);
@@ -6013,7 +6135,7 @@ if (process.env.NODE_ENV !== "production") (function() {
6013
6135
  didMount.current = true;
6014
6136
  }, deps || []);
6015
6137
  };
6016
- function SelectLegacy({ ref, value, filter, error, disabled, options = [], anchor: Anchor = SelectFocus, onChange = () => {}, getValue = ([value] = ["", ""]) => value, getLabel = ([, label] = ["", ""]) => label, placeholder = "", renderItem, renderSelected: RenderSelected, renderOptions: _Options = Options, addonIcon, customEmpty, ...props }) {
6138
+ function SelectLegacy({ ref, value, filter, error, disabled, options = [], "anchor": Anchor = SelectFocus, onChange = () => {}, getValue = ([value] = ["", ""]) => value, getLabel = ([, label] = ["", ""]) => label, placeholder = "", renderItem, "renderSelected": RenderSelected, "renderOptions": _Options = Options, addonIcon, customEmpty, id, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, ...props }) {
6017
6139
  const [internalValue, setInternalValue] = (0, react.useState)(value || "");
6018
6140
  const internalChangedByKeyboard = (0, _rocket_chat_fuselage_hooks.useStableCallback)(([value]) => {
6019
6141
  setInternalValue(value);
@@ -6069,7 +6191,9 @@ if (process.env.NODE_ENV !== "production") (function() {
6069
6191
  onClick: handleClick,
6070
6192
  className: (0, react.useMemo)(() => [error && "invalid", disabled && "disabled"], [error, disabled]),
6071
6193
  ...props,
6072
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Wrapper, {
6194
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
6195
+ is: "div",
6196
+ "rcx-select__wrapper": true,
6073
6197
  display: "flex",
6074
6198
  marginInline: "neg-x4",
6075
6199
  "rcx-select__wrapper--hidden": !!visibleText,
@@ -6090,6 +6214,10 @@ if (process.env.NODE_ENV !== "production") (function() {
6090
6214
  })),
6091
6215
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
6092
6216
  ref: anchorRef,
6217
+ id,
6218
+ "aria-labelledby": ariaLabelledBy,
6219
+ "aria-describedby": ariaDescribedBy,
6220
+ "aria-invalid": ariaInvalid,
6093
6221
  disabled: disabled ?? false,
6094
6222
  onClick: show,
6095
6223
  onBlur: hide,
@@ -6097,13 +6225,10 @@ if (process.env.NODE_ENV !== "production") (function() {
6097
6225
  onKeyUp: handleKeyUp,
6098
6226
  children: !value ? option || placeholder : null
6099
6227
  }),
6100
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Margins, {
6101
- inline: "x4",
6102
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
6103
- name: visible === AnimatedVisibility.VISIBLE ? "chevron-up" : addonIcon || "chevron-down",
6104
- size: "x20"
6105
- }) })
6106
- })
6228
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAddon, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
6229
+ name: visible === AnimatedVisibility.VISIBLE ? "chevron-up" : addonIcon || "chevron-down",
6230
+ size: "x20"
6231
+ }) })
6107
6232
  ]
6108
6233
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PositionAnimated, {
6109
6234
  visible,
@@ -6122,162 +6247,299 @@ if (process.env.NODE_ENV !== "production") (function() {
6122
6247
  });
6123
6248
  }
6124
6249
  //#endregion
6125
- //#region src/components/Select/Listbox.tsx
6126
- function ListBox(props) {
6127
- const ref = (0, react.useRef)(null);
6128
- const { listBoxRef = ref, state } = props;
6129
- const { listBoxProps } = (0, react_aria.useListBox)(props, state, listBoxRef);
6130
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6131
- ...listBoxProps,
6132
- ref: listBoxRef,
6133
- children: [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListBoxSection, {
6134
- section: item,
6135
- state
6136
- }, item.key) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionAria, {
6137
- item,
6138
- state
6139
- }, item.key))
6140
- });
6141
- }
6142
- function ListBoxSection({ section, state }) {
6143
- const { itemProps, headingProps, groupProps } = (0, react_aria.useListBoxSection)({
6144
- "heading": section.rendered,
6145
- "aria-label": section["aria-label"]
6146
- });
6147
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
6148
- ...itemProps,
6149
- className: "pt-2",
6150
- children: [section.rendered && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6151
- ...headingProps,
6152
- className: "text-xs font-bold uppercase text-gray-500 mx-3",
6153
- children: section.rendered
6154
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
6155
- ...groupProps,
6156
- children: [...section.childNodes].map((node) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionAria, {
6157
- item: node,
6158
- state
6159
- }, node.key))
6160
- })]
6161
- }) });
6162
- }
6163
- function OptionAria({ item, state }) {
6164
- const ref = (0, react.useRef)(null);
6165
- const { optionProps, isDisabled, isSelected, isFocused } = (0, react_aria.useOption)({ key: item.key }, state, ref);
6166
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Option_default, {
6167
- ref,
6168
- disabled: isDisabled,
6169
- selected: isSelected,
6170
- focus: isFocused,
6171
- label: item.rendered,
6172
- ...optionProps,
6173
- children: item.rendered
6174
- }, item.key);
6175
- }
6176
- //#endregion
6177
- //#region src/components/Select/SelectTrigger.tsx
6178
- function SelectTrigger({ ref, small, error, isDisabled, focus, id, ...props }) {
6179
- const { buttonProps } = (0, react_aria.useButton)(props, ref);
6180
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6181
- ...buttonProps,
6182
- id,
6183
- animated: true,
6184
- "rcx-select": true,
6185
- ref,
6186
- is: "button",
6187
- display: "flex",
6188
- flexDirection: "row",
6189
- fontScale: "p2",
6190
- justifyContent: "space-between",
6191
- "rcx-input-box--small": small,
6192
- className: [
6193
- error && "invalid",
6194
- isDisabled && "disabled",
6195
- focus && "focus"
6196
- ].filter(Boolean).join(" "),
6197
- children: props.children
6198
- });
6199
- }
6250
+ //#region src/components/Select/useTypeahead.ts
6251
+ var findMatch = (labels, query, start) => {
6252
+ for (let offset = 0; offset < labels.length; offset++) {
6253
+ const index = (start + offset) % labels.length;
6254
+ if (labels[index]?.toLocaleLowerCase().startsWith(query)) return index;
6255
+ }
6256
+ return -1;
6257
+ };
6258
+ /**
6259
+ * Hook that finds the option a user means by typing the start of its label.
6260
+ *
6261
+ * Characters typed within `timeout` of each other build up one query; typing the same character again
6262
+ * cycles through the options that start with it.
6263
+ *
6264
+ * @param timeout - the pause, in milliseconds, after which typing starts a new query
6265
+ * @returns `search`, a stable function that takes the typed character, the option labels and the index of the current option,
6266
+ * and returns the index of the matching option, or -1; `isSearching`, which tells whether a query is still being typed,
6267
+ * so a space can extend it instead of acting on the option; and `reset`, which drops the query once the interaction ends
6268
+ */
6269
+ var useTypeahead = (timeout = 500) => {
6270
+ const queryRef = (0, react.useRef)("");
6271
+ const lastTypedAtRef = (0, react.useRef)(0);
6272
+ const isSearching = (0, _rocket_chat_fuselage_hooks.useStableCallback)(() => queryRef.current !== "" && Date.now() - lastTypedAtRef.current <= timeout);
6273
+ return {
6274
+ search: (0, _rocket_chat_fuselage_hooks.useStableCallback)((character, labels, current) => {
6275
+ const now = Date.now();
6276
+ if (now - lastTypedAtRef.current > timeout) queryRef.current = "";
6277
+ lastTypedAtRef.current = now;
6278
+ queryRef.current += character.toLocaleLowerCase();
6279
+ const query = queryRef.current;
6280
+ const isRepeatedCharacter = [...query].every((typed) => typed === query[0]);
6281
+ if (query.length > 1 && !isRepeatedCharacter) return findMatch(labels, query, Math.max(current, 0));
6282
+ return findMatch(labels, query[0] ?? "", current + 1);
6283
+ }),
6284
+ isSearching,
6285
+ reset: (0, _rocket_chat_fuselage_hooks.useStableCallback)(() => {
6286
+ queryRef.current = "";
6287
+ })
6288
+ };
6289
+ };
6200
6290
  //#endregion
6201
- //#region src/components/Select/SelectAria.tsx
6202
- function SelectAria({ ref: outerRef, error, placeholder, value, onChange, small, isDisabled: isDisabledProps, disabled, id, ...props }) {
6203
- const isDisabled = isDisabledProps || disabled;
6204
- const state = (0, react_stately.useSelectState)({
6205
- isDisabled,
6206
- selectedKey: typeof value !== "bigint" ? value : null,
6207
- onSelectionChange: onChange,
6208
- ...props
6291
+ //#region src/components/Select/Select.tsx
6292
+ var PAGE_SIZE = 10;
6293
+ var isTriggerProp = (name) => name.startsWith("aria-") || name.startsWith("data-") || [
6294
+ "className",
6295
+ "title",
6296
+ "autoFocus",
6297
+ "tabIndex"
6298
+ ].includes(name);
6299
+ var pickTriggerProps = (props) => Object.fromEntries(Object.entries(props).filter(([name]) => isTriggerProp(name)));
6300
+ var isPrintableCharacter = (event) => event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;
6301
+ var getLabelText = (element) => Array.from(element?.labels ?? []).map((label) => label.textContent?.trim()).filter(Boolean).join(" ") || void 0;
6302
+ /**
6303
+ * An input for selection of options: a button that opens a listbox of its options, named by a `label` pointing at its `id`
6304
+ * like any other input, or by `aria-label` or `aria-labelledby`.
6305
+ */
6306
+ function Select({ ref: outerRef, options, value, defaultSelectedKey, onChange, placeholder, error, small, disabled, name, id: idProp, onFocus, onBlur, onKeyDown, ...props }) {
6307
+ const generatedId = (0, react.useId)();
6308
+ const id = idProp ?? generatedId;
6309
+ const listboxId = `${id}-listbox`;
6310
+ const getOptionId = (0, react.useCallback)((index) => `${id}-option-${index}`, [id]);
6311
+ const [uncontrolledValue, setUncontrolledValue] = (0, react.useState)(defaultSelectedKey);
6312
+ const selectedKey = value !== void 0 ? value : uncontrolledValue;
6313
+ const selectedIndex = selectedKey === null || selectedKey === void 0 ? -1 : options.findIndex(([key]) => key === String(selectedKey));
6314
+ const selectedOption = options[selectedIndex];
6315
+ const overlayState = (0, react_stately.useOverlayTriggerState)({});
6316
+ const { active, setActive, focusVisible, setFocusVisible, moveByKeyboard, moveByPointer } = (0, _rocket_chat_fuselage_hooks.useActiveDescendant)();
6317
+ const { search: findByTypeahead, isSearching, reset: resetTypeahead } = useTypeahead();
6318
+ const triggerRef = (0, react.useRef)(null);
6319
+ const { ref: resizeRef, borderBoxSize } = (0, _rocket_chat_fuselage_hooks.useResizeObserver)();
6320
+ const mergedRef = (0, _rocket_chat_fuselage_hooks.useMergedRefs)(outerRef, triggerRef, resizeRef);
6321
+ const [listboxName, setListboxName] = (0, react.useState)();
6322
+ const [triggerFocusVisible, setTriggerFocusVisible] = (0, react.useState)(false);
6323
+ const open = (index, byKeyboard) => {
6324
+ if (disabled || options.length === 0) return;
6325
+ setListboxName(getLabelText(triggerRef.current));
6326
+ overlayState.open();
6327
+ if (byKeyboard) {
6328
+ moveByKeyboard(index);
6329
+ return;
6330
+ }
6331
+ setActive(index);
6332
+ setFocusVisible(false);
6333
+ };
6334
+ const close = () => {
6335
+ overlayState.close();
6336
+ setActive(void 0);
6337
+ resetTypeahead();
6338
+ };
6339
+ const select = (index) => {
6340
+ const option = options[index];
6341
+ close();
6342
+ if (!option || index === selectedIndex) return;
6343
+ setUncontrolledValue(option[0]);
6344
+ onChange?.(option[0]);
6345
+ };
6346
+ const labels = options.map(([key, label]) => label ?? key);
6347
+ const lastIndex = options.length - 1;
6348
+ const activeIndex = active ?? -1;
6349
+ const initialIndex = selectedIndex >= 0 ? selectedIndex : 0;
6350
+ const handleKeyDown = (0, _rocket_chat_fuselage_hooks.useStableCallback)((event) => {
6351
+ onKeyDown?.(event);
6352
+ if (event.defaultPrevented) return;
6353
+ if (event.key === " " && isSearching()) {
6354
+ event.preventDefault();
6355
+ const match = findByTypeahead(event.key, labels, overlayState.isOpen ? activeIndex : selectedIndex);
6356
+ if (match >= 0) {
6357
+ if (overlayState.isOpen) moveByKeyboard(match);
6358
+ else open(match, true);
6359
+ }
6360
+ return;
6361
+ }
6362
+ if (!overlayState.isOpen) {
6363
+ switch (event.key) {
6364
+ case "ArrowDown":
6365
+ case "ArrowUp":
6366
+ case "Enter":
6367
+ case " ":
6368
+ event.preventDefault();
6369
+ open(initialIndex, true);
6370
+ return;
6371
+ case "Home":
6372
+ event.preventDefault();
6373
+ open(0, true);
6374
+ return;
6375
+ case "End":
6376
+ event.preventDefault();
6377
+ open(lastIndex, true);
6378
+ return;
6379
+ }
6380
+ if (isPrintableCharacter(event)) {
6381
+ const match = findByTypeahead(event.key, labels, selectedIndex);
6382
+ if (match >= 0) open(match, true);
6383
+ }
6384
+ return;
6385
+ }
6386
+ switch (event.key) {
6387
+ case "ArrowDown":
6388
+ event.preventDefault();
6389
+ moveByKeyboard(Math.min(activeIndex + 1, lastIndex));
6390
+ return;
6391
+ case "ArrowUp":
6392
+ event.preventDefault();
6393
+ if (event.altKey) {
6394
+ select(activeIndex);
6395
+ return;
6396
+ }
6397
+ moveByKeyboard(Math.max(activeIndex - 1, 0));
6398
+ return;
6399
+ case "Home":
6400
+ event.preventDefault();
6401
+ moveByKeyboard(0);
6402
+ return;
6403
+ case "End":
6404
+ event.preventDefault();
6405
+ moveByKeyboard(lastIndex);
6406
+ return;
6407
+ case "PageDown":
6408
+ event.preventDefault();
6409
+ moveByKeyboard(Math.min(activeIndex + PAGE_SIZE, lastIndex));
6410
+ return;
6411
+ case "PageUp":
6412
+ event.preventDefault();
6413
+ moveByKeyboard(Math.max(activeIndex - PAGE_SIZE, 0));
6414
+ return;
6415
+ case "Enter":
6416
+ case " ":
6417
+ event.preventDefault();
6418
+ select(activeIndex);
6419
+ return;
6420
+ case "Tab":
6421
+ select(activeIndex);
6422
+ return;
6423
+ case "Escape":
6424
+ event.preventDefault();
6425
+ event.stopPropagation();
6426
+ close();
6427
+ return;
6428
+ }
6429
+ if (isPrintableCharacter(event)) {
6430
+ const match = findByTypeahead(event.key, labels, activeIndex);
6431
+ if (match >= 0) moveByKeyboard(match);
6432
+ }
6209
6433
  });
6210
- const { ref, borderBoxSize } = (0, _rocket_chat_fuselage_hooks.useResizeObserver)();
6211
- const mergedRef = (0, _rocket_chat_fuselage_hooks.useMergedRefs)(outerRef, ref);
6212
- const { triggerProps, valueProps, menuProps } = (0, react_aria.useSelect)({
6213
- isDisabled,
6214
- ...props
6215
- }, state, ref);
6216
- const { focusProps, isFocusVisible } = (0, react_aria.useFocusRing)();
6434
+ const handleFocus = (event) => {
6435
+ setTriggerFocusVisible(event.currentTarget.matches?.(":focus-visible") ?? false);
6436
+ onFocus?.(event);
6437
+ };
6438
+ const handleBlur = (event) => {
6439
+ setTriggerFocusVisible(false);
6440
+ close();
6441
+ onBlur?.(event);
6442
+ };
6443
+ const handleMouseDown = (event) => {
6444
+ if (overlayState.isOpen) event.preventDefault();
6445
+ };
6446
+ const handleClick = (event) => {
6447
+ event.currentTarget.focus();
6448
+ if (overlayState.isOpen) {
6449
+ close();
6450
+ return;
6451
+ }
6452
+ open(initialIndex, false);
6453
+ };
6454
+ (0, react.useEffect)(() => {
6455
+ if (!overlayState.isOpen || active === void 0) return;
6456
+ triggerRef.current?.ownerDocument.getElementById(getOptionId(active))?.scrollIntoView?.({ block: "nearest" });
6457
+ }, [
6458
+ overlayState.isOpen,
6459
+ active,
6460
+ getOptionId
6461
+ ]);
6462
+ const { isOpen } = overlayState;
6217
6463
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
6218
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6219
- position: "relative",
6220
- size: 0,
6221
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria.HiddenSelect, {
6222
- state,
6223
- triggerRef: ref,
6224
- label: props.label,
6225
- name: props.name,
6226
- isDisabled
6227
- })
6464
+ name !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
6465
+ type: "hidden",
6466
+ name,
6467
+ disabled,
6468
+ value: selectedKey === null || selectedKey === void 0 ? "" : String(selectedKey)
6228
6469
  }),
6229
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(SelectTrigger, {
6230
- ...(0, react_aria.mergeProps)(focusProps, triggerProps),
6470
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
6471
+ ...pickTriggerProps(props),
6472
+ is: "button",
6473
+ type: "button",
6231
6474
  ref: mergedRef,
6232
- small,
6233
- focus: isFocusVisible || state.isOpen,
6234
- error,
6235
6475
  id,
6476
+ role: "combobox",
6477
+ "aria-haspopup": "listbox",
6478
+ "aria-expanded": isOpen,
6479
+ "aria-controls": isOpen ? listboxId : void 0,
6480
+ "aria-activedescendant": isOpen && active !== void 0 ? getOptionId(active) : void 0,
6481
+ "aria-invalid": props["aria-invalid"] ?? (error ? true : void 0),
6482
+ disabled,
6483
+ animated: true,
6484
+ "rcx-select": true,
6485
+ display: "flex",
6486
+ flexDirection: "row",
6487
+ fontScale: "p2",
6488
+ justifyContent: "space-between",
6489
+ "rcx-input-box--small": small,
6490
+ className: [
6491
+ error && "invalid",
6492
+ disabled && "disabled",
6493
+ (triggerFocusVisible || isOpen) && "focus",
6494
+ props.className
6495
+ ].filter(Boolean).join(" "),
6496
+ onMouseDown: handleMouseDown,
6497
+ onClick: handleClick,
6498
+ onKeyDown: handleKeyDown,
6499
+ onFocus: handleFocus,
6500
+ onBlur: handleBlur,
6236
6501
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6237
6502
  is: "span",
6238
- color: state.selectedItem ? "titles-labels" : "hint",
6239
- ...valueProps,
6503
+ color: selectedOption ? "titles-labels" : "hint",
6240
6504
  ...small && { fontScale: "c1" },
6241
- children: state.selectedItem ? state.selectedItem.rendered : placeholder
6505
+ children: selectedOption ? selectedOption[1] ?? selectedOption[0] : placeholder
6242
6506
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
6243
- color: "titles-labels",
6244
- name: state.isOpen ? "chevron-up" : "chevron-down",
6507
+ name: isOpen ? "chevron-up" : "chevron-down",
6245
6508
  size: "x20"
6246
6509
  })]
6247
6510
  }),
6248
- state.isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Popover, {
6249
- state,
6250
- triggerRef: ref,
6251
- placement: "bottom",
6252
- offset: 4,
6253
- containerPadding: 8,
6254
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionContainer, {
6255
- style: { width: borderBoxSize?.inlineSize },
6256
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListBox, {
6257
- ...menuProps,
6258
- state
6511
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PositionAnimated, {
6512
+ visible: isOpen ? AnimatedVisibility.VISIBLE : AnimatedVisibility.HIDDEN,
6513
+ anchor: triggerRef,
6514
+ placement: "bottom-start",
6515
+ margin: 4,
6516
+ preventScroll: isOpen,
6517
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6518
+ "aria-hidden": !isOpen || void 0,
6519
+ style: isOpen ? void 0 : { pointerEvents: "none" },
6520
+ onPointerDown: (event) => event.preventDefault(),
6521
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionContainer, {
6522
+ style: { width: borderBoxSize?.inlineSize },
6523
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Listbox, {
6524
+ id: listboxId,
6525
+ "aria-labelledby": props["aria-labelledby"],
6526
+ "aria-label": props["aria-labelledby"] ? void 0 : props["aria-label"] ?? listboxName,
6527
+ children: options.map(([key, label], index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListboxOption_default, {
6528
+ id: getOptionId(index),
6529
+ selected: index === selectedIndex,
6530
+ active: index === active,
6531
+ focusVisible,
6532
+ onActivate: () => moveByPointer(index),
6533
+ onSelect: () => select(index),
6534
+ children: label ?? key
6535
+ }, key))
6536
+ })
6259
6537
  })
6260
6538
  })
6261
6539
  })
6262
6540
  ] });
6263
6541
  }
6264
6542
  //#endregion
6265
- //#region src/components/Select/Select.tsx
6266
- /**
6267
- * An input for selection of options.
6268
- */
6269
- function Select({ options, ref, ...props }) {
6270
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectAria, {
6271
- ref,
6272
- ...props,
6273
- children: options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_stately.Item, {
6274
- title: option[1] ?? option[0],
6275
- textValue: option[0],
6276
- children: option[1] ?? option[0]
6277
- }, option[0]))
6278
- });
6279
- }
6280
- //#endregion
6281
6543
  //#region src/components/Select/SelectFilteredContext.ts
6282
6544
  var SelectFilteredContext = (0, react.createContext)({});
6283
6545
  //#endregion
@@ -6285,14 +6547,11 @@ if (process.env.NODE_ENV !== "production") (function() {
6285
6547
  function SelectFilteredAnchor({ children: _children, ...props }) {
6286
6548
  const { placeholder, filter, setFilter } = (0, react.use)(SelectFilteredContext);
6287
6549
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {
6288
- marginInline: 4,
6289
- flexGrow: 1,
6290
- className: "rcx-select__focus",
6550
+ className: "rcx-select__focus rcx-select__filter rcx-input-box--undecorated",
6291
6551
  placeholder,
6292
6552
  value: filter,
6293
6553
  onInput: (e) => setFilter?.(e.currentTarget.value),
6294
- ...props,
6295
- "rcx-input-box--undecorated": true
6554
+ ...props
6296
6555
  });
6297
6556
  }
6298
6557
  //#endregion
@@ -6422,7 +6681,7 @@ if (process.env.NODE_ENV !== "production") (function() {
6422
6681
  //#region src/components/Sidebar/SidebarAction.tsx
6423
6682
  function SidebarAction(props) {
6424
6683
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
6425
- small: true,
6684
+ size: "small",
6426
6685
  ...props
6427
6686
  });
6428
6687
  }
@@ -6433,47 +6692,64 @@ if (process.env.NODE_ENV !== "production") (function() {
6433
6692
  }
6434
6693
  //#endregion
6435
6694
  //#region src/components/Sidebar/SidebarLink.tsx
6436
- var SidebarLink = ({ selected, icon, badge, menu, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
6695
+ var SidebarLink = ({ selected, icon, badge, menu, className, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Item, {
6696
+ is: "a",
6697
+ inset: "md",
6437
6698
  role: "link",
6438
6699
  tabIndex: 0,
6439
- className: [
6440
- "rcx-box rcx-box--full",
6441
- "rcx-sidebar-link",
6442
- "rcx-sidebar-item",
6443
- selected && "rcx-sidebar-item--selected"
6444
- ].filter(Boolean).join(" "),
6700
+ selected,
6701
+ className: cx("rcx-sidebar-link", "rcx-sidebar-item", !!selected && "rcx-sidebar-item--selected", className),
6445
6702
  onClick: (e) => e.stopPropagation(),
6446
6703
  onKeyDown: (e) => e.code === "Enter" && e.stopPropagation(),
6447
6704
  ...props,
6448
6705
  children: [
6449
- icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
6450
- name: icon,
6451
- size: "x20",
6452
- className: "rcx-sidebar-item__icon"
6706
+ icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, {
6707
+ className: "rcx-sidebar-item__icon",
6708
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
6709
+ name: icon,
6710
+ size: "x20"
6711
+ })
6453
6712
  }),
6454
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6455
- className: "rcx-box rcx-box--full rcx-sidebar-item__title",
6456
- children: props.children
6713
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, {
6714
+ is: "span",
6715
+ className: "rcx-sidebar-item__title",
6716
+ children
6457
6717
  }),
6458
6718
  badge,
6459
- menu && patchChildren(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6460
- className: "rcx-box rcx-box--full rcx-sidebar-item__menu-wrapper",
6461
- children: menu
6462
- }), (childProps) => ({ className: appendClassName(childProps.className, "rcx-box rcx-box--full rcx-sidebar-item__menu rcx-box--animated") }))
6719
+ menu && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemActions, {
6720
+ reveal: "hover",
6721
+ className: "rcx-sidebar-item__menu-wrapper",
6722
+ children: patchChildren(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6723
+ className: "rcx-box rcx-box--full rcx-sidebar-item__menu",
6724
+ children: menu
6725
+ }), (childProps) => ({ className: appendClassName(childProps.className, "rcx-sidebar-item__menu") }))
6726
+ })
6463
6727
  ]
6464
6728
  });
6465
6729
  //#endregion
6466
6730
  //#region src/components/Sidebar/SidebarItem/SidebarItem.tsx
6467
- var SidebarItem = ({ selected, level = 1, className, children, is: Tag = "a", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
6468
- className: [
6469
- "rcx-box rcx-box--full rcx-sidebar-item",
6470
- selected && "rcx-sidebar-item--selected",
6471
- level && `rcx-sidebar-item--level-${level}`,
6472
- className
6473
- ].filter(Boolean).join(" "),
6474
- ...props,
6475
- children
6476
- });
6731
+ /**
6732
+ * A sidebar row. It renders an `Item`, so its content can also be composed from `Item` parts.
6733
+ */
6734
+ var SidebarItem = ({ selected, highlighted, focused, focusVisible, level = 1, className, is = "a", href, target, rel, download, ...props }) => {
6735
+ const isContainer = typeof is === "string" && is !== "a";
6736
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Item, {
6737
+ ...props,
6738
+ ...!isContainer && {
6739
+ href,
6740
+ target,
6741
+ rel,
6742
+ download
6743
+ },
6744
+ is,
6745
+ inset: "md",
6746
+ selected,
6747
+ highlighted,
6748
+ focused,
6749
+ focusVisible,
6750
+ className: cx("rcx-sidebar-item", !!selected && "rcx-sidebar-item--selected", !!level && `rcx-sidebar-item--level-${level}`, className)
6751
+ });
6752
+ };
6477
6753
  //#endregion
6478
6754
  //#region src/components/Sidebar/SidebarItem/SidebarItemAction.tsx
6479
6755
  var SidebarItemAction = ({ children, className, icon = "plus-small", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -6487,10 +6763,20 @@ if (process.env.NODE_ENV !== "production") (function() {
6487
6763
  }), children]
6488
6764
  });
6489
6765
  //#endregion
6766
+ //#region src/components/Sidebar/SidebarItem/SidebarItemActions.tsx
6767
+ /**
6768
+ * Always-visible buttons of a container `SidebarItem`, such as accepting or rejecting a call.
6769
+ * For actions shown only on hover, use `SidebarItemMenu`.
6770
+ */
6771
+ var SidebarItemActions = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemActions, {
6772
+ ...props,
6773
+ className: cx("rcx-sidebar-item__actions", className)
6774
+ });
6775
+ //#endregion
6490
6776
  //#region src/components/Sidebar/SidebarItem/SidebarItemAvatarWrapper.tsx
6491
- var SidebarItemAvatarWrapper = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6492
- className: ["rcx-box rcx-box--full rcx-sidebar-item__avatar", className].filter(Boolean).join(" "),
6493
- ...props
6777
+ var SidebarItemAvatarWrapper = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMedia, {
6778
+ ...props,
6779
+ className: cx("rcx-sidebar-item__avatar", className)
6494
6780
  });
6495
6781
  //#endregion
6496
6782
  //#region src/components/Sidebar/SidebarItem/SidebarItemBadge.tsx
@@ -6500,12 +6786,9 @@ if (process.env.NODE_ENV !== "production") (function() {
6500
6786
  });
6501
6787
  //#endregion
6502
6788
  //#region src/components/Sidebar/SidebarItem/SidebarItemIcon.tsx
6503
- var SidebarItemIcon = ({ icon, className, highlighted, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6504
- className: [
6505
- "rcx-box rcx-box--full rcx-sidebar-item__icon",
6506
- highlighted && "rcx-sidebar-item__icon--highlighted",
6507
- className
6508
- ].filter(Boolean).join(" "),
6789
+ var SidebarItemIcon = ({ icon, className, highlighted, label, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, {
6790
+ label,
6791
+ className: cx("rcx-sidebar-item__icon", !!highlighted && "rcx-sidebar-item__icon--highlighted", typeof className === "string" && className),
6509
6792
  children: (0, react.isValidElement)(icon) ? icon : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
6510
6793
  name: icon,
6511
6794
  size: "x20",
@@ -6513,10 +6796,21 @@ if (process.env.NODE_ENV !== "production") (function() {
6513
6796
  })
6514
6797
  });
6515
6798
  //#endregion
6799
+ //#region src/components/Sidebar/SidebarItem/SidebarItemLink.tsx
6800
+ /**
6801
+ * The primary target of a container `SidebarItem` (`is='div'`). Place it inside `SidebarItemTitle`:
6802
+ * it covers the whole row, so menus and buttons sit beside it instead of inside it.
6803
+ */
6804
+ var SidebarItemLink = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemLink, {
6805
+ ...props,
6806
+ className: cx("rcx-sidebar-item__link", className)
6807
+ });
6808
+ //#endregion
6516
6809
  //#region src/components/Sidebar/SidebarItem/SidebarItemMenu.tsx
6517
- var SidebarItemMenu = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6518
- className: "rcx-box rcx-box--full rcx-sidebar-item__menu-wrapper rcx-box--animated",
6810
+ var SidebarItemMenu = ({ children, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemActions, {
6519
6811
  ...props,
6812
+ reveal: "hover",
6813
+ className: cx("rcx-sidebar-item__menu-wrapper", className),
6520
6814
  children: patchChildren(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6521
6815
  className: "rcx-box rcx-box--full rcx-sidebar-item__menu",
6522
6816
  children
@@ -6524,35 +6818,27 @@ if (process.env.NODE_ENV !== "production") (function() {
6524
6818
  });
6525
6819
  //#endregion
6526
6820
  //#region src/components/Sidebar/SidebarItem/SidebarItemTitle.tsx
6527
- var SidebarItemTitle = ({ className, unread, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6528
- className: [
6529
- "rcx-box rcx-box--full rcx-sidebar-item__title",
6530
- unread && "rcx-sidebar-item__title--highlighted",
6531
- className
6532
- ].filter(Boolean).join(" "),
6533
- ...props
6821
+ var SidebarItemTitle = ({ className, unread, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemTitle, {
6822
+ ...props,
6823
+ className: cx("rcx-sidebar-item__title", !!unread && "rcx-sidebar-item__title--highlighted", className)
6534
6824
  });
6535
6825
  //#endregion
6536
6826
  //#region src/components/Sidebar/SidebarItem/SidebarItemRow.tsx
6537
- var SidebarItemRow = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6538
- className: ["rcx-box rcx-box--full rcx-sidebar-item__row", className].filter(Boolean).join(" "),
6539
- ...props
6827
+ var SidebarItemRow = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemRow, {
6828
+ ...props,
6829
+ className: cx("rcx-sidebar-item__row", className)
6540
6830
  });
6541
6831
  //#endregion
6542
6832
  //#region src/components/Sidebar/SidebarItem/SidebarItemCol.tsx
6543
- var SidebarItemCol = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6544
- className: ["rcx-box rcx-box--full rcx-sidebar-item__col", className].filter(Boolean).join(" "),
6545
- ...props
6833
+ var SidebarItemCol = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemContent, {
6834
+ ...props,
6835
+ className: cx("rcx-sidebar-item__col", className)
6546
6836
  });
6547
6837
  //#endregion
6548
6838
  //#region src/components/Sidebar/SidebarItem/SidebarItemTimestamp.tsx
6549
- var SidebarItemTimestamp = ({ className, unread, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6550
- className: [
6551
- "rcx-box rcx-box--full rcx-sidebar-item__timestamp",
6552
- unread && "rcx-sidebar-item__timestamp--highlighted",
6553
- className
6554
- ].filter(Boolean).join(" "),
6555
- ...props
6839
+ var SidebarItemTimestamp = ({ className, unread, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemMeta, {
6840
+ ...props,
6841
+ className: cx("rcx-sidebar-item__timestamp", !!unread && "rcx-sidebar-item__timestamp--highlighted", className)
6556
6842
  });
6557
6843
  //#endregion
6558
6844
  //#region src/components/Sidebar/SidebarItem/SidebarListItem.tsx
@@ -6566,13 +6852,9 @@ if (process.env.NODE_ENV !== "production") (function() {
6566
6852
  }
6567
6853
  //#endregion
6568
6854
  //#region src/components/Sidebar/SidebarItem/SidebarItemContent.tsx
6569
- var SidebarItemContent = ({ className, unread, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6570
- className: [
6571
- "rcx-box rcx-box--full rcx-sidebar-item__subtitle",
6572
- unread && "rcx-sidebar-item__subtitle--highlighted",
6573
- className
6574
- ].filter(Boolean).join(" "),
6575
- ...props
6855
+ var SidebarItemContent = ({ className, unread, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDescription, {
6856
+ ...props,
6857
+ className: cx("rcx-sidebar-item__subtitle", !!unread && "rcx-sidebar-item__subtitle--highlighted", className)
6576
6858
  });
6577
6859
  //#endregion
6578
6860
  //#region src/components/StatusBullet/icons/Away.tsx
@@ -6657,7 +6939,7 @@ if (process.env.NODE_ENV !== "production") (function() {
6657
6939
  cx: "6",
6658
6940
  cy: "6",
6659
6941
  r: "5",
6660
- className: `rcx-status-bullet rcx-status-bullet--offline`,
6942
+ className: "rcx-status-bullet rcx-status-bullet--offline",
6661
6943
  strokeWidth: "2"
6662
6944
  })
6663
6945
  });
@@ -6690,28 +6972,27 @@ if (process.env.NODE_ENV !== "production") (function() {
6690
6972
  };
6691
6973
  //#endregion
6692
6974
  //#region src/components/Sidebar/SidebarItem/SidebarItemStatusBullet.tsx
6693
- var SidebarItemStatusBullet = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6694
- className: "rcx-box rcx-box--full rcx-sidebar-item__status-bullet",
6975
+ var SidebarItemStatusBullet = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemIcon, {
6976
+ className: "rcx-sidebar-item__status-bullet",
6695
6977
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StatusBullet, { ...props })
6696
6978
  });
6697
6979
  //#endregion
6698
6980
  //#region src/components/Sidebar/SidebarGroupTitle.tsx
6699
- var SidebarGroupTitle = ({ title, titleId, badge, menu, barProps, expanded, empty, role, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
6700
- className: [
6701
- "rcx-box rcx-box--full",
6702
- "rcx-sidebar-collapse-group__bar",
6703
- !expanded && empty && "rcx-sidebar-collapse-group__bar--empty",
6704
- !expanded && badge && "rcx-sidebar-collapse-group__bar--unread"
6705
- ].filter(Boolean).join(" "),
6981
+ /**
6982
+ * The header of a sidebar group. It renders an `ItemGroupHeader`, so its menu reveals on hover like a row's.
6983
+ */
6984
+ var SidebarGroupTitle = ({ title, titleId, badge, menu, barProps, expanded, empty, role, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ItemGroupHeader, {
6706
6985
  ...props,
6707
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
6708
- className: "rcx-box rcx-sidebar-collapse-group__bar-button",
6986
+ inset: "md",
6987
+ className: cx("rcx-sidebar-collapse-group__bar", !expanded && empty && "rcx-sidebar-collapse-group__bar--empty", !expanded && !!badge && "rcx-sidebar-collapse-group__bar--unread", className),
6988
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ItemGroupTitle, {
6709
6989
  role,
6710
6990
  ...barProps,
6991
+ className: "rcx-sidebar-collapse-group__bar-button",
6711
6992
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
6712
- className: "rcx-box rcx-sidebar-collapse-group__heading",
6993
+ className: "rcx-sidebar-collapse-group__heading",
6713
6994
  children: [title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h4", {
6714
- className: "rcx-box rcx-box--full rcx-sidebar-collapse-group__title",
6995
+ className: "rcx-sidebar-collapse-group__title",
6715
6996
  id: titleId,
6716
6997
  children: title
6717
6998
  }), expanded !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Chevron, {
@@ -6723,7 +7004,7 @@ if (process.env.NODE_ENV !== "production") (function() {
6723
7004
  });
6724
7005
  //#endregion
6725
7006
  //#region src/components/Sidebar/SidebarCollapseGroup.tsx
6726
- function SidebarCollapseGroup({ ref, expanded: propExpanded, defaultExpanded, tabIndex, children, badge, menu, title, empty, role = "group", ...props }) {
7007
+ function SidebarCollapseGroup({ ref, expanded: propExpanded, defaultExpanded, tabIndex, children, badge, menu, actions: _actions, title, empty, role = "group", ...props }) {
6727
7008
  const { barProps, expanded, panelExpanded, panelId, titleId } = useCollapse({
6728
7009
  expanded: propExpanded,
6729
7010
  defaultExpanded,
@@ -6744,10 +7025,11 @@ if (process.env.NODE_ENV !== "production") (function() {
6744
7025
  menu,
6745
7026
  barProps,
6746
7027
  role: "button"
6747
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7028
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroup, {
6748
7029
  role: "list",
7030
+ "aria-labelledby": titleId,
6749
7031
  ref,
6750
- className: ["rcx-box rcx-box--full rcx-sidebar-collapse-group__panel rcx-box--animated", panelExpanded && "rcx-sidebar-collapse-group__panel--expanded"].filter(Boolean).join(" "),
7032
+ className: cx("rcx-sidebar-collapse-group__panel rcx-box--animated", panelExpanded && "rcx-sidebar-collapse-group__panel--expanded"),
6751
7033
  id: panelId,
6752
7034
  children
6753
7035
  })]
@@ -6755,9 +7037,10 @@ if (process.env.NODE_ENV !== "production") (function() {
6755
7037
  }
6756
7038
  //#endregion
6757
7039
  //#region src/components/Sidebar/SidebarCollapseGroupMenu.tsx
6758
- var SidebarCollapseGroupMenu = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6759
- className: "rcx-box rcx-box--full rcx-sidebar-collapse-group__menu-wrapper rcx-box--animated",
7040
+ var SidebarCollapseGroupMenu = ({ children, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemActions, {
6760
7041
  ...props,
7042
+ reveal: "hover",
7043
+ className: cx("rcx-sidebar-collapse-group__menu-wrapper", className),
6761
7044
  children: patchChildren(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6762
7045
  className: "rcx-box rcx-box--full rcx-sidebar-collapse-group__menu",
6763
7046
  children
@@ -6786,7 +7069,7 @@ if (process.env.NODE_ENV !== "production") (function() {
6786
7069
  className: "rcx-box rcx-box--full rcx-sidebar-banner__addon",
6787
7070
  children: [addon, onClose && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
6788
7071
  onClick: onClose,
6789
- tiny: true,
7072
+ size: "tiny",
6790
7073
  icon: "cross"
6791
7074
  })]
6792
7075
  })]
@@ -6840,10 +7123,9 @@ if (process.env.NODE_ENV !== "production") (function() {
6840
7123
  });
6841
7124
  //#endregion
6842
7125
  //#region src/components/Sidebar/SidebarDivider.tsx
6843
- var SidebarDivider = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, {
6844
- "rcx-sidebar--divider": true,
6845
- marginBlockStart: -2,
6846
- marginBlockEnd: 0
7126
+ var SidebarDivider = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDivider, {
7127
+ role: "separator",
7128
+ className: "rcx-sidebar--divider"
6847
7129
  });
6848
7130
  //#endregion
6849
7131
  //#region src/components/Sidebar/SidebarSection.tsx
@@ -6876,28 +7158,21 @@ if (process.env.NODE_ENV !== "production") (function() {
6876
7158
  ...props
6877
7159
  });
6878
7160
  //#endregion
6879
- //#region src/components/Sidepanel/SidepanelDivider.tsx
6880
- var SidepanelDivider = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, {
6881
- "rcx-sidepanel--divider": true,
6882
- marginBlockStart: -2,
6883
- marginBlockEnd: 0
6884
- });
6885
- //#endregion
6886
7161
  //#region src/components/Sidepanel/SidepanelHeader.tsx
6887
7162
  var SidepanelHeader = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
6888
7163
  className: "rcx-sidepanel-header-wrapper",
6889
7164
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6890
7165
  className: ["rcx-sidepanel-header", className].filter(Boolean).join(" "),
6891
7166
  ...props
6892
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SidepanelDivider, {})]
7167
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Divider, { className: "rcx-sidepanel--divider" })]
6893
7168
  });
6894
7169
  //#endregion
6895
7170
  //#region src/components/Sidepanel/SidepanelList.tsx
6896
7171
  function SidepanelList({ className, ...props }) {
6897
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7172
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemGroup, {
6898
7173
  role: "list",
6899
- className: ["rcx-sidepanel-list", className].filter(Boolean).join(" "),
6900
- ...props
7174
+ ...props,
7175
+ className: cx("rcx-sidepanel-list", className)
6901
7176
  });
6902
7177
  }
6903
7178
  //#endregion
@@ -6910,6 +7185,12 @@ if (process.env.NODE_ENV !== "production") (function() {
6910
7185
  });
6911
7186
  }
6912
7187
  //#endregion
7188
+ //#region src/components/Sidepanel/SidepanelDivider.tsx
7189
+ var SidepanelDivider = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItemDivider, {
7190
+ role: "separator",
7191
+ className: "rcx-sidepanel--divider"
7192
+ });
7193
+ //#endregion
6913
7194
  //#region src/components/SplitButton/SplitButton.tsx
6914
7195
  /**
6915
7196
  * Fuses a menu trigger and its primary action into a single control, e.g. an
@@ -6936,23 +7217,48 @@ if (process.env.NODE_ENV !== "production") (function() {
6936
7217
  * The ghost segment of a `SplitButton`: the menu trigger fused next to the
6937
7218
  * primary action. Pass it as a `Menu`'s `button`.
6938
7219
  */
6939
- function SplitButtonTrigger(props) {
7220
+ function SplitButtonTrigger({ className, ...props }) {
6940
7221
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
6941
- "rcx-split-button__trigger": true,
7222
+ ...props,
7223
+ className: ["rcx-split-button__trigger", className].filter(Boolean).join(" ")
7224
+ });
7225
+ }
7226
+ //#endregion
7227
+ //#region src/components/Stack/Stack.tsx
7228
+ var flexValues = {
7229
+ start: "flex-start",
7230
+ end: "flex-end"
7231
+ };
7232
+ /**
7233
+ * Lays out its children in a row or a column, spaced by `gap`.
7234
+ */
7235
+ function Stack({ direction = "column", gap, align, justify, wrap, grow, ...props }) {
7236
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7237
+ display: "flex",
7238
+ flexDirection: direction,
7239
+ gap,
7240
+ alignItems: align && (flexValues[align] ?? align),
7241
+ justifyContent: justify && (flexValues[justify] ?? justify),
7242
+ flexWrap: wrap ? "wrap" : void 0,
7243
+ flexGrow: grow ? 1 : void 0,
6942
7244
  ...props
6943
7245
  });
6944
7246
  }
6945
7247
  //#endregion
6946
7248
  //#region src/components/Table/Table.tsx
6947
- var Table = ({ striped, sticky, fixed = false, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7249
+ var Table = ({ striped, sticky, fixed = false, columns, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6948
7250
  "rcx-table__wrapper": true,
6949
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7251
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Box_default, {
6950
7252
  is: "table",
6951
7253
  "rcx-table": true,
6952
7254
  "rcx-table--fixed": fixed,
6953
7255
  "rcx-table--sticky": sticky,
6954
7256
  "rcx-table--striped": striped,
6955
- ...props
7257
+ ...props,
7258
+ children: [columns && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("colgroup", { children: columns.map((width, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7259
+ is: "col",
7260
+ width
7261
+ }, index)) }), children]
6956
7262
  })
6957
7263
  });
6958
7264
  //#endregion
@@ -6975,7 +7281,7 @@ if (process.env.NODE_ENV !== "production") (function() {
6975
7281
  });
6976
7282
  //#endregion
6977
7283
  //#region src/components/Table/TableCell.tsx
6978
- var TableCell = ({ align, clickable, children, ...props }) => {
7284
+ var TableCell = ({ align, clickable, rowHeader, truncate, color, strong, children, ...props }) => {
6979
7285
  const isInsideHead = (0, react.useContext)(TableHeadContext);
6980
7286
  const innerElement = children ?? (!isInsideHead ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6981
7287
  display: "inline-block",
@@ -6984,11 +7290,16 @@ if (process.env.NODE_ENV !== "production") (function() {
6984
7290
  borderWidth: "default"
6985
7291
  }) : void 0);
6986
7292
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
6987
- is: isInsideHead ? "th" : "td",
7293
+ is: isInsideHead || rowHeader ? "th" : "td",
7294
+ scope: rowHeader ? "row" : void 0,
6988
7295
  "rcx-table__cell": true,
6989
7296
  "rcx-table__cell--align": align,
6990
7297
  "rcx-table__cell--header": isInsideHead,
7298
+ "rcx-table__cell--row-header": rowHeader,
6991
7299
  "rcx-table__cell--clickable": clickable,
7300
+ "rcx-table__cell--truncate": truncate,
7301
+ "rcx-table__cell--color": color,
7302
+ "rcx-table__cell--strong": strong,
6992
7303
  ...props,
6993
7304
  children: innerElement
6994
7305
  });
@@ -7034,10 +7345,10 @@ if (process.env.NODE_ENV !== "production") (function() {
7034
7345
  });
7035
7346
  //#endregion
7036
7347
  //#region src/components/Table/TableSelection/TableSelectionButton.tsx
7037
- var TableSelectionButton = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7038
- small: true,
7039
- flexShrink: 0,
7040
- ...props
7348
+ var TableSelectionButton = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7349
+ size: "small",
7350
+ ...props,
7351
+ className: ["rcx-table__selection-button", className].filter(Boolean).join(" ")
7041
7352
  });
7042
7353
  //#endregion
7043
7354
  //#region src/components/Table/TableSelection/TableSelectionButtonGroup.tsx
@@ -7047,11 +7358,12 @@ if (process.env.NODE_ENV !== "production") (function() {
7047
7358
  /**
7048
7359
  * Tabs is a component to navigate around the UI using buttons arranged together with the selected tab highlighted.
7049
7360
  */
7050
- function Tabs({ children, divider = true, ...props }) {
7361
+ function Tabs({ children, divider = true, stretch, ...props }) {
7051
7362
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7052
7363
  is: "div",
7053
7364
  "rcx-tabs": true,
7054
7365
  "rcx-tabs--with-divider": divider,
7366
+ "rcx-tabs--stretch": stretch,
7055
7367
  ...props,
7056
7368
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7057
7369
  is: "div",
@@ -7080,6 +7392,17 @@ if (process.env.NODE_ENV !== "production") (function() {
7080
7392
  });
7081
7393
  }
7082
7394
  //#endregion
7395
+ //#region src/components/Text/Text.tsx
7396
+ /**
7397
+ * Text set in one of the design system's font scales and text colours.
7398
+ */
7399
+ function Text({ is = "div", fontScale, color, truncate, className, ...props }) {
7400
+ return (0, react.createElement)(is, {
7401
+ className: cx(cxx("rcx-text")(fontScale && `font-scale-${fontScale}`, color && `color-${color}`, truncate && "truncate"), className),
7402
+ ...props
7403
+ });
7404
+ }
7405
+ //#endregion
7083
7406
  //#region src/components/TextAreaInput/TextAreaInput.tsx
7084
7407
  /**
7085
7408
  * An input for multi-line plain-text editing.
@@ -7107,9 +7430,9 @@ if (process.env.NODE_ENV !== "production") (function() {
7107
7430
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7108
7431
  is: "span",
7109
7432
  className: _rocket_chat_css_in_js.css`
7110
- animation-duration: ${circleCount * .466}s;
7111
- animation-delay: ${iteration * .16}s;
7112
- `,
7433
+ animation-duration: ${circleCount * .466}s;
7434
+ animation-delay: ${iteration * .16}s;
7435
+ `,
7113
7436
  "rcx-throbber__circle": true,
7114
7437
  "rcx-throbber__circle--disabled": disabled,
7115
7438
  "rcx-throbber__circle--inherit-color": inheritColor,
@@ -7133,6 +7456,16 @@ if (process.env.NODE_ENV !== "production") (function() {
7133
7456
  });
7134
7457
  }
7135
7458
  //#endregion
7459
+ //#region src/components/Tile/Tile.tsx
7460
+ function Tile({ elevation = "1", flush, ...props }) {
7461
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Box_default, {
7462
+ "rcx-tile": true,
7463
+ "rcx-tile--elevation": elevation,
7464
+ padding: flush ? void 0 : 16,
7465
+ ...props
7466
+ });
7467
+ }
7468
+ //#endregion
7136
7469
  //#region src/components/ToastBar/ToastBar.tsx
7137
7470
  /**
7138
7471
  * Shows alerts in a toast component.
@@ -7157,16 +7490,16 @@ if (process.env.NODE_ENV !== "production") (function() {
7157
7490
  }
7158
7491
  `;
7159
7492
  const toastBarAnimation = _rocket_chat_css_in_js.css`
7160
- animation: ${sideOpen} 0.5s;
7161
- `;
7493
+ animation: ${sideOpen} 0.5s;
7494
+ `;
7162
7495
  const progressBarAnimation = _rocket_chat_css_in_js.css`
7163
- &::after {
7164
- width: 0%;
7165
- animation: ${progressBar} ${time}s;
7166
- animation-fill-mode: forwards;
7167
- animation-play-state: ${isPaused ? "paused" : "running"};
7168
- }
7169
- `;
7496
+ &::after {
7497
+ width: 0%;
7498
+ animation: ${progressBar} ${time}s;
7499
+ animation-fill-mode: forwards;
7500
+ animation-play-state: ${isPaused ? "paused" : "running"};
7501
+ }
7502
+ `;
7170
7503
  const uniqueId = (0, react.useId)();
7171
7504
  const toastId = id || uniqueId;
7172
7505
  const role = variant === "error" ? "alert" : "status";
@@ -7191,7 +7524,7 @@ if (process.env.NODE_ENV !== "production") (function() {
7191
7524
  onClose && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7192
7525
  className: "rcx-toastbar-close",
7193
7526
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
7194
- tiny: true,
7527
+ size: "tiny",
7195
7528
  "aria-label": buttonLabel,
7196
7529
  onClick: () => onClose(toastId),
7197
7530
  icon: "cross"
@@ -7273,6 +7606,7 @@ if (process.env.NODE_ENV !== "production") (function() {
7273
7606
  exports.CardCol = CardCol;
7274
7607
  exports.CardControls = CardControls;
7275
7608
  exports.CardGrid = CardGrid;
7609
+ exports.CardGridItem = CardGridItem;
7276
7610
  exports.CardGroup = CardGroup;
7277
7611
  exports.CardHeader = CardHeader;
7278
7612
  exports.CardRow = CardRow;
@@ -7332,6 +7666,8 @@ if (process.env.NODE_ENV !== "production") (function() {
7332
7666
  exports.ItemSkeleton = ItemSkeleton;
7333
7667
  exports.ItemTitle = ItemTitle;
7334
7668
  exports.Label = Label;
7669
+ exports.Listbox = Listbox;
7670
+ exports.ListboxOption = ListboxOption_default;
7335
7671
  exports.Margins = Margins;
7336
7672
  exports.Menu = Menu;
7337
7673
  exports.MenuItem = MenuItem;
@@ -7442,6 +7778,7 @@ if (process.env.NODE_ENV !== "production") (function() {
7442
7778
  exports.PaletteStyleTag = PaletteStyleTag_default;
7443
7779
  exports.PasswordInput = PasswordInput;
7444
7780
  exports.Popover = Popover;
7781
+ exports.PopoverSurface = PopoverSurface;
7445
7782
  exports.PositionAnimated = PositionAnimated;
7446
7783
  exports.ProgressBar = ProgressBar;
7447
7784
  exports.RadioButton = RadioButton;
@@ -7465,11 +7802,13 @@ if (process.env.NODE_ENV !== "production") (function() {
7465
7802
  exports.SidebarGroupTitle = SidebarGroupTitle;
7466
7803
  exports.SidebarItem = SidebarItem;
7467
7804
  exports.SidebarItemAction = SidebarItemAction;
7805
+ exports.SidebarItemActions = SidebarItemActions;
7468
7806
  exports.SidebarItemAvatarWrapper = SidebarItemAvatarWrapper;
7469
7807
  exports.SidebarItemBadge = SidebarItemBadge;
7470
7808
  exports.SidebarItemCol = SidebarItemCol;
7471
7809
  exports.SidebarItemContent = SidebarItemContent;
7472
7810
  exports.SidebarItemIcon = SidebarItemIcon;
7811
+ exports.SidebarItemLink = SidebarItemLink;
7473
7812
  exports.SidebarItemMenu = SidebarItemMenu;
7474
7813
  exports.SidebarItemRow = SidebarItemRow;
7475
7814
  exports.SidebarItemStatusBullet = SidebarItemStatusBullet;
@@ -7493,6 +7832,7 @@ if (process.env.NODE_ENV !== "production") (function() {
7493
7832
  exports.Slider = Slider;
7494
7833
  exports.SplitButton = SplitButton;
7495
7834
  exports.SplitButtonTrigger = SplitButtonTrigger;
7835
+ exports.Stack = Stack;
7496
7836
  exports.States = States;
7497
7837
  exports.StatesAction = StatesAction;
7498
7838
  exports.StatesActions = StatesActions;
@@ -7518,6 +7858,7 @@ if (process.env.NODE_ENV !== "production") (function() {
7518
7858
  exports.Tabs = Tabs;
7519
7859
  exports.TabsItem = TabsItem;
7520
7860
  exports.Tag = Tag;
7861
+ exports.Text = Text;
7521
7862
  exports.TextAreaInput = TextAreaInput;
7522
7863
  exports.TextInput = TextInput;
7523
7864
  exports.ThreadMessage = ThreadMessage;
@@ -7545,11 +7886,14 @@ if (process.env.NODE_ENV !== "production") (function() {
7545
7886
  exports.fontColor = fontColor;
7546
7887
  exports.fontFamily = fontFamily;
7547
7888
  exports.fontScale = fontScale;
7889
+ exports.inset = inset;
7548
7890
  exports.size = size;
7549
7891
  exports.spacing = spacing;
7892
+ exports.spacingScale = spacingScale;
7550
7893
  exports.strokeColor = strokeColor;
7551
7894
  exports.useCursor = useCursor;
7552
7895
  exports.useOwnerDocument = useOwnerDocument;
7896
+ exports.useStyle = useStyle;
7553
7897
  })();
7554
7898
 
7555
7899
  //# sourceMappingURL=fuselage.development.js.map