@q9labsai/chalk-react 5.0.1 → 5.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.
- package/CHANGELOG.md +186 -0
- package/dist/bindings/context.d.ts +0 -1
- package/dist/bindings/hooks.d.ts +2 -1
- package/dist/{chunk-NPOO7BOX.js → chunk-CYC2G42K.js} +68 -59
- package/dist/{chunk-XN2E352E.js → chunk-G62BKRNX.js} +2999 -774
- package/dist/{chunk-WRAEH24P.js → chunk-HWQLW4JR.js} +56 -6
- package/dist/components/admission-panel/AdmissionPanel.d.ts +0 -1
- package/dist/components/atomic/AudioIndicator.d.ts +0 -1
- package/dist/components/atomic/Avatar.d.ts +0 -1
- package/dist/components/atomic/HandRaiseIndicator.d.ts +0 -1
- package/dist/components/atomic/NameTag.d.ts +0 -1
- package/dist/components/atomic/ReactionBubble.d.ts +0 -1
- package/dist/components/atomic/StatusBadge.d.ts +0 -1
- package/dist/components/atomic/VolumeSlider.d.ts +0 -1
- package/dist/components/atomic/Waveform.d.ts +0 -1
- package/dist/components/atomic/index.d.ts +0 -1
- package/dist/components/audio-output/AudioOutput.d.ts +0 -1
- package/dist/components/board/Board.d.ts +22 -0
- package/dist/components/board/BoardCursors.d.ts +21 -0
- package/dist/components/board/BoardIcon.d.ts +46 -0
- package/dist/components/board/BoardIsland.d.ts +21 -0
- package/dist/components/board/BoardMenu.d.ts +18 -0
- package/dist/components/board/BoardStyles.d.ts +2 -0
- package/dist/components/board/board-draw-policy.d.ts +15 -0
- package/dist/components/board/board-engine.d.ts +31 -0
- package/dist/components/board/board-history.d.ts +7 -0
- package/dist/components/board/board-model.d.ts +90 -0
- package/dist/components/board/board-toasts.d.ts +6 -0
- package/dist/components/board/board-view-versions.d.ts +1 -0
- package/dist/components/call-card/CallCard.d.ts +0 -1
- package/dist/components/call-card/CallCardStyles.d.ts +0 -1
- package/dist/components/call-limbo/CallLimbo.d.ts +3 -2
- package/dist/components/call-limbo/CallReady.d.ts +0 -1
- package/dist/components/call-limbo/qr-code.d.ts +0 -1
- package/dist/components/call-limbo/useCallLink.d.ts +0 -1
- package/dist/components/chalk/Chalk.d.ts +4 -1
- package/dist/components/chalk/ReportProblemDialog.d.ts +12 -0
- package/dist/components/chalk/StatusSurface.d.ts +4 -2
- package/dist/components/chalk-ui/ChalkAlert.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkBackdrop.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkBadge.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkButton.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkCopyButton.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkDialogPanel.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkDivider.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkEmptyState.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkIconButton.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkInput.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkMenu.d.ts +2 -2
- package/dist/components/chalk-ui/ChalkPanel.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkPopover.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkSegmentedControl.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkSheet.d.ts +1 -2
- package/dist/components/chalk-ui/ChalkSpinner.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkTextarea.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkToast.d.ts +7 -2
- package/dist/components/chalk-ui/ChalkToggle.d.ts +0 -1
- package/dist/components/chalk-ui/ChalkTooltip.d.ts +0 -1
- package/dist/components/chalk-ui/common.d.ts +0 -1
- package/dist/components/chalk-ui/index.d.ts +0 -1
- package/dist/components/composite/ChatPanel.d.ts +0 -1
- package/dist/components/composite/CommandErrorAlert.d.ts +0 -1
- package/dist/components/composite/MessageBubble.d.ts +0 -1
- package/dist/components/composite/ReactionPicker.d.ts +0 -1
- package/dist/components/composite/ReactionTray.d.ts +0 -1
- package/dist/components/composite/ReactionsOverlay.d.ts +0 -1
- package/dist/components/composite/ScreenShareView.d.ts +0 -1
- package/dist/components/composite/chat-file-upload.d.ts +0 -1
- package/dist/components/composite/chat-panel-model.d.ts +0 -1
- package/dist/components/composite/chat-types.d.ts +0 -1
- package/dist/components/composite/chat-upload-file.d.ts +0 -1
- package/dist/components/composite/reaction-float.d.ts +0 -1
- package/dist/components/composite/use-chat-attachment-previews.d.ts +0 -1
- package/dist/components/control-bar/CallLinkIcon.d.ts +0 -1
- package/dist/components/control-bar/ControlBar.d.ts +0 -1
- package/dist/components/control-bar/DockLayout.d.ts +0 -1
- package/dist/components/control-bar/LeaveMenu.d.ts +0 -1
- package/dist/components/control-bar/ShareControl.d.ts +3 -2
- package/dist/components/control-bar/ShellIcon.d.ts +0 -1
- package/dist/components/control-bar/ShellStyles.d.ts +0 -1
- package/dist/components/control-bar/command-failure.d.ts +105 -2
- package/dist/components/control-bar/control-bar-behavior.d.ts +9 -3
- package/dist/components/control-bar/control-bar-button.d.ts +0 -1
- package/dist/components/control-bar/next-camera.d.ts +0 -1
- package/dist/components/device-popover/DevicePopover.d.ts +4 -2
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.js +3 -3
- package/dist/components/lazy.d.ts +0 -1
- package/dist/components/logo/Logo.d.ts +0 -1
- package/dist/components/media-request-dialog/MediaRequestDialog.d.ts +0 -1
- package/dist/components/media-request-dialog/media-request-dialog-state.d.ts +0 -1
- package/dist/components/offline-actions/OfflineActions.d.ts +2 -2
- package/dist/components/participant-grid/ParticipantGrid.d.ts +0 -1
- package/dist/components/participant-tile/ParticipantTile.d.ts +4 -2
- package/dist/components/participant-tile/TileShell.d.ts +3 -2
- package/dist/components/participant-tile/useVideoTrack.d.ts +0 -1
- package/dist/components/participants-panel/ParticipantsPanel.d.ts +0 -1
- package/dist/components/participants-panel/index.d.ts +0 -1
- package/dist/components/participants-panel/participant-options-menu-contract.d.ts +0 -1
- package/dist/components/participants-panel/participant-options-menu.d.ts +0 -1
- package/dist/components/participants-panel/participant-row.d.ts +0 -1
- package/dist/components/participants-panel/participant-volume-context.d.ts +0 -1
- package/dist/components/reconnecting-overlay/ReconnectingOverlay.d.ts +0 -1
- package/dist/components/recording-history/RecordingHistoryPanel.d.ts +0 -1
- package/dist/components/space-header/CallDetails.d.ts +6 -4
- package/dist/components/space-header/LayoutMenu.d.ts +0 -1
- package/dist/components/space-header/SpaceHeader.d.ts +0 -1
- package/dist/components/space-header/call-diagnostics.d.ts +0 -1
- package/dist/components/space-header/share-qr.d.ts +0 -1
- package/dist/components/space-header/space-header-contract.d.ts +5 -1
- package/dist/components/space-header/useCallShortcuts.d.ts +0 -1
- package/dist/components/space-view/RecordingSpaceView.d.ts +0 -1
- package/dist/components/space-view/SpacePresentation.d.ts +0 -1
- package/dist/components/space-view/SpaceView.d.ts +10 -3
- package/dist/components/space-view/useDrawerPresence.d.ts +0 -1
- package/dist/components/stage/SpaceStage.d.ts +3 -2
- package/dist/components/stage/Stage.d.ts +6 -3
- package/dist/components/stage/StageContentTile.d.ts +0 -1
- package/dist/components/stage/StageIcon.d.ts +0 -1
- package/dist/components/stage/StageMotion.d.ts +0 -1
- package/dist/components/stage/stage-items.d.ts +4 -1
- package/dist/components/stage/stage-layout.d.ts +7 -2
- package/dist/components/stage/useStageDimensions.d.ts +0 -1
- package/dist/components/toast-stack/CallEventIcon.d.ts +1 -2
- package/dist/components/toast-stack/NoticeButton.d.ts +7 -0
- package/dist/components/toast-stack/ToastStack.d.ts +13 -3
- package/dist/components/toast-stack/call-events.d.ts +2 -2
- package/dist/components/toast-stack/notice-announcement.d.ts +4 -0
- package/dist/components/toast-stack/toast-layout-snapshot.d.ts +4 -0
- package/dist/components/toast-stack/useCallToasts.d.ts +0 -1
- package/dist/components/toast-stack/useToastCapacity.d.ts +7 -0
- package/dist/components/ui/index.d.ts +0 -1
- package/dist/components/whiteboard-view/RecordingWhiteboardView.d.ts +0 -1
- package/dist/components/whiteboard-view/WhiteboardView.d.ts +0 -1
- package/dist/components/whiteboard-view/recording-whiteboard-state.d.ts +0 -1
- package/dist/headless.d.ts +0 -1
- package/dist/headless.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +24 -3
- package/dist/internal/call-motion.d.ts +0 -1
- package/dist/internal/sound-cues.d.ts +0 -1
- package/dist/internal/useEpisodeDuration.d.ts +0 -1
- package/dist/internal/useHaptics.d.ts +0 -1
- package/dist/internal/useMediaQuery.d.ts +0 -1
- package/dist/internal/useMirrorSetting.d.ts +0 -1
- package/dist/internal/useSoundCues.d.ts +0 -1
- package/dist/internal/useSoundsSetting.d.ts +0 -1
- package/dist/internal/useWhiteboardSceneSubscription.d.ts +0 -1
- package/dist/internal/whiteboard-view-limits.d.ts +1 -0
- package/dist/public-surface.contract.d.ts +1 -2
- package/dist/selectors/space-selectors.d.ts +0 -1
- package/dist/test-support/index.d.ts +0 -1
- package/dist/test-support/index.js +26 -4
- package/dist/test-support/preview-client.d.ts +0 -1
- package/dist/test-support/preview-devices.d.ts +0 -1
- package/dist/test-support/preview-fixtures.d.ts +0 -1
- package/dist/theme.d.ts +0 -1
- package/dist/utils/cn.d.ts +0 -1
- package/dist/utils/colorGenerator.d.ts +0 -1
- package/dist/utils/icons.d.ts +0 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/theme.d.ts +0 -1
- package/dist/whiteboard/wire-adapters.d.ts +0 -1
- package/package.json +6 -5
- package/dist/bindings/context.d.ts.map +0 -1
- package/dist/bindings/hooks.d.ts.map +0 -1
- package/dist/components/admission-panel/AdmissionPanel.d.ts.map +0 -1
- package/dist/components/atomic/AudioIndicator.d.ts.map +0 -1
- package/dist/components/atomic/Avatar.d.ts.map +0 -1
- package/dist/components/atomic/HandRaiseIndicator.d.ts.map +0 -1
- package/dist/components/atomic/NameTag.d.ts.map +0 -1
- package/dist/components/atomic/ReactionBubble.d.ts.map +0 -1
- package/dist/components/atomic/StatusBadge.d.ts.map +0 -1
- package/dist/components/atomic/VolumeSlider.d.ts.map +0 -1
- package/dist/components/atomic/Waveform.d.ts.map +0 -1
- package/dist/components/atomic/index.d.ts.map +0 -1
- package/dist/components/audio-output/AudioOutput.d.ts.map +0 -1
- package/dist/components/call-card/CallCard.d.ts.map +0 -1
- package/dist/components/call-card/CallCardStyles.d.ts.map +0 -1
- package/dist/components/call-limbo/CallLimbo.d.ts.map +0 -1
- package/dist/components/call-limbo/CallReady.d.ts.map +0 -1
- package/dist/components/call-limbo/qr-code.d.ts.map +0 -1
- package/dist/components/call-limbo/useCallLink.d.ts.map +0 -1
- package/dist/components/chalk/Chalk.d.ts.map +0 -1
- package/dist/components/chalk/StatusSurface.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkAlert.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkBackdrop.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkBadge.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkButton.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkCopyButton.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkDialogPanel.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkDivider.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkEmptyState.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkIconButton.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkInput.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkMenu.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkPanel.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkPopover.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkSegmentedControl.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkSheet.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkSpinner.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkTextarea.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkToast.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkToggle.d.ts.map +0 -1
- package/dist/components/chalk-ui/ChalkTooltip.d.ts.map +0 -1
- package/dist/components/chalk-ui/common.d.ts.map +0 -1
- package/dist/components/chalk-ui/index.d.ts.map +0 -1
- package/dist/components/composite/ChatPanel.d.ts.map +0 -1
- package/dist/components/composite/CommandErrorAlert.d.ts.map +0 -1
- package/dist/components/composite/MessageBubble.d.ts.map +0 -1
- package/dist/components/composite/ReactionPicker.d.ts.map +0 -1
- package/dist/components/composite/ReactionTray.d.ts.map +0 -1
- package/dist/components/composite/ReactionsOverlay.d.ts.map +0 -1
- package/dist/components/composite/ScreenShareView.d.ts.map +0 -1
- package/dist/components/composite/chat-file-upload.d.ts.map +0 -1
- package/dist/components/composite/chat-panel-model.d.ts.map +0 -1
- package/dist/components/composite/chat-types.d.ts.map +0 -1
- package/dist/components/composite/chat-upload-file.d.ts.map +0 -1
- package/dist/components/composite/reaction-float.d.ts.map +0 -1
- package/dist/components/composite/use-chat-attachment-previews.d.ts.map +0 -1
- package/dist/components/control-bar/CallLinkIcon.d.ts.map +0 -1
- package/dist/components/control-bar/ControlBar.d.ts.map +0 -1
- package/dist/components/control-bar/DockLayout.d.ts.map +0 -1
- package/dist/components/control-bar/LeaveMenu.d.ts.map +0 -1
- package/dist/components/control-bar/ShareControl.d.ts.map +0 -1
- package/dist/components/control-bar/ShellIcon.d.ts.map +0 -1
- package/dist/components/control-bar/ShellStyles.d.ts.map +0 -1
- package/dist/components/control-bar/command-failure.d.ts.map +0 -1
- package/dist/components/control-bar/control-bar-behavior.d.ts.map +0 -1
- package/dist/components/control-bar/control-bar-button.d.ts.map +0 -1
- package/dist/components/control-bar/next-camera.d.ts.map +0 -1
- package/dist/components/device-popover/DevicePopover.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/lazy.d.ts.map +0 -1
- package/dist/components/logo/Logo.d.ts.map +0 -1
- package/dist/components/media-request-dialog/MediaRequestDialog.d.ts.map +0 -1
- package/dist/components/media-request-dialog/media-request-dialog-state.d.ts.map +0 -1
- package/dist/components/offline-actions/OfflineActions.d.ts.map +0 -1
- package/dist/components/participant-grid/ParticipantGrid.d.ts.map +0 -1
- package/dist/components/participant-tile/ParticipantTile.d.ts.map +0 -1
- package/dist/components/participant-tile/TileShell.d.ts.map +0 -1
- package/dist/components/participant-tile/useVideoTrack.d.ts.map +0 -1
- package/dist/components/participants-panel/ParticipantsPanel.d.ts.map +0 -1
- package/dist/components/participants-panel/index.d.ts.map +0 -1
- package/dist/components/participants-panel/participant-options-menu-contract.d.ts.map +0 -1
- package/dist/components/participants-panel/participant-options-menu.d.ts.map +0 -1
- package/dist/components/participants-panel/participant-row.d.ts.map +0 -1
- package/dist/components/participants-panel/participant-volume-context.d.ts.map +0 -1
- package/dist/components/reconnecting-overlay/ReconnectingOverlay.d.ts.map +0 -1
- package/dist/components/recording-history/RecordingHistoryPanel.d.ts.map +0 -1
- package/dist/components/space-header/CallDetails.d.ts.map +0 -1
- package/dist/components/space-header/LayoutMenu.d.ts.map +0 -1
- package/dist/components/space-header/SpaceHeader.d.ts.map +0 -1
- package/dist/components/space-header/call-diagnostics.d.ts.map +0 -1
- package/dist/components/space-header/share-qr.d.ts.map +0 -1
- package/dist/components/space-header/space-header-contract.d.ts.map +0 -1
- package/dist/components/space-header/useCallShortcuts.d.ts.map +0 -1
- package/dist/components/space-view/RecordingSpaceView.d.ts.map +0 -1
- package/dist/components/space-view/SpacePresentation.d.ts.map +0 -1
- package/dist/components/space-view/SpaceView.d.ts.map +0 -1
- package/dist/components/space-view/useDrawerPresence.d.ts.map +0 -1
- package/dist/components/stage/SpaceStage.d.ts.map +0 -1
- package/dist/components/stage/Stage.d.ts.map +0 -1
- package/dist/components/stage/StageContentTile.d.ts.map +0 -1
- package/dist/components/stage/StageIcon.d.ts.map +0 -1
- package/dist/components/stage/StageMotion.d.ts.map +0 -1
- package/dist/components/stage/stage-items.d.ts.map +0 -1
- package/dist/components/stage/stage-layout.d.ts.map +0 -1
- package/dist/components/stage/useStageDimensions.d.ts.map +0 -1
- package/dist/components/toast-stack/CallEventIcon.d.ts.map +0 -1
- package/dist/components/toast-stack/ToastStack.d.ts.map +0 -1
- package/dist/components/toast-stack/call-events.d.ts.map +0 -1
- package/dist/components/toast-stack/useCallToasts.d.ts.map +0 -1
- package/dist/components/ui/index.d.ts.map +0 -1
- package/dist/components/whiteboard-view/RecordingWhiteboardView.d.ts.map +0 -1
- package/dist/components/whiteboard-view/WhiteboardView.d.ts.map +0 -1
- package/dist/components/whiteboard-view/recording-whiteboard-state.d.ts.map +0 -1
- package/dist/headless.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/internal/call-motion.d.ts.map +0 -1
- package/dist/internal/sound-cues.d.ts.map +0 -1
- package/dist/internal/useEpisodeDuration.d.ts.map +0 -1
- package/dist/internal/useHaptics.d.ts.map +0 -1
- package/dist/internal/useMediaQuery.d.ts.map +0 -1
- package/dist/internal/useMirrorSetting.d.ts.map +0 -1
- package/dist/internal/useSoundCues.d.ts.map +0 -1
- package/dist/internal/useSoundsSetting.d.ts.map +0 -1
- package/dist/internal/useWhiteboardSceneSubscription.d.ts.map +0 -1
- package/dist/public-surface.contract.d.ts.map +0 -1
- package/dist/selectors/space-selectors.d.ts.map +0 -1
- package/dist/test-support/index.d.ts.map +0 -1
- package/dist/test-support/preview-client.d.ts.map +0 -1
- package/dist/test-support/preview-devices.d.ts.map +0 -1
- package/dist/test-support/preview-fixtures.d.ts.map +0 -1
- package/dist/theme.d.ts.map +0 -1
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/colorGenerator.d.ts.map +0 -1
- package/dist/utils/icons.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/theme.d.ts.map +0 -1
- package/dist/whiteboard/wire-adapters.d.ts.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 5.2.0
|
|
4
|
+
|
|
5
|
+
### board-draw-policy
|
|
6
|
+
|
|
7
|
+
Add a call-wide drawing policy for the board: everyone, only hosts, or picked people.
|
|
8
|
+
Hosts set it with `setDrawPolicy` on the whiteboard transport and pick people with the
|
|
9
|
+
existing `setDrawPermission`. Sync computes each person's permission and sends it with
|
|
10
|
+
the policy over the new `draw_policy_v1` extension, so the summary and
|
|
11
|
+
`useWhiteboard().access` now carry `canDraw`, `drawPolicy` and the host's per-person
|
|
12
|
+
choices. The React board follows that permission instead of the role capability, and
|
|
13
|
+
hosts get a "Who can draw" section with a person picker in the board menu.
|
|
14
|
+
|
|
15
|
+
The whiteboard client now steps its hello down only when Sync can't decode it (close
|
|
16
|
+
1009). A rejected token or a late hello (close 1008) is retried at the same level up to
|
|
17
|
+
four times, so a brief token problem no longer hides the drawing policy for the rest of
|
|
18
|
+
the connection. On a Sync without the drawing policy, a host's waiting policy change is
|
|
19
|
+
refused as `unavailable`, and also reported on the summary, instead of being replayed.
|
|
20
|
+
|
|
21
|
+
### board-frame-clock
|
|
22
|
+
|
|
23
|
+
Keep Follow active when Bring everyone moves to a wider board view, without a brief zoom overshoot at the start of the animation.
|
|
24
|
+
|
|
25
|
+
### board-stage-motion
|
|
26
|
+
|
|
27
|
+
Keep the live whiteboard free of stage translation and scaling animations so
|
|
28
|
+
switching between a participant and the board preserves the full canvas and
|
|
29
|
+
accurate drawing coordinates. Other stage tiles keep their existing motion.
|
|
30
|
+
|
|
31
|
+
### brand-single-chalk-mark
|
|
32
|
+
|
|
33
|
+
Replace the retired colourful four-stick logo with the monochrome single chalk stick and dust in the distributed SVG assets and React Logo variants. Preserve existing asset filenames and component props. The React Logo now takes its default colour from the surrounding text colour.
|
|
34
|
+
|
|
35
|
+
### follow-view-owner
|
|
36
|
+
|
|
37
|
+
Converge Follow views on one Episode owner, recover from its canonical snapshot,
|
|
38
|
+
and preserve real camera moves during recovery and tab switches. Zoom controls
|
|
39
|
+
and keyboard moves now consistently leave Follow and lead the person's view.
|
|
40
|
+
|
|
41
|
+
Keep all 500 active people's views using internal schema-generated limits in the client and React caches. The client's public bounds, event unions and decoded-frame unions are unchanged. The client now exports `ChalkWhiteboardViewVersions`, which the React SDK uses to order view moves, and whiteboard view events now carry `ownerId`, `ownerSequence` and `originEpoch`, so both releases are minor.
|
|
42
|
+
|
|
43
|
+
### phone-board-notices-next-release
|
|
44
|
+
|
|
45
|
+
Float faces over a phone board, and keep call notices off the call's controls.
|
|
46
|
+
On a phone, an open board now fills the stage and up to three faces float at
|
|
47
|
+
its right edge, with short name tags. Notices sit between the header and the
|
|
48
|
+
controls under them. A call shorter than 620px, such as a landscape phone or a
|
|
49
|
+
short embedded call, puts every notice in a notice button in the header, which
|
|
50
|
+
lists each one whole and announces it once to screen readers; a taller call
|
|
51
|
+
shows the newest three and puts older ones in the button. A notice in the
|
|
52
|
+
button starts its timer only once it shows. The header stays visible while
|
|
53
|
+
the button holds notices. Long names, links and error tokens wrap inside
|
|
54
|
+
their notice, and a long call name shortens to make room for the timer and
|
|
55
|
+
the notice button. A screen share beside a short board always keeps its own
|
|
56
|
+
tile when there is no explicit cap. A capped strip or floating column counts
|
|
57
|
+
shared content and its overflow button against that cap; folded shares stay
|
|
58
|
+
readable in the shared-content overflow. One text-only announcer handles
|
|
59
|
+
notice speech independently of its stage or header presentation.
|
|
60
|
+
|
|
61
|
+
New optional props: `ToastStackProps.onFold` reports the ids of the notices
|
|
62
|
+
the stage has no room for, `ChalkToastProps.announce` lets a host that already
|
|
63
|
+
announced a notice keep its toast quiet, and `SpaceHeaderProps.notices` places
|
|
64
|
+
a control before the people button.
|
|
65
|
+
|
|
66
|
+
### problem-reporting
|
|
67
|
+
|
|
68
|
+
Add the problem-report API contract and reusable report dialog, with opt-in diagnostics,
|
|
69
|
+
editable delivery failures and bounded Unicode input. Call details and failed or ended
|
|
70
|
+
call screens can expose reporting when an integration supplies a delivery callback.
|
|
71
|
+
Use `reportUnavailableReason` to show expired access inside an editable report.
|
|
72
|
+
Live report drafts survive call termination. Integrations with their own terminal
|
|
73
|
+
screens can use `onOpenReportProblem` to keep one app-owned dialog across those screens.
|
|
74
|
+
Give `ReportProblemDialog` a `focusScope` containing the current call or terminal screen,
|
|
75
|
+
so closing it returns focus to its usable opener, or to a visible current control
|
|
76
|
+
when the opener has disappeared. Hidden, inert and disabled targets are skipped.
|
|
77
|
+
|
|
78
|
+
### recording-auto-render
|
|
79
|
+
|
|
80
|
+
Expose recording expiry reasons through additive failure fields while preserving the existing export status enum.
|
|
81
|
+
|
|
82
|
+
Add the Tenant recording_render_mode setting, defaulting to on_demand, with opt-in automatic MP4 rendering.
|
|
83
|
+
|
|
84
|
+
### safe-media-command-guidance
|
|
85
|
+
|
|
86
|
+
Show safe, source-aware guidance for media command failures across call controls,
|
|
87
|
+
keyboard shortcuts, screen sharing, and media request dialogs. Preserve the
|
|
88
|
+
existing onCommandError MediaSource argument and provide extended media context
|
|
89
|
+
in an optional third argument. Keep disable-failure wording neutral and explain
|
|
90
|
+
unsupported speaker selection without suggesting a retry. Preserve start/stop
|
|
91
|
+
intent in failure guidance and retries; show terminal guidance for withdrawn
|
|
92
|
+
media requests and other non-recoverable failures.
|
|
93
|
+
|
|
94
|
+
Distinguish device selection, speaker tests, and incoming requests in media error
|
|
95
|
+
guidance. Cover every client failure code with an operation-aware policy and only
|
|
96
|
+
offer retry when the exact failed media command can be replayed.
|
|
97
|
+
|
|
98
|
+
Preserve request context in the integrated Chalk dialog and show safe terminal
|
|
99
|
+
guidance without retry for unknown runtime failure codes.
|
|
100
|
+
|
|
101
|
+
### sync-connect-diagnostics
|
|
102
|
+
|
|
103
|
+
Report Sync connection failures with the existing `connection.sync_hello_timeout` code without adding values to the public `ErrorCode` union. Add the current attempt's safe diagnostics to client errors, telemetry, and the call failure reference: opening/hello stage, close code and bounded reason, whether the socket opened, and elapsed time. Earlier attempts remain in the diagnostic history. Browsers do not expose DNS, TCP, or TLS progress. Unrecognized peer reasons are redacted. This is a compatible patch for the next client and React releases; released 5.1.0 files are unchanged.
|
|
104
|
+
|
|
105
|
+
## 5.1.0
|
|
106
|
+
|
|
107
|
+
- Add optional `CallLimbo.className` for the message card, so a host can size the card around a form.
|
|
108
|
+
- Route private camera previews through the SDK so granting permission refreshes the camera menu. Standalone `DevicePopover` and `ControlBarSurface` consumers can supply `captureCameraPreview`.
|
|
109
|
+
- Preview the chosen camera privately when the call camera is off; while it is active, preview the published call track rather than an unpublished device selection.
|
|
110
|
+
- Keep keyboard-shortcut dialog content fixed while opening and closing. Report a problem remains unchanged and appears only when a host supplies `onReportProblem`.
|
|
111
|
+
- Add optional `ChalkMenu.onOpenChange` for hosts that need to coordinate menu and dialog visibility.
|
|
112
|
+
- Show stage-specific failed-entry guidance with a public error-code reference. Keep recoverable device capture warnings in the live call.
|
|
113
|
+
- The call board now shows Chalk's own controls instead of the stock Excalidraw ones, with Follow and Bring everyone. `Stage` adds optional `followingId`, `onFollowChange` and `clickAction` (`"pin"` or `"follow"`); `SpaceStage` adds `colorScheme` and `onCloseBoard`; `SpaceView` shares and follows board views through the client's `sendView`.
|
|
114
|
+
- Keep Follow, Clear and Undo on the board scene where they started, so a scene change cannot restore or follow into another scene. Redo brings back undone text, and small drawings open at 100% zoom at most.
|
|
115
|
+
- Label screen shares of unknown surfaces plainly instead of guessing what is being shared.
|
|
116
|
+
- Lift call notices clear of an open reaction tray, so the tray and the notices stay readable together.
|
|
117
|
+
- Keep chat messages still while the clock ticks instead of re-rendering and jumping the scroll position.
|
|
118
|
+
- Show recovery notices without blocking the call, keep chat readable, and disable reaction sending and media enable controls until Sync is live. Local mute, private camera preview, device menus, and hand controls stay available.
|
|
119
|
+
- Omit the reference when the host has no known error code instead of inventing an internal-error reference.
|
|
120
|
+
|
|
121
|
+
## 5.0.0
|
|
122
|
+
|
|
123
|
+
- Keep chat history available to observers and custom read-only roles; gate the composer, attachments, and message reactions on `sendChat`.
|
|
124
|
+
- Use `endEpisode` authority for Host badges and host-transfer notices, including `owner` and custom roles. Add `ParticipantListParticipant.isHost` for presentation-only lists.
|
|
125
|
+
- Play a short, quiet synthesized reaction sound while Sounds is enabled.
|
|
126
|
+
- Restore local ownership, capture details, and Stop/Change actions in the connected `ScreenShareView`.
|
|
127
|
+
- Avoid stopping already-ended screen capture tracks again when publication fails.
|
|
128
|
+
- Remove the unused `ToastStack.position` prop; call toasts use the responsive position defined by the call layout.
|
|
129
|
+
|
|
130
|
+
- Remove `LeaveDialog`, `PreviewEpisodeEnded`, and `PreviewStatus` from the `/preview` entry point.
|
|
131
|
+
- Change `ControlBar.onCommandError` from a message string callback to `(failure: ClientFailure | null, source?: MediaSource) => void`.
|
|
132
|
+
- Require `ChalkMenu.trigger` and `ChalkMenu.children`; remove its forwarded div ref, `tone`, and inherited HTML attributes other than `className`.
|
|
133
|
+
- Require `ChalkMenuItem.children`; remove its forwarded div ref, `tone`, and inherited HTML attributes. Its `onClick` callback no longer receives a DOM event.
|
|
134
|
+
- Remove `ToastStack.participantColorSeed` and `participantGradientPreference`; make its `toasts` array and `Toast` fields readonly, and widen `Toast.message` from `string` to `ReactNode`.
|
|
135
|
+
- Remove `ScreenShareView.onStopShare`; `ScreenShareViewProps` now contains only `className`.
|
|
136
|
+
- Remove `features.settings`, `settingsDialog`, and `onOpenSettings` from the call view contracts, and remove `"settings"` from the `/preview` `SpacePanel` type.
|
|
137
|
+
- Remove the props types for `ChalkCheckbox`, `ChalkControlGroup`, `ChalkRadio`, `ChalkSelect`, `ChalkSlider`, and `ChalkTooltipPanel` along with their components.
|
|
138
|
+
- Require `primary` in the render contexts passed to `Stage.renderParticipant` and `Stage.renderContentTile`.
|
|
139
|
+
- Require the new `ChalkThemeTokens` fields: `raised`, `hover`, `pressed`, `lineStrong`, `dangerHover`, `dangerPressed`, `dangerText`, `warning`, `tile`, `popover`, `textStrong`, `softText`, `wash`, `washStrong`, `overlay`, `overlayStrong`, `overlayHover`, `onOverlay`, `overlayWarning`, `overlayDanger`, and `scrim`. `ChalkTheme.tokens` remains partial.
|
|
140
|
+
- Replace the `/ui` `DEFAULT_QUICK_REACTIONS` tuple's final `😢`, `🎉` entries with `🎉`, `👏`; update consumers of its inferred literal types.
|
|
141
|
+
- Add `"reactToMessage"` to `/preview` `PreviewClientCommand`; exhaustive command handlers must handle the new variant.
|
|
142
|
+
- Persist the local self-view mirror preference across reloads and share it between camera previews and local participant tiles. Add controlled `ControlBar.mirrored` / `onMirrorChange` props; `ParticipantTile.mirror` still overrides the preference. Photo viewer downloads now save the original filename without opening a tab, while previews remain inline.
|
|
143
|
+
|
|
144
|
+
- Replace stage paging with justified Grid rows and a +N People tile; make shared screens double-width and Spotlight content-aware. Add participant hand-order, share-audio, share-aspect and share-state presentation fields. Preserve keyed video elements through 220 ms transform-only layout moves and add the two-person phone picture-in-picture.
|
|
145
|
+
- Unify screen and person tile chrome; show speaking rings, bold Facehash avatars, weak signal bars, local share previews and share controls. `Stage` accepts `onOverflowClick`, and content render contexts identify the primary tile.
|
|
146
|
+
|
|
147
|
+
- Replace phone device choices with Flip camera when two or more cameras are available; audio stays with the operating system.
|
|
148
|
+
|
|
149
|
+
- Make the desktop layout control a direct Spotlight/Grid toggle. Let `ChalkMenuItem.closeOnClick` keep device choices open, and `ChalkSheet.accessibleLabel` retain a stable accessible name while showing the call name.
|
|
150
|
+
|
|
151
|
+
- Add call-link QR sharing, diagnostics copy, keyboard shortcuts, and optional `Chalk`/`SpaceView` `shareUrl` and `onReportProblem` callbacks. Rebuild the call dock with device and screen-source split controls, tab-audio capture, and phone More actions.
|
|
152
|
+
- Add optional diagnostics, people, connection-warning and shortcut inputs to `SpaceHeader`; `ChalkPopover.tooltip` composes a tooltip with its trigger. Call reaction pickers accept raised-hand state and its action.
|
|
153
|
+
- Rebuild the call card with People and Chat tabs, message reactions, attachment previews and a dark photo viewer.
|
|
154
|
+
- Unify call status pages, add optional report/terminal-state integration, a share-ready card, recorded joining consent and accessible call-event toasts.
|
|
155
|
+
|
|
156
|
+
- Publish and play shared tab audio separately from microphones, with share-audio state and coupled screen-share lifecycle.
|
|
157
|
+
|
|
158
|
+
- Keep layout changes interactive when `layout` is supplied without `onLayoutChange`; the prop initializes local state in that case. A paired prop and handler remain controlled. Add Spotlight/Grid to the phone dock's More sheet.
|
|
159
|
+
|
|
160
|
+
- Default calls to Dark; `ChalkColorScheme` is now `"light" | "dark"`. Add `Chalk.onColorSchemeChange` and `SpaceView.onColorSchemeChange` for controlled appearance.
|
|
161
|
+
- Replace the call theme tokens with role-based mockup palettes, and share the inset-card frame with recordings.
|
|
162
|
+
- Rebuild call buttons, menus, popovers, tooltips, switches, segmented controls, copy feedback, focus-trapped sheets and toasts. Remove the unused `ChalkCheckbox`, `ChalkControlGroup`, `ChalkRadio`, `ChalkSelect`, `ChalkSlider`, and `ChalkTooltipPanel` exports. `ChalkMenu` now accepts a trigger; its items accept checked state.
|
|
163
|
+
- Add `captureFlip` for transform-only, reduced-motion-aware moves that preserve the mounted element.
|
|
164
|
+
- Use synthesized call sounds with a persistent Sounds switch; remove the unused Sonner `toast` re-export from the toast stack.
|
|
165
|
+
|
|
166
|
+
- Expose per-message reactions, count, participant IDs, `isMine`, and `react(input)` from `useChat()`; export the shared 24-emoji set and reaction types.
|
|
167
|
+
|
|
168
|
+
- Add `useScreenShare()` and screen source hint/capture types, without changing UI.
|
|
169
|
+
|
|
170
|
+
- Remove unused icon wrappers: `ArrowLeft02Icon`, `ArrowUp01Icon`, `Calendar01Icon`, `Mail01Icon`, `PictureInPictureIcon`, `ZoomInIcon`, `ZoomOutIcon`, `Link01Icon`, `MoreHorizontalIcon`, `Settings01Icon`, `SparklesIcon`, `UserAdd01Icon`.
|
|
171
|
+
|
|
172
|
+
- Fold Classic implementations into plain component names; remove Classic-prefixed modules and symbols.
|
|
173
|
+
- Remove SettingsDialog, SettingsPanel, DeviceSelector, NoiseSuppressionToggle, and their props, types, and lazy exports.
|
|
174
|
+
- Remove SpaceInfoDialog, its opener, `features.info`, `infoDialog`, and `spaceDescription`.
|
|
175
|
+
- Remove the header Invite button, InviteDialog, and `inviteDialog` / `inviteLink` props.
|
|
176
|
+
- Remove React Entrance, its types and preview fixture, and the `entrance` prop; Chalk joins directly through CallLimbo.
|
|
177
|
+
- Remove the header logo and `logoUrl` from Chalk, SpaceView, and SpaceHeader.
|
|
178
|
+
- Remove the unused dock `position`, `placement`, `showLabels`, and `duration` props.
|
|
179
|
+
- Remove the inline dock layout and unused PiP, More, settings, info, transcription, and thumbs-up control values and callbacks.
|
|
180
|
+
- Remove screen-share thumbnails, zoom, and rotation, including `showThumbnails`, `thumbnailPosition`, and `enableZoom`.
|
|
181
|
+
- Remove the unreachable TranscriptPanel drawer, behavior, lazy exports, and `SpacePanel` transcript value.
|
|
182
|
+
- Remove unused CaptionLine, TranscriptLine, ConnectionQuality, TourTooltip, TourHighlight, WhatsNewTrigger, and ReleaseBadge atoms and their props.
|
|
183
|
+
- Remove the offline-actions decision dialog and stored policy setting; queued actions send automatically on reconnection.
|
|
184
|
+
|
|
185
|
+
- Add shared call limbo for joining and reconnection. Connection recovery now blurs the call after a two-second grace instead of escalating to a modal.
|
|
186
|
+
- Remove the `presentation` layout. Spotlight prioritizes shared content; Grid preserves the selected layout and renders the real board.
|
package/dist/bindings/hooks.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export declare function useReactions(): ReactionsSlice;
|
|
|
21
21
|
export declare function useRecording(): RecordingSlice;
|
|
22
22
|
export declare function useWhiteboard(): WhiteboardSlice;
|
|
23
23
|
export declare function useCan(capability: Capability): boolean;
|
|
24
|
+
/** Whether this person can draw on the board. Sync decides from the call's policy, their role and the host's choice for them; until the board subscription is live, the role default stands in. A Sync without the drawing policy doesn't report role changes to the board, so there the live role still limits drawing. */
|
|
25
|
+
export declare function useCanDrawWhiteboard(): boolean;
|
|
24
26
|
/** Local capture state and the action that opens the browser's share picker. */
|
|
25
27
|
export declare function useScreenShare(): {
|
|
26
28
|
source: import("@q9labsai/chalk-client").MediaSource;
|
|
@@ -30,4 +32,3 @@ export declare function useScreenShare(): {
|
|
|
30
32
|
capture?: import("@q9labsai/chalk-client").ScreenShareCapture;
|
|
31
33
|
setEnabled: (enabled: boolean, options?: import("@q9labsai/chalk-client").ScreenShareOptions | undefined) => Promise<void>;
|
|
32
34
|
};
|
|
33
|
-
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -28,17 +28,19 @@ import {
|
|
|
28
28
|
StatusSurface,
|
|
29
29
|
WhiteboardView,
|
|
30
30
|
chalkThemeStyle,
|
|
31
|
+
commandFailure,
|
|
31
32
|
useCan,
|
|
33
|
+
useCanDrawWhiteboard,
|
|
32
34
|
useConnection,
|
|
33
35
|
useMedia,
|
|
34
36
|
useRecording,
|
|
35
37
|
useSpaceClient,
|
|
36
38
|
useWhiteboard
|
|
37
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-G62BKRNX.js";
|
|
38
40
|
import {
|
|
39
41
|
WHITEBOARD_ITEM_ID,
|
|
40
42
|
screenShareItemId
|
|
41
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-HWQLW4JR.js";
|
|
42
44
|
import {
|
|
43
45
|
Download01Icon,
|
|
44
46
|
FileTextIcon,
|
|
@@ -208,10 +210,10 @@ function Chalk(props) {
|
|
|
208
210
|
props.onColorSchemeChange?.(next);
|
|
209
211
|
};
|
|
210
212
|
const [reportOpen, setReportOpen] = useState2(false);
|
|
211
|
-
const
|
|
212
|
-
const openReport = props.onReportProblem ? () => {
|
|
213
|
-
|
|
214
|
-
setReportOpen(true);
|
|
213
|
+
const container = useRef(null);
|
|
214
|
+
const openReport = props.onReportProblem && !props.reportUnavailableReason ? () => {
|
|
215
|
+
if (props.onOpenReportProblem) props.onOpenReportProblem();
|
|
216
|
+
else setReportOpen(true);
|
|
215
217
|
} : void 0;
|
|
216
218
|
const suppliedClient = props.client;
|
|
217
219
|
const getAccessRef = useRef(props.getAccess);
|
|
@@ -233,12 +235,23 @@ function Chalk(props) {
|
|
|
233
235
|
void ownedClient.leave().catch(() => void 0).finally(() => ownedClient.dispose());
|
|
234
236
|
};
|
|
235
237
|
}, [ownedClient]);
|
|
236
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { "data-chalk": true, "data-chalk-theme": colorScheme, className: "chalk-root h-full min-h-0 w-full", style: chalkThemeStyle(props.theme, colorScheme), children: /* @__PURE__ */ jsxs(ChalkProvider, { client, children: [
|
|
238
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { ref: container, "data-chalk": true, "data-chalk-theme": colorScheme, className: "chalk-root h-full min-h-0 w-full", style: chalkThemeStyle(props.theme, colorScheme), children: /* @__PURE__ */ jsxs(ChalkProvider, { client, children: [
|
|
237
239
|
/* @__PURE__ */ jsx(SpaceExperience, { ...props, theme: { ...props.theme, colorScheme }, onColorSchemeChange: changeColorScheme, resolvedColorScheme: colorScheme, onOpenReport: openReport }),
|
|
238
|
-
props.onReportProblem ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
240
|
+
props.onReportProblem && !props.onOpenReportProblem ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
239
241
|
/* @__PURE__ */ jsx(ShellStyles, {}),
|
|
240
|
-
/* @__PURE__ */ jsx(
|
|
241
|
-
|
|
242
|
+
/* @__PURE__ */ jsx(
|
|
243
|
+
CallDialog,
|
|
244
|
+
{
|
|
245
|
+
kind: "report",
|
|
246
|
+
open: reportOpen,
|
|
247
|
+
onClose: () => setReportOpen(false),
|
|
248
|
+
onReportProblem: props.onReportProblem,
|
|
249
|
+
unavailableReason: props.reportUnavailableReason,
|
|
250
|
+
diagnostics: `Call: ${props.spaceName ?? props.space ?? "Call"}
|
|
251
|
+
Status: ${client.getSnapshot().connection.status}`,
|
|
252
|
+
focusScope: container
|
|
253
|
+
}
|
|
254
|
+
)
|
|
242
255
|
] }) : null
|
|
243
256
|
] }) }) });
|
|
244
257
|
}
|
|
@@ -312,10 +325,21 @@ function SpaceExperience(props) {
|
|
|
312
325
|
if (connection.status === "joining") return /* @__PURE__ */ jsx(CallLimbo, { theme: { ...props.theme, colorScheme: props.resolvedColorScheme }, recorded, spaceName, message: `Joining ${spaceName}\u2026` });
|
|
313
326
|
if (connection.status === "failed" && connection.lastError?.code === "episode.ended") return /* @__PURE__ */ jsx(StatusSurface, { phase: "episode-ended", callName, theme: statusTheme, onHome: props.onHome, onReportProblem: props.onOpenReport });
|
|
314
327
|
if (connection.status === "failed") {
|
|
315
|
-
return /* @__PURE__ */ jsx(StatusSurface, { phase: "failed", callName, theme: statusTheme, onHome: props.onHome, onReportProblem: props.onOpenReport, onRetry: retryAutomaticJoin, retryPending });
|
|
328
|
+
return /* @__PURE__ */ jsx(StatusSurface, { phase: "failed", callName, errorCode: connection.lastError?.code, sync: connection.lastError?.sync, theme: statusTheme, onHome: props.onHome, onReportProblem: props.onOpenReport, onRetry: retryAutomaticJoin, retryPending });
|
|
316
329
|
}
|
|
317
330
|
if (connection.status === "leaving" || connection.status === "left")
|
|
318
|
-
return /* @__PURE__ */ jsx(
|
|
331
|
+
return /* @__PURE__ */ jsx(
|
|
332
|
+
StatusSurface,
|
|
333
|
+
{
|
|
334
|
+
phase: episodeEnded ? "episode-ended" : "left",
|
|
335
|
+
callName,
|
|
336
|
+
theme: statusTheme,
|
|
337
|
+
onReportProblem: connection.status === "leaving" ? void 0 : props.onOpenReport,
|
|
338
|
+
onRejoin: props.onRejoin ?? retryAutomaticJoin,
|
|
339
|
+
rejoinDisabled: connection.status === "leaving" || retryPending,
|
|
340
|
+
onHome: props.onHome
|
|
341
|
+
}
|
|
342
|
+
);
|
|
319
343
|
return /* @__PURE__ */ jsxs("div", { className: "relative h-full min-h-0", children: [
|
|
320
344
|
/* @__PURE__ */ jsx(SpaceSurface, { ...props, spaceName }),
|
|
321
345
|
/* @__PURE__ */ jsx(CallLimbo, { overlay: true, active: false, initiallyCovered: true, message: "" })
|
|
@@ -327,14 +351,20 @@ function SpaceSurface(props) {
|
|
|
327
351
|
const media = useMedia();
|
|
328
352
|
const whiteboardState = useWhiteboard();
|
|
329
353
|
const canEndEpisode = useCan("endEpisode");
|
|
330
|
-
const canDrawWhiteboard =
|
|
331
|
-
const [commandError, setCommandError] = useState2(() => connection.lastError?.recoverable && connection.lastError.code.startsWith("media.") ? connection.lastError
|
|
332
|
-
const
|
|
354
|
+
const canDrawWhiteboard = useCanDrawWhiteboard();
|
|
355
|
+
const [commandError, setCommandError] = useState2(() => connection.lastError?.recoverable && connection.lastError.code.startsWith("media.") ? connection.lastError : null);
|
|
356
|
+
const [commandSource, setCommandSource] = useState2();
|
|
357
|
+
const [commandAction, setCommandAction] = useState2();
|
|
358
|
+
const runCommand = useCallback(async (command, source, action) => {
|
|
333
359
|
try {
|
|
334
360
|
await command();
|
|
335
361
|
setCommandError(null);
|
|
362
|
+
setCommandSource(void 0);
|
|
363
|
+
setCommandAction(void 0);
|
|
336
364
|
} catch (cause) {
|
|
337
|
-
setCommandError(cause
|
|
365
|
+
setCommandError(commandFailure(cause));
|
|
366
|
+
setCommandSource(source);
|
|
367
|
+
setCommandAction(action);
|
|
338
368
|
}
|
|
339
369
|
}, []);
|
|
340
370
|
const whiteboardTransport = client.whiteboard.transport();
|
|
@@ -362,7 +392,8 @@ function SpaceSurface(props) {
|
|
|
362
392
|
clear: () => whiteboardSubscription.transport.clear(),
|
|
363
393
|
presignDownload: (fileId) => whiteboardSubscription.transport.files.getDownloadUrl(fileId)
|
|
364
394
|
}
|
|
365
|
-
}
|
|
395
|
+
},
|
|
396
|
+
sendView: whiteboardSubscription.transport.supportsViews ?? Boolean(whiteboardSubscription.transport.sendView) ? (view) => whiteboardSubscription.transport.sendView?.(view) ?? false : void 0
|
|
366
397
|
} : void 0;
|
|
367
398
|
return /* @__PURE__ */ jsx(
|
|
368
399
|
SpaceView,
|
|
@@ -370,11 +401,15 @@ function SpaceSurface(props) {
|
|
|
370
401
|
colorScheme: props.resolvedColorScheme,
|
|
371
402
|
shareUrl: props.shareUrl,
|
|
372
403
|
onReportProblem: props.onReportProblem,
|
|
404
|
+
onOpenReportProblem: props.onOpenReport,
|
|
405
|
+
reportUnavailableReason: props.reportUnavailableReason,
|
|
373
406
|
onColorSchemeChange: props.onColorSchemeChange,
|
|
374
407
|
spaceName: props.spaceName,
|
|
375
408
|
inviteLink: props.inviteLink,
|
|
376
409
|
pickChatFiles: props.pickChatFiles,
|
|
377
410
|
commandError: commandError ?? void 0,
|
|
411
|
+
commandSource,
|
|
412
|
+
commandAction,
|
|
378
413
|
onDismissCommandError: () => setCommandError(null),
|
|
379
414
|
layout: props.layout,
|
|
380
415
|
onLayoutChange: props.onLayoutChange,
|
|
@@ -384,7 +419,14 @@ function SpaceSurface(props) {
|
|
|
384
419
|
onLeft: () => runCommand(() => client.leave()),
|
|
385
420
|
onEndEpisode: canEndEpisode ? () => runCommand(() => client.endEpisode()) : void 0,
|
|
386
421
|
reconnecting: { isVisible: connection.status === "reconnecting", status: "reconnecting", showNotice: false },
|
|
387
|
-
overlay: /* @__PURE__ */ jsx(Fragment, { children: media.incomingRequests[0] ? /* @__PURE__ */ jsx(
|
|
422
|
+
overlay: /* @__PURE__ */ jsx(Fragment, { children: media.incomingRequests[0] ? /* @__PURE__ */ jsx(
|
|
423
|
+
MediaRequestDialog,
|
|
424
|
+
{
|
|
425
|
+
request: media.incomingRequests[0],
|
|
426
|
+
onDecline: () => void runCommand(() => client.media.declineRequest(media.incomingRequests[0].requestId), media.incomingRequests[0].kind === "start_camera" ? "camera" : "microphone", "request"),
|
|
427
|
+
onAllow: () => void runCommand(() => client.media.acceptRequest(media.incomingRequests[0].requestId), media.incomingRequests[0].kind === "start_camera" ? "camera" : "microphone", "request")
|
|
428
|
+
}
|
|
429
|
+
) : null })
|
|
388
430
|
}
|
|
389
431
|
);
|
|
390
432
|
}
|
|
@@ -890,19 +932,13 @@ function RecordingWhiteboardView({ state: stateValue, files, expectedSceneId, ex
|
|
|
890
932
|
RecordingWhiteboardView.displayName = "RecordingWhiteboardView";
|
|
891
933
|
|
|
892
934
|
// src/components/logo/Logo.tsx
|
|
893
|
-
import { useId } from "react";
|
|
894
935
|
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
895
|
-
var DEFAULT_COLOR = "
|
|
936
|
+
var DEFAULT_COLOR = "currentColor";
|
|
896
937
|
var DEFAULT_HEIGHT = 32;
|
|
897
938
|
var DEFAULT_VARIANT = "wordmark";
|
|
898
939
|
var WORDMARK_VIEW_BOX = "0 0 200 80";
|
|
899
940
|
var MARK_VIEW_BOX = "0 0 68 80";
|
|
900
|
-
function gradientId(prefix, name) {
|
|
901
|
-
return `${prefix}-${name}`;
|
|
902
|
-
}
|
|
903
941
|
function Logo({ accessibilityLabel = "Chalk", color = DEFAULT_COLOR, height = DEFAULT_HEIGHT, variant = DEFAULT_VARIANT }) {
|
|
904
|
-
const generatedId = useId().replace(/[^a-zA-Z0-9_-]/gu, "");
|
|
905
|
-
const idPrefix = `chalk-logo-${generatedId}`;
|
|
906
942
|
const isWordmark = variant === "wordmark";
|
|
907
943
|
const viewBox = isWordmark ? WORDMARK_VIEW_BOX : MARK_VIEW_BOX;
|
|
908
944
|
const width = isWordmark ? height * 2.5 : height * (68 / 80);
|
|
@@ -923,41 +959,14 @@ function Logo({ accessibilityLabel = "Chalk", color = DEFAULT_COLOR, height = DE
|
|
|
923
959
|
xmlns: "http://www.w3.org/2000/svg",
|
|
924
960
|
fill: "none",
|
|
925
961
|
children: [
|
|
926
|
-
/* @__PURE__ */ jsxs3("
|
|
927
|
-
/* @__PURE__ */ jsxs3("
|
|
928
|
-
/* @__PURE__ */ jsx5("
|
|
929
|
-
/* @__PURE__ */ jsx5("
|
|
962
|
+
/* @__PURE__ */ jsxs3("svg", { x: "0", y: "6", width: "68", height: "68", viewBox: "0 0 48 48", children: [
|
|
963
|
+
/* @__PURE__ */ jsxs3("g", { transform: "rotate(28 24 24)", fill: "currentColor", children: [
|
|
964
|
+
/* @__PURE__ */ jsx5("path", { d: "M18 8h12v28a6 6 0 0 1-12 0z" }),
|
|
965
|
+
/* @__PURE__ */ jsx5("path", { d: "M18 8h12l-1.5 4.5h-9z", opacity: "0.45" })
|
|
930
966
|
] }),
|
|
931
|
-
/* @__PURE__ */
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
] }),
|
|
935
|
-
/* @__PURE__ */ jsxs3("linearGradient", { id: gradientId(idPrefix, "blue"), x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
|
|
936
|
-
/* @__PURE__ */ jsx5("stop", { offset: "0%", stopColor: "#B2E0F0" }),
|
|
937
|
-
/* @__PURE__ */ jsx5("stop", { offset: "100%", stopColor: "#55AAC9" })
|
|
938
|
-
] }),
|
|
939
|
-
/* @__PURE__ */ jsxs3("linearGradient", { id: gradientId(idPrefix, "pink"), x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
|
|
940
|
-
/* @__PURE__ */ jsx5("stop", { offset: "0%", stopColor: "#F8CACA" }),
|
|
941
|
-
/* @__PURE__ */ jsx5("stop", { offset: "100%", stopColor: "#D67B7B" })
|
|
942
|
-
] })
|
|
943
|
-
] }),
|
|
944
|
-
/* @__PURE__ */ jsxs3("g", { transform: "translate(2, 2) scale(0.95)", children: [
|
|
945
|
-
/* @__PURE__ */ jsx5("g", { className: "chalk-logo__stick chalk-logo__stick--green", children: /* @__PURE__ */ jsxs3("g", { transform: "rotate(-15 20 60)", children: [
|
|
946
|
-
/* @__PURE__ */ jsx5("path", { d: "M9,20 L21,20 L22,63 A7,7 0 0 1 8,63 Z", fill: `url(#${gradientId(idPrefix, "green")})` }),
|
|
947
|
-
/* @__PURE__ */ jsx5("ellipse", { cx: "15", cy: "20", rx: "6", ry: "2.5", fill: "#D8ECD4" })
|
|
948
|
-
] }) }),
|
|
949
|
-
/* @__PURE__ */ jsx5("g", { className: "chalk-logo__stick chalk-logo__stick--yellow", children: /* @__PURE__ */ jsxs3("g", { transform: "rotate(-8 32 55)", children: [
|
|
950
|
-
/* @__PURE__ */ jsx5("path", { d: "M23,15 L35,15 L36,60 A7,7 0 0 1 22,60 Z", fill: `url(#${gradientId(idPrefix, "yellow")})` }),
|
|
951
|
-
/* @__PURE__ */ jsx5("ellipse", { cx: "29", cy: "15", rx: "6", ry: "2.5", fill: "#FEF3D1" })
|
|
952
|
-
] }) }),
|
|
953
|
-
/* @__PURE__ */ jsx5("g", { className: "chalk-logo__stick chalk-logo__stick--blue", children: /* @__PURE__ */ jsxs3("g", { transform: "rotate(12 60 30)", children: [
|
|
954
|
-
/* @__PURE__ */ jsx5("path", { d: "M36,8 L48,8 L49,56 A7,7 0 0 1 35,56 Z", fill: `url(#${gradientId(idPrefix, "blue")})` }),
|
|
955
|
-
/* @__PURE__ */ jsx5("ellipse", { cx: "42", cy: "8", rx: "6", ry: "2.5", fill: "#D0EDF8" })
|
|
956
|
-
] }) }),
|
|
957
|
-
/* @__PURE__ */ jsx5("g", { className: "chalk-logo__stick chalk-logo__stick--pink", children: /* @__PURE__ */ jsxs3("g", { transform: "rotate(5 55 50)", children: [
|
|
958
|
-
/* @__PURE__ */ jsx5("path", { d: "M49,70 L61,70 L62,29 A7,7 0 0 0 48,29 Z", fill: `url(#${gradientId(idPrefix, "pink")})` }),
|
|
959
|
-
/* @__PURE__ */ jsx5("ellipse", { cx: "55", cy: "70", rx: "6", ry: "2.5", fill: "#FBE4E4" })
|
|
960
|
-
] }) })
|
|
967
|
+
/* @__PURE__ */ jsx5("circle", { cx: "10.5", cy: "41.5", r: "1.7", fill: "currentColor", opacity: "0.55" }),
|
|
968
|
+
/* @__PURE__ */ jsx5("circle", { cx: "6.5", cy: "37", r: "1.2", fill: "currentColor", opacity: "0.4" }),
|
|
969
|
+
/* @__PURE__ */ jsx5("circle", { cx: "4", cy: "43.5", r: "0.85", fill: "currentColor", opacity: "0.28" })
|
|
961
970
|
] }),
|
|
962
971
|
isWordmark ? /* @__PURE__ */ jsx5("text", { className: "chalk-logo__wordmark", x: "90", y: "52", fontFamily: "system-ui, -apple-system, BlinkMacSystemFont, sans-serif", fontSize: "38", fontWeight: "600", letterSpacing: "-0.02em", fill: "currentColor", children: "chalk" }) : null
|
|
963
972
|
]
|