@azure/communication-react 1.4.2-alpha-202211290015.0 → 1.4.2-alpha-202211300015.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 (23) hide show
  1. package/dist/communication-react.d.ts +9 -17
  2. package/dist/dist-cjs/communication-react/index.js +31 -52
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/communication-react/src/index.d.ts +0 -1
  7. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +8 -16
  9. package/dist/dist-esm/react-components/src/components/VideoTile.js +21 -13
  10. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  11. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +1 -1
  12. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +11 -26
  13. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/utils.d.ts +1 -6
  15. package/dist/dist-esm/react-components/src/components/utils.js +0 -16
  16. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/index.d.ts +0 -1
  18. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
  20. package/dist/dist-esm/react-components/src/theming/icons.js +3 -1
  21. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  22. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -0
  23. package/package.json +8 -8
@@ -50,10 +50,10 @@ import { IButtonProps } from '@fluentui/react';
50
50
  import { IButtonStyles } from '@fluentui/react';
51
51
  import { IContextualMenuItem } from '@fluentui/react';
52
52
  import { IContextualMenuItemStyles } from '@fluentui/react';
53
+ import { IContextualMenuProps } from '@fluentui/react';
53
54
  import { IContextualMenuStyles } from '@fluentui/react';
54
55
  import { IDropdownOption } from '@fluentui/react';
55
56
  import { IDropdownStyles } from '@fluentui/react';
56
- import { IIconProps } from '@fluentui/react';
57
57
  import { ILinkStyles } from '@fluentui/react';
58
58
  import { IMessageBarProps } from '@fluentui/react';
59
59
  import { IncomingCall } from '@azure/communication-calling';
@@ -4553,6 +4553,7 @@ export declare const DEFAULT_COMPONENT_ICONS: {
4553
4553
  UnsupportedBrowserWarning: JSX.Element;
4554
4554
  BrowserPermissionDeniedError: JSX.Element;
4555
4555
  VideoTilePinned: JSX.Element;
4556
+ VideoTileMoreOptions: JSX.Element;
4556
4557
  };
4557
4558
 
4558
4559
  /**
@@ -4649,6 +4650,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
4649
4650
  UnsupportedBrowserWarning: JSX.Element;
4650
4651
  BrowserPermissionDeniedError: JSX.Element;
4651
4652
  VideoTilePinned: JSX.Element;
4653
+ VideoTileMoreOptions: JSX.Element;
4652
4654
  };
4653
4655
 
4654
4656
  /**
@@ -8295,18 +8297,6 @@ export declare interface VideoStreamRendererViewState {
8295
8297
  */
8296
8298
  export declare const VideoTile: (props: VideoTileProps) => JSX.Element;
8297
8299
 
8298
- /**
8299
- * @beta
8300
- * MenuItems to be diplayed in video tile in the contextual/drawer menu
8301
- */
8302
- export declare type VideoTileMenuItems = Array<{
8303
- key: string;
8304
- ariaLabel?: string;
8305
- text: string;
8306
- onClick: () => void;
8307
- iconProps: IIconProps;
8308
- }>;
8309
-
8310
8300
  /**
8311
8301
  * Props for {@link VideoTile}.
8312
8302
  *
@@ -8345,10 +8335,6 @@ export declare interface VideoTileProps {
8345
8335
  * Whether the video is muted or not.
8346
8336
  */
8347
8337
  isMuted?: boolean;
8348
- /**
8349
- * Display custom menu items in the VideoTile's contextual menu.
8350
- */
8351
- menuItems?: VideoTileMenuItems;
8352
8338
  /**
8353
8339
  * If true, the video tile will show the pin icon.
8354
8340
  */
@@ -8387,6 +8373,12 @@ export declare interface VideoTileProps {
8387
8373
  */
8388
8374
  participantState?: ParticipantState;
8389
8375
  strings?: VideoTileStrings;
8376
+ /**
8377
+ * Display custom menu items in the VideoTile's contextual menu.
8378
+ * Uses Fluent UI ContextualMenu.
8379
+ * An ellipses icon will be displayed to open the contextual menu if this prop is defined.
8380
+ */
8381
+ contextualMenu?: IContextualMenuProps;
8390
8382
  /**
8391
8383
  * Callback triggered by video tile on touch and hold.
8392
8384
  */
@@ -202,7 +202,7 @@ const _toCommunicationIdentifier = (id) => {
202
202
  // Copyright (c) Microsoft Corporation.
203
203
  // Licensed under the MIT license.
204
204
  // GENERATED FILE. DO NOT EDIT MANUALLY.
205
- var telemetryVersion = '1.4.2-alpha-202211290015.0';
205
+ var telemetryVersion = '1.4.2-alpha-202211300015.0';
206
206
 
207
207
  // Copyright (c) Microsoft Corporation.
208
208
  /**
@@ -4382,22 +4382,6 @@ const messageBarType = (errorType) => {
4382
4382
  return react.MessageBarType.error;
4383
4383
  }
4384
4384
  };
4385
- /**
4386
- * @private
4387
- */
4388
- const mapMenuItemsToContextualMenuItems = (menuItems) => {
4389
- const contextualMenuItems = [];
4390
- menuItems.map((item) => {
4391
- contextualMenuItems.push({
4392
- key: item.key,
4393
- text: item.text,
4394
- ariaLabel: item.ariaLabel,
4395
- onClick: item.onClick,
4396
- iconProps: item.iconProps
4397
- });
4398
- });
4399
- return contextualMenuItems;
4400
- };
4401
4385
  /**
4402
4386
  * @private
4403
4387
  * @param errorType
@@ -5071,7 +5055,9 @@ const DEFAULT_COMPONENT_ICONS = {
5071
5055
  /* @conditional-compile-remove(call-readiness) */
5072
5056
  BrowserPermissionDeniedError: React__default['default'].createElement(BrowserPermissionDenied20Filled, null),
5073
5057
  /* @conditional-compile-remove(pinned-participants) */
5074
- VideoTilePinned: React__default['default'].createElement(reactIcons.Pin16Filled, null)
5058
+ VideoTilePinned: React__default['default'].createElement(reactIcons.Pin16Filled, null),
5059
+ /* @conditional-compile-remove(pinned-participants) */
5060
+ VideoTileMoreOptions: React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, null)
5075
5061
  };
5076
5062
 
5077
5063
  // Copyright (c) Microsoft Corporation.
@@ -8001,36 +7987,21 @@ const participantStateStringStyles = (theme) => {
8001
7987
  /**
8002
7988
  * @private
8003
7989
  */
8004
- const menuButtonStyles = {
7990
+ const moreButtonStyles = {
8005
7991
  root: {
8006
- background: 'none',
8007
- border: 'none',
8008
- borderRadius: 0,
8009
- minHeight: '0.125rem',
8010
- minWidth: '2rem',
8011
- width: '100%',
8012
- maxWidth: '3rem',
8013
- svg: {
8014
- verticalAlign: 'text-top'
8015
- }
7992
+ // To ensure that the button is clickable when there is a floating video tile
7993
+ zIndex: 1,
7994
+ color: 'inherit',
7995
+ height: '100%'
8016
7996
  },
8017
- splitButtonMenuButton: {
8018
- border: 'none'
7997
+ rootHovered: {
7998
+ background: 'none'
8019
7999
  },
8020
- flexContainer: {
8021
- flexFlow: 'column',
8022
- display: 'contents'
8000
+ rootPressed: {
8001
+ background: 'none'
8023
8002
  },
8024
- label: {
8025
- fontSize: '0.625rem',
8026
- fontWeight: '400',
8027
- lineHeight: '1rem',
8028
- cursor: 'pointer',
8029
- display: 'block',
8030
- margin: '0rem 0.25rem',
8031
- overflow: 'hidden',
8032
- textOverflow: 'ellipsis',
8033
- whiteSpace: 'nowrap'
8003
+ rootExpanded: {
8004
+ background: 'none'
8034
8005
  }
8035
8006
  };
8036
8007
 
@@ -8141,16 +8112,24 @@ const DefaultPlaceholder = (props) => {
8141
8112
  React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
8142
8113
  React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }))));
8143
8114
  };
8144
- /* @conditional-compile-remove(pinned-participants) */
8145
- const menuIcon = () => React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, { primaryFill: "currentColor" });
8146
8115
  const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
8147
8116
  /* @conditional-compile-remove(pinned-participants) */
8117
+ const videoTileMoreIconProps = { iconName: 'VideoTileMoreOptions' };
8118
+ /* @conditional-compile-remove(pinned-participants) */
8119
+ const videoTileMoreMenuIconProps = { iconName: undefined, style: { display: 'none' } };
8120
+ /* @conditional-compile-remove(pinned-participants) */
8121
+ const videoTileMoreMenuProps = {
8122
+ directionalHint: react.DirectionalHint.topLeftEdge,
8123
+ isBeakVisible: false,
8124
+ styles: { container: { maxWidth: '8rem' } }
8125
+ };
8126
+ /* @conditional-compile-remove(pinned-participants) */
8148
8127
  const VideoTileMoreOptionsButton = (props) => {
8149
- const { menuItems, menuStyles } = props;
8150
- if (!menuItems || menuItems.length === 0) {
8128
+ const { contextualMenu } = props;
8129
+ if (!contextualMenu) {
8151
8130
  return React__default['default'].createElement(React__default['default'].Fragment, null);
8152
8131
  }
8153
- return (React__default['default'].createElement(react.DefaultButton, { styles: react.concatStyleSets(menuButtonStyles, menuStyles !== null && menuStyles !== void 0 ? menuStyles : {}), onRenderIcon: menuIcon, menuIconProps: { hidden: true }, menuProps: { items: mapMenuItemsToContextualMenuItems(menuItems), directionalHint: react.DirectionalHint.topRightEdge } }));
8132
+ return (React__default['default'].createElement(react.IconButton, { styles: moreButtonStyles, iconProps: videoTileMoreIconProps, menuIconProps: videoTileMoreMenuIconProps, menuProps: Object.assign(Object.assign({}, videoTileMoreMenuProps), contextualMenu) }));
8154
8133
  };
8155
8134
  /**
8156
8135
  * A component to render the video stream for a single call participant.
@@ -8162,9 +8141,9 @@ const VideoTileMoreOptionsButton = (props) => {
8162
8141
  const VideoTile = (props) => {
8163
8142
  const { children, displayName, initialsName, isMirrored, isMuted,
8164
8143
  /* @conditional-compile-remove(pinned-participants) */
8165
- isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking,
8144
+ isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX,
8166
8145
  /* @conditional-compile-remove(pinned-participants) */
8167
- menuItems, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX } = props;
8146
+ contextualMenu } = props;
8168
8147
  const [personaSize, setPersonaSize] = React.useState(100);
8169
8148
  const videoTileRef = React.useRef(null);
8170
8149
  const locale = useLocale$1();
@@ -8238,7 +8217,7 @@ const VideoTile = (props) => {
8238
8217
  showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
8239
8218
  React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
8240
8219
  /* @conditional-compile-remove(pinned-participants) */
8241
- React__default['default'].createElement(VideoTileMoreOptionsButton, { menuItems: menuItems, menuStyles: props.styles }),
8220
+ React__default['default'].createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu }),
8242
8221
  /* @conditional-compile-remove(pinned-participants) */
8243
8222
  isPinned && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
8244
8223
  React__default['default'].createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) })))))),