@ai-matrx/meet 0.11.44 → 0.11.45
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.
- package/CHANGELOG.md +6 -0
- package/dist/{collab-BNJNgXFB.d.cts → collab-D1TX5uf9.d.cts} +7 -0
- package/dist/{collab-BNJNgXFB.d.ts → collab-D1TX5uf9.d.ts} +7 -0
- package/dist/{components-BDtGzHf4.d.ts → components-CNwBgmYU.d.ts} +1 -1
- package/dist/{components-BxK993iW.d.cts → components-CkyDos0f.d.cts} +1 -1
- package/dist/core.cjs +58 -7
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +25 -3
- package/dist/core.d.ts +25 -3
- package/dist/core.js +58 -7
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +58 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +58 -7
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +169 -25
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js +169 -25
- package/dist/react.js.map +1 -1
- package/dist/skins/meet.cjs +112 -24
- package/dist/skins/meet.cjs.map +1 -1
- package/dist/skins/meet.d.cts +2 -2
- package/dist/skins/meet.d.ts +2 -2
- package/dist/skins/meet.js +112 -24
- package/dist/skins/meet.js.map +1 -1
- package/dist/styles.css +16 -0
- package/package.json +4 -4
package/dist/skins/meet.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { A as AiPanel, a as AttendanceNotice, b as Avatar, C as Captions, c as ChatPanel, d as ConnectionDot, e as ConsentNotice, f as ControlBar, g as ControlButton, H as HostMenu, L as LobbyPanel, M as MeetSkinRoom, h as MeetingOverlays, i as MenuItem, P as PanelShell, j as ParticipantTile, k as PeoplePanel, l as PersonMenu, m as Popover, n as PreJoin, Q as QualityBars, R as ReactionOverlay, o as RecordingIndicator, S as SettingsPanel, p as ShortcutsSheet, q as Stage, T as Toast } from '../components-
|
|
1
|
+
export { A as AiPanel, a as AttendanceNotice, b as Avatar, C as Captions, c as ChatPanel, d as ConnectionDot, e as ConsentNotice, f as ControlBar, g as ControlButton, H as HostMenu, L as LobbyPanel, M as MeetSkinRoom, h as MeetingOverlays, i as MenuItem, P as PanelShell, j as ParticipantTile, k as PeoplePanel, l as PersonMenu, m as Popover, n as PreJoin, Q as QualityBars, R as ReactionOverlay, o as RecordingIndicator, S as SettingsPanel, p as ShortcutsSheet, q as Stage, T as Toast } from '../components-CkyDos0f.cjs';
|
|
2
2
|
import { ReactNode, SVGProps } from 'react';
|
|
3
|
-
import { C as CollabPanel } from '../collab-
|
|
3
|
+
import { C as CollabPanel } from '../collab-D1TX5uf9.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* POLLS, Q&A, THE SHARED WHITEBOARD AND BREAKOUT ROOMS — the in-room surfaces (Meet wave 5).
|
package/dist/skins/meet.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { A as AiPanel, a as AttendanceNotice, b as Avatar, C as Captions, c as ChatPanel, d as ConnectionDot, e as ConsentNotice, f as ControlBar, g as ControlButton, H as HostMenu, L as LobbyPanel, M as MeetSkinRoom, h as MeetingOverlays, i as MenuItem, P as PanelShell, j as ParticipantTile, k as PeoplePanel, l as PersonMenu, m as Popover, n as PreJoin, Q as QualityBars, R as ReactionOverlay, o as RecordingIndicator, S as SettingsPanel, p as ShortcutsSheet, q as Stage, T as Toast } from '../components-
|
|
1
|
+
export { A as AiPanel, a as AttendanceNotice, b as Avatar, C as Captions, c as ChatPanel, d as ConnectionDot, e as ConsentNotice, f as ControlBar, g as ControlButton, H as HostMenu, L as LobbyPanel, M as MeetSkinRoom, h as MeetingOverlays, i as MenuItem, P as PanelShell, j as ParticipantTile, k as PeoplePanel, l as PersonMenu, m as Popover, n as PreJoin, Q as QualityBars, R as ReactionOverlay, o as RecordingIndicator, S as SettingsPanel, p as ShortcutsSheet, q as Stage, T as Toast } from '../components-CNwBgmYU.js';
|
|
2
2
|
import { ReactNode, SVGProps } from 'react';
|
|
3
|
-
import { C as CollabPanel } from '../collab-
|
|
3
|
+
import { C as CollabPanel } from '../collab-D1TX5uf9.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* POLLS, Q&A, THE SHARED WHITEBOARD AND BREAKOUT ROOMS — the in-room surfaces (Meet wave 5).
|
package/dist/skins/meet.js
CHANGED
|
@@ -7,6 +7,33 @@ import { useEffect as useEffect6, useLayoutEffect, useRef as useRef6, useState a
|
|
|
7
7
|
// src/react/facade.ts
|
|
8
8
|
import { useMemo as useMemo5 } from "react";
|
|
9
9
|
|
|
10
|
+
// src/core/phase.ts
|
|
11
|
+
var LIVE_PHASES = /* @__PURE__ */ new Set(["joining", "in_call"]);
|
|
12
|
+
var WAITING_PHASES = /* @__PURE__ */ new Set([
|
|
13
|
+
"waiting:host_not_started",
|
|
14
|
+
"waiting:knocking",
|
|
15
|
+
"denied",
|
|
16
|
+
"knock_expired"
|
|
17
|
+
]);
|
|
18
|
+
var RETRYABLE_REFUSALS = /* @__PURE__ */ new Set([
|
|
19
|
+
"refused:locked",
|
|
20
|
+
"refused:too_early",
|
|
21
|
+
"refused:meeting_full",
|
|
22
|
+
"refused:platform_capacity"
|
|
23
|
+
]);
|
|
24
|
+
function isLivePhase(phase) {
|
|
25
|
+
return LIVE_PHASES.has(phase);
|
|
26
|
+
}
|
|
27
|
+
function isWaitingPhase(phase) {
|
|
28
|
+
return WAITING_PHASES.has(phase);
|
|
29
|
+
}
|
|
30
|
+
function isRefusedPhase(phase) {
|
|
31
|
+
return phase.startsWith("refused:");
|
|
32
|
+
}
|
|
33
|
+
function reasonOf(phase) {
|
|
34
|
+
return isRefusedPhase(phase) ? phase.slice("refused:".length) : null;
|
|
35
|
+
}
|
|
36
|
+
|
|
10
37
|
// src/core/names.ts
|
|
11
38
|
var CONNECTION_SEPARATOR = "~";
|
|
12
39
|
function personOf(identity) {
|
|
@@ -322,27 +349,6 @@ function isObserverRole(role) {
|
|
|
322
349
|
return role === "viewer";
|
|
323
350
|
}
|
|
324
351
|
|
|
325
|
-
// src/core/phase.ts
|
|
326
|
-
var LIVE_PHASES = /* @__PURE__ */ new Set(["joining", "in_call"]);
|
|
327
|
-
var WAITING_PHASES = /* @__PURE__ */ new Set([
|
|
328
|
-
"waiting:host_not_started",
|
|
329
|
-
"waiting:knocking",
|
|
330
|
-
"denied",
|
|
331
|
-
"knock_expired"
|
|
332
|
-
]);
|
|
333
|
-
function isLivePhase(phase) {
|
|
334
|
-
return LIVE_PHASES.has(phase);
|
|
335
|
-
}
|
|
336
|
-
function isWaitingPhase(phase) {
|
|
337
|
-
return WAITING_PHASES.has(phase);
|
|
338
|
-
}
|
|
339
|
-
function isRefusedPhase(phase) {
|
|
340
|
-
return phase.startsWith("refused:");
|
|
341
|
-
}
|
|
342
|
-
function reasonOf(phase) {
|
|
343
|
-
return isRefusedPhase(phase) ? phase.slice("refused:".length) : null;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
352
|
// src/core/app-panel.ts
|
|
347
353
|
function appPanelOf(meeting) {
|
|
348
354
|
const raw = meeting?.metadata?.["app_panel"];
|
|
@@ -2000,6 +2006,10 @@ function actionsFor(host) {
|
|
|
2000
2006
|
leave: () => engine.leave(),
|
|
2001
2007
|
backToPrejoin: () => engine.backToPrejoin(),
|
|
2002
2008
|
retry: () => {
|
|
2009
|
+
if (RETRYABLE_REFUSALS.has(store.snapshot().phase)) {
|
|
2010
|
+
void engine.rejoin().catch(() => void 0);
|
|
2011
|
+
return;
|
|
2012
|
+
}
|
|
2003
2013
|
store.dispatch({ type: "retry", click: true });
|
|
2004
2014
|
},
|
|
2005
2015
|
resolved: () => {
|
|
@@ -3735,6 +3745,7 @@ function ControlBar({ onLeave }) {
|
|
|
3735
3745
|
]
|
|
3736
3746
|
}
|
|
3737
3747
|
),
|
|
3748
|
+
/* @__PURE__ */ jsx6(WaitingRoomRule, {}),
|
|
3738
3749
|
queue.length > 0 ? /* @__PURE__ */ jsxs4(
|
|
3739
3750
|
MenuItem,
|
|
3740
3751
|
{
|
|
@@ -3954,6 +3965,58 @@ function MenuItem({
|
|
|
3954
3965
|
}
|
|
3955
3966
|
);
|
|
3956
3967
|
}
|
|
3968
|
+
var LOBBY_BYPASS_CHOICES = [
|
|
3969
|
+
{ value: "everyone", label: "Everyone" },
|
|
3970
|
+
{ value: "org_and_invited", label: "Your organization and invited people" },
|
|
3971
|
+
{ value: "org", label: "Your organization" },
|
|
3972
|
+
{ value: "invited", label: "Invited people" },
|
|
3973
|
+
{ value: "host_only", label: "Only hosts" }
|
|
3974
|
+
];
|
|
3975
|
+
function WaitingRoomRule() {
|
|
3976
|
+
const host = useRequiredMeetHost();
|
|
3977
|
+
const [open, setOpen] = useState5(false);
|
|
3978
|
+
const [value, setValue] = useState5(null);
|
|
3979
|
+
const [notice, setNotice] = useState5(null);
|
|
3980
|
+
useEffect6(() => {
|
|
3981
|
+
let live = true;
|
|
3982
|
+
void host.meetings.meetingRule("lobby_bypass").then((rule) => {
|
|
3983
|
+
if (live) setValue(typeof rule === "string" ? rule : null);
|
|
3984
|
+
}).catch(() => void 0);
|
|
3985
|
+
return () => {
|
|
3986
|
+
live = false;
|
|
3987
|
+
};
|
|
3988
|
+
}, [host]);
|
|
3989
|
+
const current = LOBBY_BYPASS_CHOICES.find((choice) => choice.value === value)?.label ?? null;
|
|
3990
|
+
return /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
3991
|
+
/* @__PURE__ */ jsxs4(MenuItem, { onSelect: () => setOpen(!open), children: [
|
|
3992
|
+
/* @__PURE__ */ jsx6(LockIcon, { width: 16, height: 16 }),
|
|
3993
|
+
" Who can skip the waiting room",
|
|
3994
|
+
current !== null ? /* @__PURE__ */ jsx6("span", { className: "mx-meet__menu-value", children: current }) : null
|
|
3995
|
+
] }),
|
|
3996
|
+
open ? /* @__PURE__ */ jsxs4("div", { role: "group", "aria-label": "Who can skip the waiting room", "data-meet-rule": "lobby_bypass", children: [
|
|
3997
|
+
LOBBY_BYPASS_CHOICES.map((choice) => /* @__PURE__ */ jsxs4(
|
|
3998
|
+
"button",
|
|
3999
|
+
{
|
|
4000
|
+
type: "button",
|
|
4001
|
+
role: "menuitemradio",
|
|
4002
|
+
"aria-checked": choice.value === value,
|
|
4003
|
+
className: "mx-meet__menu-item mx-meet__menu-item--sub",
|
|
4004
|
+
onClick: () => {
|
|
4005
|
+
setNotice(null);
|
|
4006
|
+
void host.meetings.setMeetingRule("lobby_bypass", choice.value).then(() => setValue(choice.value)).catch((error) => setNotice(error instanceof Error ? error.message : String(error)));
|
|
4007
|
+
},
|
|
4008
|
+
children: [
|
|
4009
|
+
choice.value === value ? /* @__PURE__ */ jsx6(CheckIcon, { width: 14, height: 14 }) : null,
|
|
4010
|
+
" ",
|
|
4011
|
+
choice.label
|
|
4012
|
+
]
|
|
4013
|
+
},
|
|
4014
|
+
choice.value
|
|
4015
|
+
)),
|
|
4016
|
+
notice !== null ? /* @__PURE__ */ jsx6("p", { className: "mx-meet__menu-note", role: "status", children: notice }) : null
|
|
4017
|
+
] }) : null
|
|
4018
|
+
] });
|
|
4019
|
+
}
|
|
3957
4020
|
function Toast({ text, failed, onDone }) {
|
|
3958
4021
|
useEffect6(() => {
|
|
3959
4022
|
const timer = setTimeout(onDone, failed ? 7e3 : 4e3);
|
|
@@ -5042,7 +5105,11 @@ function WaitingList({ lobby }) {
|
|
|
5042
5105
|
/* @__PURE__ */ jsx6(Avatar, { name: entry.displayName, url: entry.avatarUrl, size: 32 }),
|
|
5043
5106
|
/* @__PURE__ */ jsxs4("span", { className: "mx-meet__person-name", children: [
|
|
5044
5107
|
entry.displayName,
|
|
5045
|
-
entry.userId === null ? /* @__PURE__ */ jsx6("span", { className: "mx-meet__badge", children: "Guest" }) : null
|
|
5108
|
+
entry.userId === null ? /* @__PURE__ */ jsx6("span", { className: "mx-meet__badge", children: "Guest" }) : null,
|
|
5109
|
+
entry.flag === "previously_removed" ? (
|
|
5110
|
+
// `mod-removed-bypass`: advice for the host, never a block — Admit stays.
|
|
5111
|
+
/* @__PURE__ */ jsx6("span", { className: "mx-meet__badge mx-meet__badge--warn", "data-meet-notice": "knock-flagged", children: "Previously removed" })
|
|
5112
|
+
) : null
|
|
5046
5113
|
] }),
|
|
5047
5114
|
/* @__PURE__ */ jsx6(ControlButton, { label: `Admit ${entry.displayName}`, onClick: () => void lobby.admit(entry), children: /* @__PURE__ */ jsx6(CheckIcon, { width: 16, height: 16 }) }),
|
|
5048
5115
|
/* @__PURE__ */ jsx6(
|
|
@@ -5667,7 +5734,20 @@ function ExitScreen({ onLeave }) {
|
|
|
5667
5734
|
const { phase, reason, host, snapshot, actions, call, connection } = useMeetCore();
|
|
5668
5735
|
const [busy, setBusy] = useState5(false);
|
|
5669
5736
|
const failure = snapshot?.failure ?? null;
|
|
5670
|
-
const retryLeft = useCountdown(
|
|
5737
|
+
const retryLeft = useCountdown(
|
|
5738
|
+
phase === "refused:lobby_rejects" || phase === "refused:too_early" ? failure?.retryAt ?? null : null
|
|
5739
|
+
);
|
|
5740
|
+
const reaskedAtZero = useRef6(false);
|
|
5741
|
+
useEffect6(() => {
|
|
5742
|
+
if (phase !== "refused:too_early") {
|
|
5743
|
+
reaskedAtZero.current = false;
|
|
5744
|
+
return;
|
|
5745
|
+
}
|
|
5746
|
+
if (retryLeft === 0 && !reaskedAtZero.current) {
|
|
5747
|
+
reaskedAtZero.current = true;
|
|
5748
|
+
actions.retry();
|
|
5749
|
+
}
|
|
5750
|
+
}, [phase, retryLeft, actions]);
|
|
5671
5751
|
const rejoin = /* @__PURE__ */ jsx6(
|
|
5672
5752
|
Button,
|
|
5673
5753
|
{
|
|
@@ -5705,11 +5785,19 @@ function ExitScreen({ onLeave }) {
|
|
|
5705
5785
|
if (phase.startsWith("refused:")) {
|
|
5706
5786
|
const code = phase.slice("refused:".length);
|
|
5707
5787
|
title = REFUSED_TITLES[code] ?? "You can't join this meeting";
|
|
5708
|
-
line = code === "too_early" || code === "registration_required" || code === "cancelled" ? failure?.remedy ?? null : null;
|
|
5788
|
+
line = code === "too_early" || code === "registration_required" || code === "cancelled" || code === "wrong_account" ? failure?.remedy ?? null : null;
|
|
5789
|
+
if (code === "too_early" && retryLeft !== null && retryLeft > 0) line = `Opens in ${clockText(retryLeft)}`;
|
|
5709
5790
|
actionsNode = /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
5710
5791
|
/* @__PURE__ */ jsx6(Button, { type: "button", variant: "outline", onClick: actions.retry, children: "Try again" }),
|
|
5711
5792
|
home
|
|
5712
5793
|
] });
|
|
5794
|
+
if (code === "sign_in_required" || code === "wrong_account") {
|
|
5795
|
+
const back = typeof window === "undefined" ? "/" : `${window.location.pathname}${window.location.search}`;
|
|
5796
|
+
actionsNode = /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
5797
|
+
/* @__PURE__ */ jsx6(Button, { asChild: true, children: /* @__PURE__ */ jsx6("a", { href: `/login?redirectTo=${encodeURIComponent(back)}`, children: code === "sign_in_required" ? "Sign in" : "Switch account" }) }),
|
|
5798
|
+
home
|
|
5799
|
+
] });
|
|
5800
|
+
}
|
|
5713
5801
|
if (code === "lobby_rejects") {
|
|
5714
5802
|
if (retryLeft !== null && retryLeft > 0) {
|
|
5715
5803
|
line = `You can ask again in ${clockText(retryLeft)}`;
|