@vector-im/compound-web 9.0.1 → 9.2.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 (191) hide show
  1. package/dist/components/ActivityMarker/Pill.cjs +1 -1
  2. package/dist/components/ActivityMarker/Unread.cjs +1 -1
  3. package/dist/components/ActivityMarker/UnreadCounter.cjs +1 -1
  4. package/dist/components/Alert/Alert.cjs +6 -6
  5. package/dist/components/Alert/Alert.module.cjs +5 -11
  6. package/dist/components/Alert/Alert.module.js +5 -11
  7. package/dist/components/Avatar/Avatar.cjs +2 -2
  8. package/dist/components/Avatar/Avatar.module.cjs +5 -5
  9. package/dist/components/Avatar/Avatar.module.cjs.map +1 -1
  10. package/dist/components/Avatar/Avatar.module.js +5 -5
  11. package/dist/components/Avatar/Avatar.module.js.map +1 -1
  12. package/dist/components/Avatar/AvatarStack.cjs +2 -2
  13. package/dist/components/Badge/Badge.cjs +10 -6
  14. package/dist/components/Badge/Badge.cjs.map +1 -1
  15. package/dist/components/Badge/Badge.d.ts +5 -1
  16. package/dist/components/Badge/Badge.d.ts.map +1 -1
  17. package/dist/components/Badge/Badge.js +9 -5
  18. package/dist/components/Badge/Badge.js.map +1 -1
  19. package/dist/components/Badge/Badge.module.cjs +4 -1
  20. package/dist/components/Badge/Badge.module.cjs.map +1 -1
  21. package/dist/components/Badge/Badge.module.js +4 -1
  22. package/dist/components/Badge/Badge.module.js.map +1 -1
  23. package/dist/components/Breadcrumb/Breadcrumb.cjs +3 -3
  24. package/dist/components/Button/Button.cjs +2 -2
  25. package/dist/components/Button/Button.module.cjs +2 -5
  26. package/dist/components/Button/Button.module.js +2 -5
  27. package/dist/components/Button/IconButton/IconButton.cjs +4 -3
  28. package/dist/components/Button/IconButton/IconButton.cjs.map +1 -1
  29. package/dist/components/Button/IconButton/IconButton.d.ts +5 -0
  30. package/dist/components/Button/IconButton/IconButton.d.ts.map +1 -1
  31. package/dist/components/Button/IconButton/IconButton.js +2 -1
  32. package/dist/components/Button/IconButton/IconButton.js.map +1 -1
  33. package/dist/components/Button/IconButton/IconButton.module.cjs +1 -3
  34. package/dist/components/Button/IconButton/IconButton.module.js +1 -3
  35. package/dist/components/Button/UnstyledButton.cjs +1 -1
  36. package/dist/components/ChatFilter/ChatFilter.cjs +1 -1
  37. package/dist/components/Dropdown/Dropdown.cjs +5 -5
  38. package/dist/components/Dropdown/Dropdown.module.cjs +7 -7
  39. package/dist/components/Dropdown/Dropdown.module.cjs.map +1 -1
  40. package/dist/components/Dropdown/Dropdown.module.js +7 -7
  41. package/dist/components/Dropdown/Dropdown.module.js.map +1 -1
  42. package/dist/components/Form/Controls/Action/Action.cjs +2 -2
  43. package/dist/components/Form/Controls/Checkbox/Checkbox.cjs +3 -3
  44. package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs +3 -3
  45. package/dist/components/Form/Controls/MFA/MFA.cjs +2 -2
  46. package/dist/components/Form/Controls/MFA/MFA.module.cjs +3 -3
  47. package/dist/components/Form/Controls/MFA/MFA.module.cjs.map +1 -1
  48. package/dist/components/Form/Controls/MFA/MFA.module.js +3 -3
  49. package/dist/components/Form/Controls/MFA/MFA.module.js.map +1 -1
  50. package/dist/components/Form/Controls/Password/Password.cjs +3 -3
  51. package/dist/components/Form/Controls/Radio/Radio.cjs +2 -2
  52. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs +1 -1
  53. package/dist/components/Form/Controls/Text/Text.cjs +2 -2
  54. package/dist/components/Form/Controls/Text/Text.module.cjs +2 -2
  55. package/dist/components/Form/Controls/Text/Text.module.cjs.map +1 -1
  56. package/dist/components/Form/Controls/Text/Text.module.js +2 -2
  57. package/dist/components/Form/Controls/Text/Text.module.js.map +1 -1
  58. package/dist/components/Form/Controls/Toggle/Toggle.cjs +2 -2
  59. package/dist/components/Form/Field.cjs +2 -2
  60. package/dist/components/Form/InlineField.cjs +2 -2
  61. package/dist/components/Form/Label.cjs +2 -2
  62. package/dist/components/Form/Message.cjs +4 -4
  63. package/dist/components/Form/Root.cjs +2 -2
  64. package/dist/components/Form/Submit.cjs +1 -1
  65. package/dist/components/Form/form.module.cjs +4 -9
  66. package/dist/components/Form/form.module.js +4 -9
  67. package/dist/components/Glass/Glass.cjs +2 -2
  68. package/dist/components/Icon/BigIcon/BigIcon.cjs +2 -2
  69. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs +2 -2
  70. package/dist/components/InlineSpinner/InlineSpinner.cjs +3 -3
  71. package/dist/components/InlineSpinner/InlineSpinner.module.cjs +2 -2
  72. package/dist/components/InlineSpinner/InlineSpinner.module.cjs.map +1 -1
  73. package/dist/components/InlineSpinner/InlineSpinner.module.js +2 -2
  74. package/dist/components/InlineSpinner/InlineSpinner.module.js.map +1 -1
  75. package/dist/components/Link/Link.cjs +2 -2
  76. package/dist/components/Menu/CheckboxMenuItem.cjs +3 -5
  77. package/dist/components/Menu/CheckboxMenuItem.cjs.map +1 -1
  78. package/dist/components/Menu/CheckboxMenuItem.js +2 -4
  79. package/dist/components/Menu/CheckboxMenuItem.js.map +1 -1
  80. package/dist/components/Menu/ContextMenu.cjs +19 -2
  81. package/dist/components/Menu/ContextMenu.cjs.map +1 -1
  82. package/dist/components/Menu/ContextMenu.d.ts.map +1 -1
  83. package/dist/components/Menu/ContextMenu.js +18 -1
  84. package/dist/components/Menu/ContextMenu.js.map +1 -1
  85. package/dist/components/Menu/DrawerMenu.cjs +2 -2
  86. package/dist/components/Menu/FloatingMenu.cjs +2 -2
  87. package/dist/components/Menu/FloatingMenu.module.cjs +5 -8
  88. package/dist/components/Menu/FloatingMenu.module.cjs.map +1 -1
  89. package/dist/components/Menu/FloatingMenu.module.js +5 -8
  90. package/dist/components/Menu/FloatingMenu.module.js.map +1 -1
  91. package/dist/components/Menu/Menu.cjs +30 -2
  92. package/dist/components/Menu/Menu.cjs.map +1 -1
  93. package/dist/components/Menu/Menu.d.ts.map +1 -1
  94. package/dist/components/Menu/Menu.js +30 -2
  95. package/dist/components/Menu/Menu.js.map +1 -1
  96. package/dist/components/Menu/MenuContext.cjs.map +1 -1
  97. package/dist/components/Menu/MenuContext.d.ts +22 -0
  98. package/dist/components/Menu/MenuContext.d.ts.map +1 -1
  99. package/dist/components/Menu/MenuContext.js.map +1 -1
  100. package/dist/components/Menu/MenuItem.cjs +3 -3
  101. package/dist/components/Menu/MenuItem.module.cjs +8 -14
  102. package/dist/components/Menu/MenuItem.module.cjs.map +1 -1
  103. package/dist/components/Menu/MenuItem.module.js +8 -14
  104. package/dist/components/Menu/MenuItem.module.js.map +1 -1
  105. package/dist/components/Menu/MenuTitle.cjs +2 -2
  106. package/dist/components/Menu/RadioMenuItem.cjs +3 -5
  107. package/dist/components/Menu/RadioMenuItem.cjs.map +1 -1
  108. package/dist/components/Menu/RadioMenuItem.js +2 -4
  109. package/dist/components/Menu/RadioMenuItem.js.map +1 -1
  110. package/dist/components/Menu/SubMenu.cjs +24 -0
  111. package/dist/components/Menu/SubMenu.cjs.map +1 -0
  112. package/dist/components/Menu/SubMenu.d.ts +26 -0
  113. package/dist/components/Menu/SubMenu.d.ts.map +1 -0
  114. package/dist/components/Menu/SubMenu.js +22 -0
  115. package/dist/components/Menu/SubMenu.js.map +1 -0
  116. package/dist/components/Menu/ToggleMenuItem.cjs +3 -5
  117. package/dist/components/Menu/ToggleMenuItem.cjs.map +1 -1
  118. package/dist/components/Menu/ToggleMenuItem.js +2 -4
  119. package/dist/components/Menu/ToggleMenuItem.js.map +1 -1
  120. package/dist/components/Nav/Nav.module.cjs +4 -4
  121. package/dist/components/Nav/Nav.module.cjs.map +1 -1
  122. package/dist/components/Nav/Nav.module.js +4 -4
  123. package/dist/components/Nav/Nav.module.js.map +1 -1
  124. package/dist/components/Nav/NavBar.cjs +2 -2
  125. package/dist/components/Nav/NavItem.cjs +1 -1
  126. package/dist/components/PageHeader/PageHeader.cjs +36 -0
  127. package/dist/components/PageHeader/PageHeader.cjs.map +1 -0
  128. package/dist/components/PageHeader/PageHeader.js +33 -0
  129. package/dist/components/PageHeader/PageHeader.js.map +1 -0
  130. package/dist/components/PageHeader/PageHeader.module.cjs +8 -0
  131. package/dist/components/PageHeader/PageHeader.module.cjs.map +1 -0
  132. package/dist/components/PageHeader/PageHeader.module.js +8 -0
  133. package/dist/components/PageHeader/PageHeader.module.js.map +1 -0
  134. package/dist/components/Progress/Progress.cjs +2 -2
  135. package/dist/components/Progress/Progress.module.cjs +4 -4
  136. package/dist/components/Progress/Progress.module.cjs.map +1 -1
  137. package/dist/components/Progress/Progress.module.js +4 -4
  138. package/dist/components/Progress/Progress.module.js.map +1 -1
  139. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs +1 -1
  140. package/dist/components/Search/Search.cjs +3 -3
  141. package/dist/components/Search/Search.module.cjs +3 -3
  142. package/dist/components/Search/Search.module.cjs.map +1 -1
  143. package/dist/components/Search/Search.module.js +3 -3
  144. package/dist/components/Search/Search.module.js.map +1 -1
  145. package/dist/components/Separator/Separator.cjs +3 -3
  146. package/dist/components/Toast/Toast.cjs +31 -6
  147. package/dist/components/Toast/Toast.cjs.map +1 -1
  148. package/dist/components/Toast/Toast.d.ts +13 -1
  149. package/dist/components/Toast/Toast.d.ts.map +1 -1
  150. package/dist/components/Toast/Toast.js +29 -5
  151. package/dist/components/Toast/Toast.js.map +1 -1
  152. package/dist/components/Toast/Toast.module.cjs +7 -2
  153. package/dist/components/Toast/Toast.module.cjs.map +1 -1
  154. package/dist/components/Toast/Toast.module.js +7 -2
  155. package/dist/components/Toast/Toast.module.js.map +1 -1
  156. package/dist/components/Tooltip/Tooltip.cjs +2 -2
  157. package/dist/components/Tooltip/TooltipProvider.cjs +1 -1
  158. package/dist/components/Typography/Body.cjs +1 -1
  159. package/dist/components/Typography/Heading.cjs +1 -1
  160. package/dist/components/Typography/Text.cjs +1 -1
  161. package/dist/components/Typography/Typography.cjs +2 -2
  162. package/dist/components/Typography/Typography.module.cjs +1 -3
  163. package/dist/components/Typography/Typography.module.js +1 -3
  164. package/dist/components/VisualList/VisualList.cjs +2 -2
  165. package/dist/components/VisualList/VisualListItem.cjs +2 -2
  166. package/dist/index.cjs +4 -0
  167. package/dist/index.d.ts +2 -0
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +3 -1
  170. package/dist/style.css +288 -145
  171. package/package.json +3 -3
  172. package/src/components/Avatar/Avatar.module.css +1 -1
  173. package/src/components/Badge/Badge.module.css +44 -11
  174. package/src/components/Badge/Badge.tsx +10 -2
  175. package/src/components/Button/IconButton/IconButton.tsx +12 -1
  176. package/src/components/Dropdown/Dropdown.module.css +3 -1
  177. package/src/components/Form/Controls/MFA/MFA.module.css +1 -0
  178. package/src/components/Form/Controls/Text/Text.module.css +1 -0
  179. package/src/components/InlineSpinner/InlineSpinner.module.css +4 -1
  180. package/src/components/Menu/ContextMenu.tsx +24 -0
  181. package/src/components/Menu/FloatingMenu.module.css +2 -0
  182. package/src/components/Menu/Menu.tsx +56 -1
  183. package/src/components/Menu/MenuContext.tsx +23 -0
  184. package/src/components/Menu/MenuItem.module.css +27 -5
  185. package/src/components/Menu/SubMenu.tsx +62 -0
  186. package/src/components/Nav/Nav.module.css +4 -1
  187. package/src/components/Progress/Progress.module.css +5 -1
  188. package/src/components/Search/Search.module.css +1 -0
  189. package/src/components/Toast/Toast.module.css +32 -2
  190. package/src/components/Toast/Toast.tsx +68 -6
  191. package/src/index.ts +2 -0
@@ -6,21 +6,83 @@ Please see LICENSE files in the repository root for full details.
6
6
  */
7
7
 
8
8
  import classnames from "classnames";
9
- import React, { forwardRef, type PropsWithChildren } from "react";
9
+ import React, {
10
+ forwardRef,
11
+ type ComponentType,
12
+ type MouseEventHandler,
13
+ type PropsWithChildren,
14
+ } from "react";
10
15
  import styles from "./Toast.module.css";
16
+ import { Text } from "../Typography/Text";
17
+ import { IconButton } from "../Button";
18
+ import CloseIcon from "@vector-im/compound-design-tokens/assets/web/icons/close";
11
19
 
12
20
  type ToastProps = {
13
21
  className?: string;
22
+ /**
23
+ * An icon to display within the button.
24
+ */
25
+ Icon?: ComponentType<React.SVGAttributes<SVGElement>>;
26
+ /**
27
+ * Whether to show the action button. If true, an action button will be shown on the right side of the toast.
28
+ */
29
+ onClose?: MouseEventHandler<HTMLButtonElement>;
30
+ /**
31
+ * The tooltip to show on the close button. This is only used if `onClose` is provided.
32
+ */
33
+ tooltip?: string;
14
34
  } & React.HTMLAttributes<HTMLDivElement>;
15
35
 
16
36
  export const Toast = forwardRef<HTMLDivElement, ToastProps>(function Toast(
17
- { children, className, ...props }: PropsWithChildren<ToastProps>,
37
+ {
38
+ children,
39
+ className,
40
+ Icon,
41
+ onClose,
42
+ tooltip,
43
+ ...props
44
+ }: PropsWithChildren<ToastProps>,
18
45
  ref,
19
46
  ) {
20
- const classes = classnames(styles["toast-container"], className);
47
+ const hasCloseButton = Boolean(onClose);
48
+
49
+ const classes = classnames(styles["toast-container"], className, {
50
+ [styles["has-close"]]: hasCloseButton,
51
+ });
52
+
21
53
  return (
22
- <div {...props} className={classes} ref={ref}>
23
- {children}
24
- </div>
54
+ <Text
55
+ {...props}
56
+ as="div"
57
+ size="sm"
58
+ weight="medium"
59
+ className={classes}
60
+ ref={ref}
61
+ >
62
+ <div className={styles.content}>
63
+ {Icon && (
64
+ <Icon
65
+ className={styles.icon}
66
+ width={20}
67
+ height={20}
68
+ aria-hidden={true}
69
+ />
70
+ )}
71
+ {children}
72
+ </div>
73
+ {hasCloseButton && (
74
+ <IconButton
75
+ size="24px"
76
+ kind="secondary"
77
+ noBackground={true}
78
+ tooltip={tooltip}
79
+ tooltipPlacement="right"
80
+ className={styles.close}
81
+ onClick={onClose}
82
+ >
83
+ <CloseIcon />
84
+ </IconButton>
85
+ )}
86
+ </Text>
25
87
  );
26
88
  });
package/src/index.ts CHANGED
@@ -35,6 +35,7 @@ export { NavBar, NavItem } from "./components/Nav";
35
35
  export { Menu } from "./components/Menu/Menu";
36
36
  export { MenuItem } from "./components/Menu/MenuItem";
37
37
  export { MenuTitle } from "./components/Menu/MenuTitle";
38
+ export { SubMenu } from "./components/Menu/SubMenu";
38
39
  export { RadioMenuItem } from "./components/Menu/RadioMenuItem";
39
40
  export { Progress } from "./components/Progress/Progress";
40
41
  export { Search } from "./components/Search/Search";
@@ -51,6 +52,7 @@ export { Breadcrumb } from "./components/Breadcrumb";
51
52
  export { VisualList, VisualListItem } from "./components/VisualList";
52
53
  export { ChatFilter } from "./components/ChatFilter";
53
54
  export { UnreadCounter, Pill, Unread } from "./components/ActivityMarker";
55
+ export { PageHeader } from "./components/PageHeader/PageHeader";
54
56
 
55
57
  export {
56
58
  TextControl,