agora-ui-foundation 3.2.0 → 3.3.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 (69) hide show
  1. package/lib/components/action-bar/device/index.css +1 -1
  2. package/lib/components/button/index.css +0 -3
  3. package/lib/components/button/index.js +1 -1
  4. package/lib/components/card/index.css +1 -1
  5. package/lib/components/chat-manager/index.css +13 -5
  6. package/lib/components/chat-manager/index.js +25 -2
  7. package/lib/components/checkbox/index.css +2 -2
  8. package/lib/components/confirm-content/index.css +37 -14
  9. package/lib/components/confirm-content/index.js +11 -8
  10. package/lib/components/device-pretest/index.js +1 -1
  11. package/lib/components/dialog/index.css +1 -1
  12. package/lib/components/dialog/index.d.ts +1 -0
  13. package/lib/components/drop-menu/index.css +24 -13
  14. package/lib/components/drop-menu/index.d.ts +1 -0
  15. package/lib/components/drop-menu/index.js +6 -5
  16. package/lib/components/icon/paths/fcr_cameraoff.d.ts +2 -2
  17. package/lib/components/icon/paths/fcr_cameraoff.js +8 -6
  18. package/lib/components/icon/paths/fcr_exclamationmask.js +1 -1
  19. package/lib/components/icon/paths/fcr_put_waiting_room.d.ts +3 -0
  20. package/lib/components/icon/paths/fcr_put_waiting_room.js +22 -0
  21. package/lib/components/icon/paths/fcr_waiting_room.d.ts +3 -0
  22. package/lib/components/icon/paths/fcr_waiting_room.js +22 -0
  23. package/lib/components/icon/paths/fcr_web_fullscream.js +1 -1
  24. package/lib/components/icon/paths/fcr_windowpage_lonely.d.ts +1 -1
  25. package/lib/components/icon/paths/fcr_windowpage_lonely.js +8 -20
  26. package/lib/components/icon/svg-dict.d.ts +1 -1
  27. package/lib/components/icon/svg-exports.d.ts +2 -0
  28. package/lib/components/icon/svg-exports.js +6 -2
  29. package/lib/components/icon/type.d.ts +2 -0
  30. package/lib/components/icon/type.js +2 -0
  31. package/lib/components/icon-text/index.css +4 -0
  32. package/lib/components/icon-text/index.d.ts +1 -0
  33. package/lib/components/icon-text/index.js +7 -4
  34. package/lib/components/input/index.css +13 -6
  35. package/lib/components/live-streaming/container.css +12 -0
  36. package/lib/components/live-streaming/container.js +3 -2
  37. package/lib/components/local-video-player/index.css +7 -2
  38. package/lib/components/notification/index.d.ts +9 -0
  39. package/lib/components/notification/index.js +40 -0
  40. package/lib/components/participants/attendee/index.css +13 -1
  41. package/lib/components/participants/attendee/index.d.ts +50 -1
  42. package/lib/components/participants/attendee/index.js +52 -7
  43. package/lib/components/participants/index.css +4 -1
  44. package/lib/components/participants/index.d.ts +3 -2
  45. package/lib/components/participants/index.js +8 -2
  46. package/lib/components/participants/index.stories.d.ts +1 -4
  47. package/lib/components/participants/index.stories.js +1 -39
  48. package/lib/components/participants/participants-more/index.d.ts +3 -2
  49. package/lib/components/participants/participants-more/index.js +106 -86
  50. package/lib/components/radio/index.css +2 -2
  51. package/lib/components/room-screen-share-state-bar/camera-state/index.js +2 -1
  52. package/lib/components/room-screen-share-state-bar/device/index.css +16 -1
  53. package/lib/components/room-screen-share-state-bar/device/index.js +2 -1
  54. package/lib/components/room-screen-share-state-bar/more/index.js +1 -1
  55. package/lib/components/room-screen-share-state-bar/share-action-nav/index.css +2 -1
  56. package/lib/components/room-screen-share-state-bar/share-audio/index.css +28 -4
  57. package/lib/components/room-screen-share-state-bar/share-audio/index.js +3 -3
  58. package/lib/components/state-bar/index.css +2 -2
  59. package/lib/components/tabs/index.css +1 -1
  60. package/lib/components/tabs/index.d.ts +1 -1
  61. package/lib/components/tooltips-button/tooltip-button.css +2 -2
  62. package/lib/components/watermark/index.css +3 -0
  63. package/lib/components/watermark/index.d.ts +47 -0
  64. package/lib/components/watermark/index.js +195 -0
  65. package/lib/components/window-header/index.js +9 -14
  66. package/lib/theme/fcr-ui-config.d.ts +74 -6
  67. package/lib/theme/fcr-ui-config.js +79 -11
  68. package/package.json +4 -3
  69. package/patches/rc-notification+5.6.2.patch +13 -0
@@ -49,7 +49,8 @@ var FcrParticipants = exports.FcrParticipants = function FcrParticipants(props)
49
49
  _props$perspectiveTyp = props.perspectiveType,
50
50
  perspectiveType = _props$perspectiveTyp === void 0 ? 'host' : _props$perspectiveTyp,
51
51
  userRenderer = props.userRenderer,
52
- onInvite = props.onInvite;
52
+ onInvite = props.onInvite,
53
+ hasPinnedStream = props.hasPinnedStream;
53
54
  var userRowRenderer = function userRowRenderer(renderProps) {
54
55
  var key = renderProps.key,
55
56
  parent = renderProps.parent,
@@ -61,11 +62,16 @@ var FcrParticipants = exports.FcrParticipants = function FcrParticipants(props)
61
62
  columnIndex: 0,
62
63
  rowIndex: index,
63
64
  children: function children(_ref) {
65
+ var _userList$index, _userList$index2;
64
66
  var measure = _ref.measure;
65
67
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
66
68
  style: style,
67
69
  onLoad: measure,
68
- children: userRenderer ? userRenderer(userList[index]) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_attendee.FcrParticipant, _objectSpread(_objectSpread({}, userList[index]), {}, {
70
+ children: userRenderer ? userRenderer(userList[index]) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_attendee.FcrParticipant, _objectSpread(_objectSpread({
71
+ isPin: !!((_userList$index = userList[index]) !== null && _userList$index !== void 0 && _userList$index.isPin),
72
+ hasPinnedStream: hasPinnedStream
73
+ }, userList[index]), {}, {
74
+ allowedOperations: ((_userList$index2 = userList[index]) === null || _userList$index2 === void 0 ? void 0 : _userList$index2.allowedOperations) || [],
69
75
  perspectiveType: perspectiveType,
70
76
  onParticipantsButtonClick: props.toggleParticipantAction
71
77
  }))
@@ -1,6 +1,3 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { FcrParticipants } from '.';
1
+ import { Meta } from '@storybook/react';
3
2
  declare const meta: Meta;
4
- type Story = StoryObj<typeof FcrParticipants>;
5
- export declare const Basic: Story;
6
3
  export default meta;
@@ -1,34 +1,10 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.array.filter.js");
5
- require("core-js/modules/es.array.for-each.js");
6
- require("core-js/modules/es.array.push.js");
7
- require("core-js/modules/es.object.define-properties.js");
8
3
  require("core-js/modules/es.object.define-property.js");
9
- require("core-js/modules/es.object.get-own-property-descriptor.js");
10
- require("core-js/modules/es.object.get-own-property-descriptors.js");
11
- require("core-js/modules/es.object.keys.js");
12
- require("core-js/modules/es.object.to-string.js");
13
- require("core-js/modules/esnext.async-iterator.filter.js");
14
- require("core-js/modules/esnext.async-iterator.for-each.js");
15
- require("core-js/modules/esnext.iterator.constructor.js");
16
- require("core-js/modules/esnext.iterator.filter.js");
17
- require("core-js/modules/esnext.iterator.for-each.js");
18
- require("core-js/modules/web.dom-collections.for-each.js");
19
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
20
4
  Object.defineProperty(exports, "__esModule", {
21
5
  value: true
22
6
  });
23
- exports["default"] = exports.Basic = void 0;
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
- var _ = require(".");
26
- var _data = require("./data");
27
- var _windowHeader = require("../window-header");
28
- var _i18n = require("../../i18n");
29
- var _jsxRuntime = require("react/jsx-runtime");
30
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ exports["default"] = void 0;
32
8
  var meta = {
33
9
  title: 'Components/Participants',
34
10
  tags: ['autodocs'],
@@ -54,18 +30,4 @@ var meta = {
54
30
  }
55
31
  }
56
32
  };
57
- var Basic = exports.Basic = {
58
- args: {
59
- userList: _data.userList,
60
- type: 'window',
61
- perspectiveType: 'attendee',
62
- header: /*#__PURE__*/(0, _jsxRuntime.jsx)(_windowHeader.FcrWindowHeader, {
63
- title: (0, _i18n.transI18n)('fmt_role_participant'),
64
- type: _windowHeader.WindowType.WINDOW
65
- })
66
- },
67
- render: function render(props) {
68
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FcrParticipants, _objectSpread({}, props));
69
- }
70
- };
71
33
  var _default = exports["default"] = meta;
@@ -1,4 +1,5 @@
1
1
  import { FC } from 'react';
2
- import { IFcrParticipantProps } from '../attendee';
2
+ import { ParticipantsMoreActionsProps } from '../attendee';
3
3
  import './index.css';
4
- export declare const FcrParticipantsMoreActions: FC<IFcrParticipantProps>;
4
+ declare const FcrParticipantsMoreActions: FC<ParticipantsMoreActionsProps>;
5
+ export { FcrParticipantsMoreActions };
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.FcrParticipantsMoreActions = void 0;
8
- require("core-js/modules/es.array.concat.js");
9
8
  require("core-js/modules/es.array.filter.js");
10
9
  require("core-js/modules/es.array.includes.js");
10
+ require("core-js/modules/es.array.is-array.js");
11
11
  require("core-js/modules/es.object.to-string.js");
12
12
  require("core-js/modules/es.string.includes.js");
13
13
  require("core-js/modules/esnext.async-iterator.filter.js");
@@ -16,156 +16,176 @@ require("core-js/modules/esnext.iterator.filter.js");
16
16
  var _dropMenu = require("../../drop-menu");
17
17
  var _icon = require("../../icon");
18
18
  var _type = require("../../icon/type");
19
+ var _attendee = require("../attendee");
19
20
  require("./index.css");
20
- var _i18n = require("../../../i18n");
21
+ var _i18next = require("i18next");
22
+ var _cameraState = require("../../room-screen-share-state-bar/camera-state");
21
23
  var _jsxRuntime = require("react/jsx-runtime");
22
24
  var FcrParticipantsMoreActions = exports.FcrParticipantsMoreActions = function FcrParticipantsMoreActions(props) {
23
25
  var isMe = props.isMe,
24
26
  userId = props.userId,
25
27
  hasVideo = props.hasVideo,
26
- _props$onParticipants = props.onParticipantsButtonClick,
27
- onParticipantsButtonClick = _props$onParticipants === void 0 ? function () {} : _props$onParticipants,
28
- userName = props.userName;
29
- var t = (0, _i18n.useI18n)();
30
- var allActions = [{
31
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
32
- type: _type.FcrIconType.FCR_MOBILE_CHAT3,
33
- size: 20,
34
- colors: {
35
- iconPrimary: 'var(--fcr_ui_scene_icontext5)'
36
- }
28
+ hasAudio = props.hasAudio,
29
+ onParticipantsButtonClick = props.onParticipantsButtonClick,
30
+ userName = props.userName,
31
+ userRole = props.userRole,
32
+ isPin = props.isPin,
33
+ hasPinnedStream = props.hasPinnedStream,
34
+ allowedOperations = props.allowedOperations,
35
+ audioDeviceType = props.audioDeviceType,
36
+ userType = props.userType,
37
+ hideActions = props.hideActions;
38
+ var cameraStateType = !hasVideo ? 'primary' : 'danger';
39
+ var allOperationMenu = [{
40
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cameraState.CameraState, {
41
+ isCameraMuted: true
37
42
  }),
38
- title: t('fmt_attendies_button_privatechat'),
39
- key: 'PRIVATE_CHAT',
40
- type: 'primary',
43
+ title: (0, _i18next.t)('fmt_device_label_video_start'),
44
+ key: 'start_video',
45
+ type: cameraStateType,
46
+ canOperation: !hasVideo && userType !== 'phone',
41
47
  onButtonClick: function onButtonClick() {
42
- onParticipantsButtonClick('PRIVATE_CHAT', userId);
48
+ onParticipantsButtonClick(_attendee.ParticipantActionType.UNMUTE_VIDEO, userId);
43
49
  },
44
- role: ['host'],
45
50
  classNames: 'fcr-drop-menu-option-with-under-line'
46
51
  }, {
47
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
48
- type: _type.FcrIconType.FCR_MOBILE_CAMERA2,
49
- size: 20,
50
- colors: {
51
- iconPrimary: 'var(--fcr_ui_scene_icontext5)'
52
- }
52
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cameraState.CameraState, {
53
+ isCameraMuted: true
53
54
  }),
54
- title: "".concat(isMe || hasVideo ? '' : t('fmt_attendies_button_request')).concat(hasVideo ? t('fmt_device_label_video_stop') : t('fmt_device_label_video_start')),
55
- key: 'toggle_video',
55
+ title: (0, _i18next.t)('fmt_sip_button_opencamera'),
56
+ key: 'request_start_video',
56
57
  type: 'primary',
58
+ canOperation: !hasVideo && !isMe && userType !== 'phone',
57
59
  onButtonClick: function onButtonClick() {
58
- onParticipantsButtonClick(hasVideo ? 'MUTE_VIDEO' : 'UNMUTE_VIDEO', userId);
60
+ onParticipantsButtonClick(_attendee.ParticipantActionType.UNMUTE_VIDEO, userId);
61
+ },
62
+ classNames: 'fcr-drop-menu-option-with-under-line'
63
+ }, {
64
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cameraState.CameraState, {
65
+ isCameraMuted: false
66
+ }),
67
+ title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
68
+ children: (0, _i18next.t)('fmt_device_label_video_stop')
69
+ }),
70
+ key: 'stop_video',
71
+ type: cameraStateType,
72
+ canOperation: hasVideo && userType !== 'phone',
73
+ onButtonClick: function onButtonClick() {
74
+ onParticipantsButtonClick(_attendee.ParticipantActionType.MUTE_VIDEO, userId);
59
75
  },
60
- role: ['host', 'me'],
61
76
  classNames: 'fcr-drop-menu-option-with-under-line'
62
77
  }, {
63
78
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
64
- type: _type.FcrIconType.FCR_FOCUSONHIM,
79
+ type: _type.FcrIconType.FCR_MOBILE_CHAT3,
65
80
  size: 20,
66
81
  colors: {
67
82
  iconPrimary: 'var(--fcr_ui_scene_icontext5)'
68
83
  }
69
84
  }),
70
- title: t('fmt_attendies_options_setfocus'),
71
- key: 'set_as_focus_video',
72
- type: 'disabled',
73
- role: ['host', 'attendee'],
85
+ title: (0, _i18next.t)('fmt_attendies_label_privatechat'),
86
+ key: 'private_chat',
87
+ type: 'primary',
88
+ canOperation: !isMe && userType !== 'phone',
74
89
  onButtonClick: function onButtonClick() {
75
- console.log('Remove user', userId);
90
+ onParticipantsButtonClick(_attendee.ParticipantActionType.PRIVATE_CHAT, userId);
76
91
  }
77
92
  }, {
78
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
93
+ icon: isPin ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
94
+ type: _type.FcrIconType.FCR_UNPIN,
95
+ size: 20
96
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
79
97
  type: _type.FcrIconType.FCR_PINPAGE,
80
98
  size: 20,
81
99
  colors: {
82
100
  iconPrimary: 'var(--fcr_ui_scene_icontext5)'
83
101
  }
84
102
  }),
85
- title: "PIN",
103
+ title: isPin ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
104
+ children: (0, _i18next.t)('fmt_attendies_options_cancelfixed')
105
+ }) : hasPinnedStream ? (0, _i18next.t)('fmt_attendies_options_replacefixed') : (0, _i18next.t)('fmt_attendies_options_fixfirst'),
86
106
  key: 'pin',
87
- type: 'disabled',
88
- role: ['host', 'attendee', 'me'],
107
+ type: isPin ? 'danger' : 'primary',
108
+ canOperation: userType === 'normal' || userType === 'meeting-system' && hasVideo,
89
109
  onButtonClick: function onButtonClick() {
90
- onParticipantsButtonClick('PIN', userId);
110
+ onParticipantsButtonClick(isPin ? _attendee.ParticipantActionType.REMOVE_PIN : _attendee.ParticipantActionType.ADD_PIN, userId);
91
111
  },
92
112
  classNames: 'fcr-drop-menu-option-with-under-line'
93
113
  }, {
94
- title: t('fmt_attendies_options_sethost'),
114
+ title: (0, _i18next.t)('fmt_attendies_options_sethost'),
95
115
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
96
- type: _type.FcrIconType.FCR_PINPAGE,
116
+ type: _type.FcrIconType.FCR_HOST2,
97
117
  size: 20,
98
118
  colors: {
99
119
  iconPrimary: 'var(--fcr_ui_scene_icontext5)'
100
120
  }
101
121
  }),
102
122
  key: 'set_as_host',
103
- role: ['host'],
123
+ canOperation: userRole !== _attendee.FcrUserRole.HOST && userType === 'normal',
104
124
  onButtonClick: function onButtonClick() {
105
- onParticipantsButtonClick('SET_AS_HOST', userId);
125
+ onParticipantsButtonClick(_attendee.ParticipantActionType.SET_AS_HOST, userId);
106
126
  }
107
127
  }, {
108
- title: t('fmt_attendies_options_setcohost'),
128
+ title: (0, _i18next.t)('fmt_attendies_options_setcohost'),
109
129
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
110
- type: _type.FcrIconType.FCR_PINPAGE,
130
+ type: _type.FcrIconType.FCR_COHOST2,
111
131
  size: 20,
112
132
  colors: {
113
133
  iconPrimary: 'var(--fcr_ui_scene_icontext5)'
114
134
  }
115
135
  }),
116
- key: 'set_as_co-host',
117
- role: ['host'],
118
- type: 'disabled'
136
+ key: 'set_as_co_host',
137
+ type: 'primary',
138
+ canOperation: userRole !== _attendee.FcrUserRole.COHOST && userType === 'normal',
139
+ onButtonClick: function onButtonClick() {
140
+ onParticipantsButtonClick(_attendee.ParticipantActionType.SET_AS_CO_HOST, userId);
141
+ }
119
142
  }, {
143
+ title: (0, _i18next.t)('fmt_attendies_options_revokecohost'),
120
144
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
121
- type: _type.FcrIconType.FCR_RENAME,
145
+ type: _type.FcrIconType.FCR_PINPAGE,
122
146
  size: 20,
123
147
  colors: {
124
148
  iconPrimary: 'var(--fcr_ui_scene_icontext5)'
125
149
  }
126
150
  }),
127
- title: t('fmt_sip_button_rename'),
128
- key: 'rename',
129
- type: 'disabled',
130
- role: ['me'],
151
+ key: 'revoke_co_host',
152
+ type: 'danger',
153
+ canOperation: userRole === _attendee.FcrUserRole.COHOST && userType === 'normal',
131
154
  onButtonClick: function onButtonClick() {
132
- onParticipantsButtonClick('RENAME', userId);
133
- },
134
- classNames: 'fcr-drop-menu-option-with-under-line'
155
+ onParticipantsButtonClick(_attendee.ParticipantActionType.SET_AS_ATTENDEE, userId);
156
+ }
135
157
  }, {
136
- title: t('fmt_attendies_options_allowlocalrecord'),
158
+ title: (0, _i18next.t)('fmt_modules_tips_mergevideo'),
137
159
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
138
- type: _type.FcrIconType.FCR_PINPAGE,
160
+ type: _type.FcrIconType.FCR_MOBILE_CAMERA2,
139
161
  size: 20,
140
162
  colors: {
141
163
  iconPrimary: 'var(--fcr_ui_scene_icontext5)'
142
164
  }
143
165
  }),
144
- key: 'allow_record_local_video',
145
- role: ['host'],
146
- type: 'disabled',
166
+ key: 'merge_video',
167
+ type: 'primary',
168
+ canOperation: userType === 'phone',
147
169
  onButtonClick: function onButtonClick() {
148
- onParticipantsButtonClick('ALL_RECORDING_LOCAL_VIDEO', userId);
149
- },
150
- classNames: 'fcr-drop-menu-option-with-under-line'
170
+ onParticipantsButtonClick(_attendee.ParticipantActionType.MERGE_VIDEO, userId);
171
+ }
151
172
  }, {
152
- title: t('fmt_attendies_options_putinwaitingroom'),
173
+ title: (0, _i18next.t)('fmt_attendies_options_putinwaitingroom'),
153
174
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
154
- type: _type.FcrIconType.FCR_PINPAGE,
175
+ type: _type.FcrIconType.FCR_PUT_WAITING_ROOM,
155
176
  size: 20,
156
177
  colors: {
157
- iconPrimary: 'var(--fcr_ui_scene_icontext5)'
178
+ iconPrimary: 'var(--fcr_ui_scene_ramp_red6)'
158
179
  }
159
180
  }),
160
181
  key: 'put_into_waiting_room',
161
- role: ['host'],
162
- type: 'disabled',
182
+ type: 'danger',
183
+ canOperation: true,
163
184
  onButtonClick: function onButtonClick() {
164
- onParticipantsButtonClick('PUT_IN_WAITING_ROOM', userId);
165
- },
166
- classNames: 'fcr-drop-menu-option-with-under-line'
185
+ onParticipantsButtonClick(_attendee.ParticipantActionType.PUT_IN_WAITING_ROOM, userId);
186
+ }
167
187
  }, {
168
- title: t('fmt_attendies_button_remove'),
188
+ title: (0, _i18next.t)('fmt_attendies_button_remove'),
169
189
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
170
190
  type: _type.FcrIconType.FCR_SETTING_NONE,
171
191
  size: 20,
@@ -173,24 +193,24 @@ var FcrParticipantsMoreActions = exports.FcrParticipantsMoreActions = function F
173
193
  iconPrimary: 'var(--fcr_ui_scene_ramp_red6)'
174
194
  }
175
195
  }),
176
- key: 'KICK_OUT',
196
+ key: 'kick_out',
177
197
  type: 'danger',
178
- role: ['host'],
198
+ canOperation: true,
179
199
  onButtonClick: function onButtonClick() {
180
- onParticipantsButtonClick('KICK_OUT', userId);
200
+ onParticipantsButtonClick(_attendee.ParticipantActionType.KICK_OUT, userId);
181
201
  }
182
202
  }];
183
- var hostActions = allActions.filter(function (action) {
184
- return action.role.includes('host');
185
- });
186
- var attendeeActions = allActions.filter(function (action) {
187
- return action.role.includes('attendee');
188
- });
189
- var selfActions = allActions.filter(function (action) {
190
- return action.role.includes('me');
191
- });
192
- var currentActions = props.isMe ? selfActions : props.perspectiveType === 'host' ? hostActions : attendeeActions;
203
+ var currentActions = Array.isArray(allowedOperations) && allowedOperations.length > 0 ? allOperationMenu.filter(function (item) {
204
+ return allowedOperations.includes(item.key) && item.canOperation;
205
+ }).filter(function (item) {
206
+ if (hideActions && hideActions.length) {
207
+ return hideActions.includes(item.key) ? false : true;
208
+ } else {
209
+ return true;
210
+ }
211
+ }) : allOperationMenu;
193
212
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dropMenu.FcrDropMenu, {
213
+ className: "fcr-participants-more-dropmenu",
194
214
  title: userName,
195
215
  options: currentActions
196
216
  });
@@ -53,9 +53,9 @@
53
53
  }
54
54
  .fcr-radio-label {
55
55
  color: var(--fcr_ui_scene_icontext1);
56
- font-size: 12px;
56
+ font-size: 14px;
57
57
  line-height: 12px;
58
- font-weight: 300;
58
+ font-weight: 400;
59
59
  padding-left: 4px;
60
60
  user-select: none;
61
61
  overflow-x: hidden;
@@ -16,7 +16,8 @@ var CameraState = exports.CameraState = function CameraState(props) {
16
16
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
17
17
  type: isCameraMuted ? _type.FcrIconType.FCR_CAMERAOFF : _type.FcrIconType.FCR_CAMERA,
18
18
  colors: {
19
- iconPrimary: isCameraMuted ? 'var(--fcr_ui_scene_ramp_red6)' : 'var(--fcr_ui_scene_black8)'
19
+ iconPrimary: isCameraMuted ? 'var(--fcr_ui_scene_ramp_red6)' : 'var(--fcr_web_ui_scene_mainicon1)',
20
+ iconSecondary: isCameraMuted ? 'var(--fcr_ui_scene_ramp_red6)' : 'var(--fcr_web_ui_scene_mainicon1)'
20
21
  },
21
22
  size: size
22
23
  })
@@ -7,21 +7,36 @@
7
7
  width: 100%;
8
8
  height: 32px;
9
9
  border-radius: var(--fcr_cornerradius_xxs);
10
+ padding-left: 6px;
10
11
  }
12
+
11
13
  .share-action-nav__media-title {
12
14
  font-size: 12px;
13
15
  font-weight: 400;
14
16
  color: var(--fcr_ui_scene_icontext1);
15
17
  text-align: left;
16
18
  }
19
+
17
20
  .share-action-nav__media-list-group .fcr-radio:hover {
18
21
  background-color: var(--fcr_web_ui_scene_hover);
19
22
  }
20
23
 
21
24
  .share-action-nav__media-list-group .fcr-radio-label {
22
25
  font-weight: 500;
26
+ margin-left: 8px;
27
+ padding: 0px;
28
+ font-size: 13px;
29
+ }
30
+
31
+ .share-action-nav__media-list-group .fcr-radio-input-wrapper svg {
32
+ width: 14px;
33
+ height: 14px;
34
+ }
35
+
36
+ .share-action-nav__media-list-group .fcr-radio:hover path {
37
+ fill: var(--fcr_ui_scene_ramp_brand6);
23
38
  }
24
39
 
25
40
  .share-action-nav__device-setting {
26
41
  font-size: 12px;
27
- }
42
+ }
@@ -29,7 +29,8 @@ var CameraDevice = exports.CameraDevice = function CameraDevice(props) {
29
29
  icon: {
30
30
  type: isMuted ? _type.FcrIconType.FCR_CAMERAOFF : _type.FcrIconType.FCR_CAMERA,
31
31
  colors: {
32
- iconPrimary: 'var(--fcr_web_ui_scene_mainicon1)'
32
+ iconPrimary: isMuted ? 'var(--fcr_ui_scene_ramp_red6)' : 'var(--fcr_web_ui_scene_mainicon1)',
33
+ iconSecondary: 'var(--fcr_ui_scene_ramp_red6)'
33
34
  },
34
35
  size: 32
35
36
  },
@@ -27,7 +27,7 @@ var More = exports.More = function More(props) {
27
27
  content: props.morePopoverContent ? props.morePopoverContent : /*#__PURE__*/(0, _jsxRuntime.jsx)(MorePopoverContent, {}),
28
28
  overlayInnerStyle: {
29
29
  border: 0,
30
- boxShadow: '0px 0px 15px var(--fcr_web_light_dropup_m)',
30
+ boxShadow: 'var(--fcr_web_light_dropup_m)',
31
31
  borderRadius: 'var(--fcr_cornerradius_l)'
32
32
  },
33
33
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip
@@ -65,7 +65,7 @@
65
65
  .share-action-nav__popover {
66
66
  color: var(--fcr_ui_scene_icontext1);
67
67
  border: 0.5px solid var(--fcr_ui_scene_line1);
68
- box-shadow: 0px 0px 15px var(--fcr_web_light_dropup_m);
68
+ box-shadow: var(--fcr_web_light_dropup_m);
69
69
  border-radius: var(--fcr_cornerradius_l);
70
70
  background-color: var(--fcr_mobile_ui_scene_color_popup_fill2);
71
71
  }
@@ -97,6 +97,7 @@
97
97
  gap: 8px;
98
98
  padding: 6px;
99
99
  box-sizing: border-box;
100
+ font-size: 13px;
100
101
  }
101
102
 
102
103
  .share-action-nav__popover-option:hover {
@@ -27,6 +27,11 @@
27
27
  .share-audio-popover .fcr-radio:hover {
28
28
  background-color: var(--fcr_web_ui_scene_hover);
29
29
  }
30
+
31
+ .share-audio-popover .fcr-radio:hover .fcr-radio-label {
32
+ color: var(--fcr_web_ui_scene_mainicon2);
33
+ }
34
+
30
35
  .share-audio-popover .fcr-radio {
31
36
  width: 100%;
32
37
  border-radius: 4px;
@@ -41,21 +46,40 @@
41
46
 
42
47
  .share-audio-popover .fcr-radio-transparent .fcr-radio-label {
43
48
  color: var(--fcr_ui_scene_icontext1);
49
+ font-weight: 400;
44
50
  }
45
51
 
46
- .share-audio-popover
52
+ .share-audio-popover .share-audio-options svg {
53
+ width: 14px;
54
+ height: 14px;
55
+ }
56
+
57
+ .share-audio-popover .share-audio-options .fcr-radio-transparent:hover path {
58
+ fill: var(--fcr_ui_scene_ramp_brand6);
59
+ }
60
+
61
+ .share-audio-popover .fcr-radio-transparent:hover .fcr-radio-label,
62
+ .share-audio-popover .fcr-radio-transparent:hover .radio-label-normal {
63
+ color: var(--fcr_web_ui_scene_mainicon2);
64
+ }
65
+
66
+ /* .share-audio-popover
47
67
  .fcr-radio-transparent
48
68
  .fcr-radio-input-wrapper:has(> input:checked)
49
69
  ~ .fcr-radio-label {
50
70
  color: var(--fcr_web_ui_scene_mainicon2);
51
- }
71
+ } */
52
72
 
53
73
  .share-audio-popover
54
74
  .fcr-radio-transparent
75
+ .share-audio-popover
76
+ .fcr-radio:hover
55
77
  .fcr-radio-input-wrapper
56
78
  > input:checked
57
- ~ .fcr-radio-label {
58
- color: var(--fcr_web_ui_scene_mainicon2);
79
+ ~ .fcr-radio-inner
80
+ svg
81
+ path {
82
+ fill: var(--fcr_web_ui_scene_mainicon2);
59
83
  }
60
84
 
61
85
  /* .radio-label-active {
@@ -100,7 +100,7 @@ var ShareAudio = exports.ShareAudio = function ShareAudio(props) {
100
100
  overlayClassName: "share-audio-popover",
101
101
  overlayInnerStyle: {
102
102
  border: 0,
103
- boxShadow: '0px 0px 15px var(--fcr_web_light_dropup_m)',
103
+ boxShadow: 'var(--fcr_web_light_dropup_m)',
104
104
  borderRadius: 'var(--fcr_cornerradius_l)',
105
105
  padding: '4px 6px'
106
106
  },
@@ -137,7 +137,7 @@ var ShareAudioOptions = function ShareAudioOptions(props) {
137
137
  children: t('fmt_uimanager_option_Monochannel')
138
138
  }),
139
139
  value: AudioProcessingChannel.MONO,
140
- iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
140
+ iconColor: 'var(--fcr_ui_scene_icontext1)',
141
141
  styleType: 'transparent'
142
142
  }, {
143
143
  label: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -145,7 +145,7 @@ var ShareAudioOptions = function ShareAudioOptions(props) {
145
145
  children: t('fmt_uimanager_option_Stereo')
146
146
  }),
147
147
  value: AudioProcessingChannel.STEREO,
148
- iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
148
+ iconColor: 'var(--fcr_ui_scene_icontext1)',
149
149
  styleType: 'transparent'
150
150
  }],
151
151
  onChange: function onChange(value) {
@@ -354,9 +354,9 @@
354
354
  .fcr-state-bar__meeting-info-drop .fcr-drop-menu {
355
355
  width: 100%;
356
356
  border:1px solid var(--fcr_ui_scene_line1);
357
- box-shadow: 0 0 15px 0 var(--fcr_web_light_dropup_m);
358
-
357
+ box-shadow: var(--fcr_web_light_dropup_m);
359
358
  }
359
+
360
360
  .fcr-state-bar__meeting-info-drop .fcr-drop-menu-option-text{
361
361
  overflow: hidden;
362
362
  text-overflow: ellipsis;
@@ -1,6 +1,6 @@
1
1
  .fcr-tabs {
2
2
  color: var(--fcr_ui_scene_icontext2);
3
- border-radius: var(--fcr_cornerradius_l);
3
+ border-radius: var(--fcr_cornerradius_s);
4
4
  padding: 4px;
5
5
  font-size: 16px;
6
6
  line-height: 1;
@@ -2,7 +2,7 @@ import { FC } from 'react';
2
2
  import './index.css';
3
3
  export type TabsProps = {
4
4
  items: {
5
- label: string;
5
+ label: string | React.ReactNode;
6
6
  key: string;
7
7
  }[];
8
8
  activeKey: string;
@@ -35,14 +35,14 @@
35
35
  .frc-tooltip-button__popover {
36
36
  color: var(--fcr_ui_scene_icontext1);
37
37
  border: 0.5px solid var(--fcr_ui_scene_line1);
38
- box-shadow: 0px 0px 15px var(--fcr_web_light_dropup_m);
38
+ box-shadow: var(--fcr_web_light_dropup_l);
39
39
  border-radius: var(--fcr_cornerradius_l);
40
40
  background-color: var(--fcr_mobile_ui_scene_color_popup_fill2);
41
41
  overflow: hidden;
42
42
  }
43
43
  .frc-tooltip-button__popover .fcr-tooltip-inner{
44
44
  border: 0;
45
- box-shadow: 0px 0px 15px var(--fcr_web_light_dropup_m);
45
+ box-shadow: var(--fcr_web_light_dropup_m);
46
46
  border-radius: var(--fcr_cornerradius_l);
47
47
  color: var(--fcr_ui_scene_icontext1);
48
48
  padding: 10px;
@@ -0,0 +1,3 @@
1
+ .fcr-watermark-wrapper {
2
+ height: 100%;
3
+ }