@bigbluebutton/tldraw 2.0.0-alpha.34 → 2.0.0-alpha.35
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/dist-cjs/index.js +4 -4
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/lib/Tldraw.js +1 -2
- package/dist-cjs/lib/Tldraw.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawHandles.js +1 -2
- package/dist-cjs/lib/canvas/TldrawHandles.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawHoveredShapeIndicator.js +1 -2
- package/dist-cjs/lib/canvas/TldrawHoveredShapeIndicator.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawScribble.js +1 -2
- package/dist-cjs/lib/canvas/TldrawScribble.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawSelectionBackground.js +1 -2
- package/dist-cjs/lib/canvas/TldrawSelectionBackground.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +1 -2
- package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +1 -1
- package/dist-cjs/lib/defaultExternalContentHandlers.js +3 -6
- package/dist-cjs/lib/defaultExternalContentHandlers.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +7 -14
- package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js +1 -2
- package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +6 -12
- package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js +12 -24
- package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js.map +1 -1
- package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -2
- package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/FrameShapeTool.js +4 -8
- package/dist-cjs/lib/shapes/frame/FrameShapeTool.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +3 -6
- package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -2
- package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +4 -8
- package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +1 -1
- package/dist-cjs/lib/shapes/geo/toolStates/Idle.js +1 -2
- package/dist-cjs/lib/shapes/geo/toolStates/Idle.js.map +1 -1
- package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js +2 -4
- package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +5 -10
- package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/line/components/svg.js +1 -2
- package/dist-cjs/lib/shapes/line/components/svg.js.map +1 -1
- package/dist-cjs/lib/shapes/line/toolStates/Pointing.js +5 -10
- package/dist-cjs/lib/shapes/line/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/poll/components/CustomizedAxisTick.js +1 -2
- package/dist-cjs/lib/shapes/poll/components/CustomizedAxisTick.js.map +1 -1
- package/dist-cjs/lib/shapes/poll/components/poll-content.js +1 -2
- package/dist-cjs/lib/shapes/poll/components/poll-content.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/TextHelpers.js +2 -4
- package/dist-cjs/lib/shapes/shared/TextHelpers.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/createTextSvgElementFromSpans.js +1 -2
- package/dist-cjs/lib/shapes/shared/createTextSvgElementFromSpans.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/defaultStyleDefs.js +8 -16
- package/dist-cjs/lib/shapes/shared/defaultStyleDefs.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/freehand/getStrokePoints.js +6 -12
- package/dist-cjs/lib/shapes/shared/freehand/getStrokePoints.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/freehand/setStrokePointRadii.js +1 -2
- package/dist-cjs/lib/shapes/shared/freehand/setStrokePointRadii.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/freehand/svgInk.js +2 -4
- package/dist-cjs/lib/shapes/shared/freehand/svgInk.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/useEditableText.js +5 -10
- package/dist-cjs/lib/shapes/shared/useEditableText.js.map +1 -1
- package/dist-cjs/lib/shapes/text/TextShapeUtil.js +6 -12
- package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/text/toolStates/Idle.js +1 -2
- package/dist-cjs/lib/shapes/text/toolStates/Idle.js.map +1 -1
- package/dist-cjs/lib/shapes/text/toolStates/Pointing.js +1 -2
- package/dist-cjs/lib/shapes/text/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +2 -4
- package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
- package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +2 -4
- package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js +25 -30
- package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js +12 -24
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Cropping.js +8 -16
- package/dist-cjs/lib/tools/SelectTool/childStates/Cropping.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +3 -6
- package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js +2 -4
- package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +21 -42
- package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingCropHandle.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingCropHandle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +5 -10
- package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +2 -4
- package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +4 -8
- package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/children/DraggingHandle.js +3 -6
- package/dist-cjs/lib/tools/SelectTool/children/DraggingHandle.js.map +1 -1
- package/dist-cjs/lib/tools/selection-logic/updateHoveredId.js +1 -2
- package/dist-cjs/lib/tools/selection-logic/updateHoveredId.js.map +1 -1
- package/dist-cjs/lib/ui/assetUrls.js +1 -2
- package/dist-cjs/lib/ui/assetUrls.js.map +1 -1
- package/dist-cjs/lib/ui/components/ActionsMenu.js +2 -4
- package/dist-cjs/lib/ui/components/ActionsMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/BackToContent.js +1 -2
- package/dist-cjs/lib/ui/components/BackToContent.js.map +1 -1
- package/dist-cjs/lib/ui/components/ContextMenu.js +3 -6
- package/dist-cjs/lib/ui/components/ContextMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/DebugPanel.js +2 -4
- package/dist-cjs/lib/ui/components/DebugPanel.js.map +1 -1
- package/dist-cjs/lib/ui/components/EditLinkDialog.js +2 -4
- package/dist-cjs/lib/ui/components/EditLinkDialog.js.map +1 -1
- package/dist-cjs/lib/ui/components/EmbedDialog.js +1 -2
- package/dist-cjs/lib/ui/components/EmbedDialog.js.map +1 -1
- package/dist-cjs/lib/ui/components/FollowingIndicator.js +2 -4
- package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +1 -1
- package/dist-cjs/lib/ui/components/HelpMenu.js +2 -4
- package/dist-cjs/lib/ui/components/HelpMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog.js +2 -4
- package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog.js.map +1 -1
- package/dist-cjs/lib/ui/components/Menu.js +5 -10
- package/dist-cjs/lib/ui/components/Menu.js.map +1 -1
- package/dist-cjs/lib/ui/components/NavigationZone/Minimap.js +3 -6
- package/dist-cjs/lib/ui/components/NavigationZone/Minimap.js.map +1 -1
- package/dist-cjs/lib/ui/components/PageMenu/PageMenu.js +5 -10
- package/dist-cjs/lib/ui/components/PageMenu/PageMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/PenModeToggle.js +1 -2
- package/dist-cjs/lib/ui/components/PenModeToggle.js.map +1 -1
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +1 -2
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +1 -1
- package/dist-cjs/lib/ui/components/StylePanel/StylePanel.js +1 -2
- package/dist-cjs/lib/ui/components/StylePanel/StylePanel.js.map +1 -1
- package/dist-cjs/lib/ui/components/Toasts.js +1 -2
- package/dist-cjs/lib/ui/components/Toasts.js.map +1 -1
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +1 -2
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +1 -1
- package/dist-cjs/lib/ui/components/TrashButton.js +1 -2
- package/dist-cjs/lib/ui/components/TrashButton.js.map +1 -1
- package/dist-cjs/lib/ui/components/primitives/ButtonPicker.js +2 -4
- package/dist-cjs/lib/ui/components/primitives/ButtonPicker.js.map +1 -1
- package/dist-cjs/lib/ui/components/primitives/Input.js +1 -2
- package/dist-cjs/lib/ui/components/primitives/Input.js.map +1 -1
- package/dist-cjs/lib/ui/components/primitives/Slider.js +1 -2
- package/dist-cjs/lib/ui/components/primitives/Slider.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/clipboard/pasteExcalidrawContent.js +2 -4
- package/dist-cjs/lib/ui/hooks/clipboard/pasteExcalidrawContent.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/menuHelpers.js +5 -10
- package/dist-cjs/lib/ui/hooks/menuHelpers.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useActions.js +73 -146
- package/dist-cjs/lib/ui/hooks/useActions.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +6 -12
- package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useHighDpiCanvas.js +1 -2
- package/dist-cjs/lib/ui/hooks/useHighDpiCanvas.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useInsertMedia.js +1 -2
- package/dist-cjs/lib/ui/hooks/useInsertMedia.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +8 -16
- package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useMenuIsOpen.js +1 -2
- package/dist-cjs/lib/ui/hooks/useMenuIsOpen.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useMenuSchema.js +2 -4
- package/dist-cjs/lib/ui/hooks/useMenuSchema.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/usePreloadAssets.js +2 -4
- package/dist-cjs/lib/ui/hooks/usePreloadAssets.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/usePreloadIcons.js +1 -2
- package/dist-cjs/lib/ui/hooks/usePreloadIcons.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/usePrint.js +2 -4
- package/dist-cjs/lib/ui/hooks/usePrint.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useRevelantStyles.js +1 -2
- package/dist-cjs/lib/ui/hooks/useRevelantStyles.js.map +1 -1
- package/dist-cjs/lib/utils/assets/is-gif-animated.js +9 -0
- package/dist-cjs/lib/utils/assets/is-gif-animated.js.map +1 -1
- package/dist-cjs/lib/utils/export/export.js +2 -4
- package/dist-cjs/lib/utils/export/export.js.map +1 -1
- package/dist-cjs/lib/utils/export/exportAs.js +1 -2
- package/dist-cjs/lib/utils/export/exportAs.js.map +1 -1
- package/dist-cjs/lib/utils/frames/frames.js +4 -8
- package/dist-cjs/lib/utils/frames/frames.js.map +1 -1
- package/dist-cjs/lib/utils/static-assets/assetUrls.js +1 -2
- package/dist-cjs/lib/utils/static-assets/assetUrls.js.map +1 -1
- package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +10 -20
- package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +1 -1
- package/dist-cjs/lib/utils/tldr/file.js +1 -2
- package/dist-cjs/lib/utils/tldr/file.js.map +1 -1
- package/dist-esm/lib/Tldraw.mjs +1 -2
- package/dist-esm/lib/Tldraw.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawHandles.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawHandles.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawHoveredShapeIndicator.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawHoveredShapeIndicator.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawScribble.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawSelectionBackground.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawSelectionBackground.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +1 -1
- package/dist-esm/lib/defaultExternalContentHandlers.mjs +3 -6
- package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +7 -14
- package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs +1 -2
- package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +6 -12
- package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs +12 -24
- package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs.map +1 -1
- package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -2
- package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs +4 -8
- package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +3 -6
- package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -2
- package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +4 -8
- package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +1 -1
- package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs +1 -2
- package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs +2 -4
- package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +5 -10
- package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/line/components/svg.mjs +1 -2
- package/dist-esm/lib/shapes/line/components/svg.mjs.map +1 -1
- package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs +5 -10
- package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/poll/components/CustomizedAxisTick.mjs +1 -2
- package/dist-esm/lib/shapes/poll/components/CustomizedAxisTick.mjs.map +1 -1
- package/dist-esm/lib/shapes/poll/components/poll-content.mjs +1 -2
- package/dist-esm/lib/shapes/poll/components/poll-content.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/TextHelpers.mjs +2 -4
- package/dist-esm/lib/shapes/shared/TextHelpers.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/createTextSvgElementFromSpans.mjs +1 -2
- package/dist-esm/lib/shapes/shared/createTextSvgElementFromSpans.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/defaultStyleDefs.mjs +8 -16
- package/dist-esm/lib/shapes/shared/defaultStyleDefs.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/freehand/getStrokePoints.mjs +6 -12
- package/dist-esm/lib/shapes/shared/freehand/getStrokePoints.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/freehand/setStrokePointRadii.mjs +1 -2
- package/dist-esm/lib/shapes/shared/freehand/setStrokePointRadii.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/freehand/svgInk.mjs +2 -4
- package/dist-esm/lib/shapes/shared/freehand/svgInk.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/useEditableText.mjs +5 -10
- package/dist-esm/lib/shapes/shared/useEditableText.mjs.map +1 -1
- package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +6 -12
- package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/text/toolStates/Idle.mjs +1 -2
- package/dist-esm/lib/shapes/text/toolStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs +1 -2
- package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +2 -4
- package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +2 -4
- package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs +25 -30
- package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs +12 -24
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Cropping.mjs +8 -16
- package/dist-esm/lib/tools/SelectTool/childStates/Cropping.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +3 -6
- package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs +2 -4
- package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +21 -42
- package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/PointingCropHandle.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/PointingCropHandle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +5 -10
- package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +2 -4
- package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +4 -8
- package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/children/DraggingHandle.mjs +3 -6
- package/dist-esm/lib/tools/SelectTool/children/DraggingHandle.mjs.map +1 -1
- package/dist-esm/lib/tools/selection-logic/updateHoveredId.mjs +1 -2
- package/dist-esm/lib/tools/selection-logic/updateHoveredId.mjs.map +1 -1
- package/dist-esm/lib/ui/assetUrls.mjs +1 -2
- package/dist-esm/lib/ui/assetUrls.mjs.map +1 -1
- package/dist-esm/lib/ui/components/ActionsMenu.mjs +2 -4
- package/dist-esm/lib/ui/components/ActionsMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/BackToContent.mjs +1 -2
- package/dist-esm/lib/ui/components/BackToContent.mjs.map +1 -1
- package/dist-esm/lib/ui/components/ContextMenu.mjs +3 -6
- package/dist-esm/lib/ui/components/ContextMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/DebugPanel.mjs +2 -4
- package/dist-esm/lib/ui/components/DebugPanel.mjs.map +1 -1
- package/dist-esm/lib/ui/components/EditLinkDialog.mjs +2 -4
- package/dist-esm/lib/ui/components/EditLinkDialog.mjs.map +1 -1
- package/dist-esm/lib/ui/components/EmbedDialog.mjs +1 -2
- package/dist-esm/lib/ui/components/EmbedDialog.mjs.map +1 -1
- package/dist-esm/lib/ui/components/FollowingIndicator.mjs +2 -4
- package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +1 -1
- package/dist-esm/lib/ui/components/HelpMenu.mjs +2 -4
- package/dist-esm/lib/ui/components/HelpMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/KeyboardShortcutsDialog.mjs +2 -4
- package/dist-esm/lib/ui/components/KeyboardShortcutsDialog.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Menu.mjs +5 -10
- package/dist-esm/lib/ui/components/Menu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/NavigationZone/Minimap.mjs +3 -6
- package/dist-esm/lib/ui/components/NavigationZone/Minimap.mjs.map +1 -1
- package/dist-esm/lib/ui/components/PageMenu/PageMenu.mjs +5 -10
- package/dist-esm/lib/ui/components/PageMenu/PageMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/PenModeToggle.mjs +1 -2
- package/dist-esm/lib/ui/components/PenModeToggle.mjs.map +1 -1
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +1 -2
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +1 -1
- package/dist-esm/lib/ui/components/StylePanel/StylePanel.mjs +1 -2
- package/dist-esm/lib/ui/components/StylePanel/StylePanel.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Toasts.mjs +1 -2
- package/dist-esm/lib/ui/components/Toasts.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +1 -2
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +1 -1
- package/dist-esm/lib/ui/components/TrashButton.mjs +1 -2
- package/dist-esm/lib/ui/components/TrashButton.mjs.map +1 -1
- package/dist-esm/lib/ui/components/primitives/ButtonPicker.mjs +2 -4
- package/dist-esm/lib/ui/components/primitives/ButtonPicker.mjs.map +1 -1
- package/dist-esm/lib/ui/components/primitives/Input.mjs +1 -2
- package/dist-esm/lib/ui/components/primitives/Input.mjs.map +1 -1
- package/dist-esm/lib/ui/components/primitives/Slider.mjs +1 -2
- package/dist-esm/lib/ui/components/primitives/Slider.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/clipboard/pasteExcalidrawContent.mjs +2 -4
- package/dist-esm/lib/ui/hooks/clipboard/pasteExcalidrawContent.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/menuHelpers.mjs +5 -10
- package/dist-esm/lib/ui/hooks/menuHelpers.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useActions.mjs +73 -146
- package/dist-esm/lib/ui/hooks/useActions.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +6 -12
- package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useHighDpiCanvas.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useHighDpiCanvas.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useInsertMedia.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useInsertMedia.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +8 -16
- package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useMenuIsOpen.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useMenuIsOpen.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useMenuSchema.mjs +2 -4
- package/dist-esm/lib/ui/hooks/useMenuSchema.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/usePreloadAssets.mjs +2 -4
- package/dist-esm/lib/ui/hooks/usePreloadAssets.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/usePreloadIcons.mjs +1 -2
- package/dist-esm/lib/ui/hooks/usePreloadIcons.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/usePrint.mjs +2 -4
- package/dist-esm/lib/ui/hooks/usePrint.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useRevelantStyles.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useRevelantStyles.mjs.map +1 -1
- package/dist-esm/lib/utils/assets/is-gif-animated.mjs +9 -0
- package/dist-esm/lib/utils/assets/is-gif-animated.mjs.map +1 -1
- package/dist-esm/lib/utils/export/export.mjs +2 -4
- package/dist-esm/lib/utils/export/export.mjs.map +1 -1
- package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
- package/dist-esm/lib/utils/export/exportAs.mjs.map +1 -1
- package/dist-esm/lib/utils/frames/frames.mjs +4 -8
- package/dist-esm/lib/utils/frames/frames.mjs.map +1 -1
- package/dist-esm/lib/utils/static-assets/assetUrls.mjs +1 -2
- package/dist-esm/lib/utils/static-assets/assetUrls.mjs.map +1 -1
- package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +10 -20
- package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +1 -1
- package/dist-esm/lib/utils/tldr/file.mjs +1 -2
- package/dist-esm/lib/utils/tldr/file.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/components/HelpMenu.tsx"],
|
|
4
4
|
"sourcesContent": ["import { useContainer } from '@bigbluebutton/editor'\nimport { Content, Portal, Root, Trigger } from '@radix-ui/react-dropdown-menu'\nimport * as React from 'react'\nimport { TLUiMenuChild } from '../hooks/menuHelpers'\nimport { useHelpMenuSchema } from '../hooks/useHelpMenuSchema'\nimport { useMenuIsOpen } from '../hooks/useMenuIsOpen'\nimport { useReadonly } from '../hooks/useReadonly'\nimport { TLUiTranslationKey } from '../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../icon-types'\nimport { LanguageMenu } from './LanguageMenu'\nimport { Button } from './primitives/Button'\nimport * as M from './primitives/DropdownMenu'\n\ninterface HelpMenuLink {\n\tlabel: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\ticon: TLUiIconType | Exclude<string, TLUiIconType>\n\turl: string\n}\n\n/** @internal */\nexport interface HelpMenuProps {\n\tlinks?: HelpMenuLink[]\n}\n\n/** @internal */\nexport const HelpMenu = React.memo(function HelpMenu() {\n\tconst container = useContainer()\n\tconst msg = useTranslation()\n\tconst [isOpen, onOpenChange] = useMenuIsOpen('help menu')\n\n\treturn (\n\t\t<div className=\"tlui-help-menu\">\n\t\t\t<Root dir=\"ltr\" open={isOpen} onOpenChange={onOpenChange} modal={false}>\n\t\t\t\t<Trigger asChild dir=\"ltr\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"help\"\n\t\t\t\t\t\tclassName=\"tlui-button\"\n\t\t\t\t\t\tsmallIcon\n\t\t\t\t\t\ttitle={msg('help-menu.title')}\n\t\t\t\t\t\ticon=\"question-mark\"\n\t\t\t\t\t/>\n\t\t\t\t</Trigger>\n\t\t\t\t<Portal container={container}>\n\t\t\t\t\t<Content\n\t\t\t\t\t\tclassName=\"tlui-menu\"\n\t\t\t\t\t\tside=\"top\"\n\t\t\t\t\t\tsideOffset={8}\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\talignOffset={0}\n\t\t\t\t\t\tcollisionPadding={4}\n\t\t\t\t\t>\n\t\t\t\t\t\t<HelpMenuContent />\n\t\t\t\t\t</Content>\n\t\t\t\t</Portal>\n\t\t\t</Root>\n\t\t</div>\n\t)\n})\n\nfunction HelpMenuContent() {\n\tconst menuSchema = useHelpMenuSchema()\n\n\tconst isReadonly = useReadonly()\n\n\tfunction getHelpMenuItem(item: TLUiMenuChild) {\n\t\tif (!item) return null\n\t\tif (isReadonly && !item.readonlyOk) return null\n\n\t\tswitch (item.type) {\n\t\t\tcase 'custom': {\n\t\t\t\tif (item.id === 'LANGUAGE_MENU') {\n\t\t\t\t\treturn <LanguageMenu key=\"item\" />\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'group': {\n\t\t\t\treturn (\n\t\t\t\t\t<M.Group size=\"small\" key={item.id}>\n\t\t\t\t\t\t{item.children.map(getHelpMenuItem)}\n\t\t\t\t\t</M.Group>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcase 'submenu': {\n\t\t\t\treturn (\n\t\t\t\t\t<M.Sub id={`help menu ${item.id}`} key={item.id}>\n\t\t\t\t\t\t<M.SubTrigger label={item.label} />\n\t\t\t\t\t\t<M.SubContent>{item.children.map(getHelpMenuItem)}</M.SubContent>\n\t\t\t\t\t</M.Sub>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcase 'item': {\n\t\t\t\tconst { id, kbd, label, onSelect, icon } = item.actionItem\n\t\t\t\treturn (\n\t\t\t\t\t<M.Item\n\t\t\t\t\t\ttype=\"menu\"\n\t\t\t\t\t\tkey={id}\n\t\t\t\t\t\tkbd={kbd}\n\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\tonClick={() => onSelect('help-menu')}\n\t\t\t\t\t\ticonLeft={icon}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn <>{menuSchema.map(getHelpMenuItem)}</>\n}\n"],
|
|
5
|
-
"mappings": "AAiCG,SA0EK,UAxEH,KAFF;AAjCH,SAAS,oBAAoB;AAC7B,SAAS,SAAS,QAAQ,MAAM,eAAe;AAC/C,YAAY,WAAW;AAEvB,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AACvB,YAAY,OAAO;AAcZ,MAAM,WAAW,MAAM,KAAK,SAASA,YAAW;AACtD,QAAM,YAAY,aAAa;AAC/B,QAAM,MAAM,eAAe;AAC3B,QAAM,CAAC,QAAQ,YAAY,IAAI,cAAc,WAAW;AAExD,SACC,oBAAC,SAAI,WAAU,kBACd,+BAAC,QAAK,KAAI,OAAM,MAAM,QAAQ,cAA4B,OAAO,OAChE;AAAA,wBAAC,WAAQ,SAAO,MAAC,KAAI,OACpB;AAAA,MAAC;AAAA;AAAA,QACA,MAAK;AAAA,QACL,WAAU;AAAA,QACV,WAAS;AAAA,QACT,OAAO,IAAI,iBAAiB;AAAA,QAC5B,MAAK;AAAA;AAAA,IACN,GACD;AAAA,IACA,oBAAC,UAAO,WACP;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,MAAK;AAAA,QACL,YAAY;AAAA,QACZ,OAAM;AAAA,QACN,aAAa;AAAA,QACb,kBAAkB;AAAA,QAElB,8BAAC,mBAAgB;AAAA;AAAA,IAClB,GACD;AAAA,KACD,GACD;AAEF,CAAC;AAED,SAAS,kBAAkB;AAC1B,QAAM,aAAa,kBAAkB;AAErC,QAAM,aAAa,YAAY;AAE/B,WAAS,gBAAgB,MAAqB;AAC7C,QAAI,CAAC
|
|
5
|
+
"mappings": "AAiCG,SA0EK,UAxEH,KAFF;AAjCH,SAAS,oBAAoB;AAC7B,SAAS,SAAS,QAAQ,MAAM,eAAe;AAC/C,YAAY,WAAW;AAEvB,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AACvB,YAAY,OAAO;AAcZ,MAAM,WAAW,MAAM,KAAK,SAASA,YAAW;AACtD,QAAM,YAAY,aAAa;AAC/B,QAAM,MAAM,eAAe;AAC3B,QAAM,CAAC,QAAQ,YAAY,IAAI,cAAc,WAAW;AAExD,SACC,oBAAC,SAAI,WAAU,kBACd,+BAAC,QAAK,KAAI,OAAM,MAAM,QAAQ,cAA4B,OAAO,OAChE;AAAA,wBAAC,WAAQ,SAAO,MAAC,KAAI,OACpB;AAAA,MAAC;AAAA;AAAA,QACA,MAAK;AAAA,QACL,WAAU;AAAA,QACV,WAAS;AAAA,QACT,OAAO,IAAI,iBAAiB;AAAA,QAC5B,MAAK;AAAA;AAAA,IACN,GACD;AAAA,IACA,oBAAC,UAAO,WACP;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,MAAK;AAAA,QACL,YAAY;AAAA,QACZ,OAAM;AAAA,QACN,aAAa;AAAA,QACb,kBAAkB;AAAA,QAElB,8BAAC,mBAAgB;AAAA;AAAA,IAClB,GACD;AAAA,KACD,GACD;AAEF,CAAC;AAED,SAAS,kBAAkB;AAC1B,QAAM,aAAa,kBAAkB;AAErC,QAAM,aAAa,YAAY;AAE/B,WAAS,gBAAgB,MAAqB;AAC7C,QAAI,CAAC,KAAM,QAAO;AAClB,QAAI,cAAc,CAAC,KAAK,WAAY,QAAO;AAE3C,YAAQ,KAAK,MAAM;AAAA,MAClB,KAAK,UAAU;AACd,YAAI,KAAK,OAAO,iBAAiB;AAChC,iBAAO,oBAAC,kBAAiB,MAAO;AAAA,QACjC;AACA;AAAA,MACD;AAAA,MACA,KAAK,SAAS;AACb,eACC,oBAAC,EAAE,OAAF,EAAQ,MAAK,SACZ,eAAK,SAAS,IAAI,eAAe,KADR,KAAK,EAEhC;AAAA,MAEF;AAAA,MACA,KAAK,WAAW;AACf,eACC,qBAAC,EAAE,KAAF,EAAM,IAAI,aAAa,KAAK,EAAE,IAC9B;AAAA,8BAAC,EAAE,YAAF,EAAa,OAAO,KAAK,OAAO;AAAA,UACjC,oBAAC,EAAE,YAAF,EAAc,eAAK,SAAS,IAAI,eAAe,GAAE;AAAA,aAFX,KAAK,EAG7C;AAAA,MAEF;AAAA,MACA,KAAK,QAAQ;AACZ,cAAM,EAAE,IAAI,KAAK,OAAO,UAAU,KAAK,IAAI,KAAK;AAChD,eACC;AAAA,UAAC,EAAE;AAAA,UAAF;AAAA,YACA,MAAK;AAAA,YAEL;AAAA,YACA;AAAA,YACA,SAAS,MAAM,SAAS,WAAW;AAAA,YACnC,UAAU;AAAA;AAAA,UAJL;AAAA,QAKN;AAAA,MAEF;AAAA,IACD;AAAA,EACD;AAEA,SAAO,gCAAG,qBAAW,IAAI,eAAe,GAAE;AAC3C;",
|
|
6
6
|
"names": ["HelpMenu"]
|
|
7
7
|
}
|
|
@@ -9,10 +9,8 @@ const KeyboardShortcutsDialog = () => {
|
|
|
9
9
|
const isReadonly = useReadonly();
|
|
10
10
|
const shortcutsItems = useKeyboardShortcutsSchema();
|
|
11
11
|
function getKeyboardShortcutItem(item) {
|
|
12
|
-
if (!item)
|
|
13
|
-
|
|
14
|
-
if (isReadonly && !item.readonlyOk)
|
|
15
|
-
return null;
|
|
12
|
+
if (!item) return null;
|
|
13
|
+
if (isReadonly && !item.readonlyOk) return null;
|
|
16
14
|
switch (item.type) {
|
|
17
15
|
case "group": {
|
|
18
16
|
return /* @__PURE__ */ jsxs("div", { className: "tlui-shortcuts-dialog__group", children: [
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/components/KeyboardShortcutsDialog.tsx"],
|
|
4
4
|
"sourcesContent": ["import { TLUiMenuChild } from '../hooks/menuHelpers'\nimport { useKeyboardShortcutsSchema } from '../hooks/useKeyboardShortcutsSchema'\nimport { useReadonly } from '../hooks/useReadonly'\nimport { TLUiTranslationKey } from '../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../hooks/useTranslation/useTranslation'\nimport * as Dialog from './primitives/Dialog'\nimport { Kbd } from './primitives/Kbd'\n\nexport const KeyboardShortcutsDialog = () => {\n\tconst msg = useTranslation()\n\tconst isReadonly = useReadonly()\n\tconst shortcutsItems = useKeyboardShortcutsSchema()\n\n\tfunction getKeyboardShortcutItem(item: TLUiMenuChild) {\n\t\tif (!item) return null\n\t\tif (isReadonly && !item.readonlyOk) return null\n\n\t\tswitch (item.type) {\n\t\t\tcase 'group': {\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"tlui-shortcuts-dialog__group\" key={item.id}>\n\t\t\t\t\t\t<h2 className=\"tlui-shortcuts-dialog__group__title\">\n\t\t\t\t\t\t\t{msg(item.id as TLUiTranslationKey)}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<div className=\"tlui-shortcuts-dialog__group__content\">\n\t\t\t\t\t\t\t{item.children\n\t\t\t\t\t\t\t\t.filter((item) => item && item.type === 'item' && item.actionItem.kbd)\n\t\t\t\t\t\t\t\t.map(getKeyboardShortcutItem)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcase 'item': {\n\t\t\t\tconst { id, label, shortcutsLabel, kbd } = item.actionItem\n\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"tlui-shortcuts-dialog__key-pair\" key={id}>\n\t\t\t\t\t\t<div className=\"tlui-shortcuts-dialog__key-pair__key\">\n\t\t\t\t\t\t\t{msg((shortcutsLabel ?? label)!)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"tlui-shortcuts-dialog__key-pair__value\">\n\t\t\t\t\t\t\t<Kbd>{kbd!}</Kbd>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Dialog.Header className=\"tlui-shortcuts-dialog__header\">\n\t\t\t\t<Dialog.Title>{msg('shortcuts-dialog.title')}</Dialog.Title>\n\t\t\t\t<Dialog.CloseButton />\n\t\t\t</Dialog.Header>\n\t\t\t<Dialog.Body className=\"tlui-shortcuts-dialog__body\">\n\t\t\t\t{shortcutsItems.map(getKeyboardShortcutItem)}\n\t\t\t</Dialog.Body>\n\t\t\t<div className=\"tlui-dialog__scrim\" />\n\t\t</>\n\t)\n}\n"],
|
|
5
|
-
"mappings": "AAoBK,SA8BH,UA7BI,KADD;AAnBL,SAAS,kCAAkC;AAC3C,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAC/B,YAAY,YAAY;AACxB,SAAS,WAAW;AAEb,MAAM,0BAA0B,MAAM;AAC5C,QAAM,MAAM,eAAe;AAC3B,QAAM,aAAa,YAAY;AAC/B,QAAM,iBAAiB,2BAA2B;AAElD,WAAS,wBAAwB,MAAqB;AACrD,QAAI,CAAC
|
|
5
|
+
"mappings": "AAoBK,SA8BH,UA7BI,KADD;AAnBL,SAAS,kCAAkC;AAC3C,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAC/B,YAAY,YAAY;AACxB,SAAS,WAAW;AAEb,MAAM,0BAA0B,MAAM;AAC5C,QAAM,MAAM,eAAe;AAC3B,QAAM,aAAa,YAAY;AAC/B,QAAM,iBAAiB,2BAA2B;AAElD,WAAS,wBAAwB,MAAqB;AACrD,QAAI,CAAC,KAAM,QAAO;AAClB,QAAI,cAAc,CAAC,KAAK,WAAY,QAAO;AAE3C,YAAQ,KAAK,MAAM;AAAA,MAClB,KAAK,SAAS;AACb,eACC,qBAAC,SAAI,WAAU,gCACd;AAAA,8BAAC,QAAG,WAAU,uCACZ,cAAI,KAAK,EAAwB,GACnC;AAAA,UACA,oBAAC,SAAI,WAAU,yCACb,eAAK,SACJ,OAAO,CAACA,UAASA,SAAQA,MAAK,SAAS,UAAUA,MAAK,WAAW,GAAG,EACpE,IAAI,uBAAuB,GAC9B;AAAA,aARkD,KAAK,EASxD;AAAA,MAEF;AAAA,MACA,KAAK,QAAQ;AACZ,cAAM,EAAE,IAAI,OAAO,gBAAgB,IAAI,IAAI,KAAK;AAEhD,eACC,qBAAC,SAAI,WAAU,mCACd;AAAA,8BAAC,SAAI,WAAU,wCACb,cAAK,kBAAkB,KAAO,GAChC;AAAA,UACA,oBAAC,SAAI,WAAU,0CACd,8BAAC,OAAK,eAAK,GACZ;AAAA,aANqD,EAOtD;AAAA,MAEF;AAAA,IACD;AAAA,EACD;AAEA,SACC,iCACC;AAAA,yBAAC,OAAO,QAAP,EAAc,WAAU,iCACxB;AAAA,0BAAC,OAAO,OAAP,EAAc,cAAI,wBAAwB,GAAE;AAAA,MAC7C,oBAAC,OAAO,aAAP,EAAmB;AAAA,OACrB;AAAA,IACA,oBAAC,OAAO,MAAP,EAAY,WAAU,+BACrB,yBAAe,IAAI,uBAAuB,GAC5C;AAAA,IACA,oBAAC,SAAI,WAAU,sBAAqB;AAAA,KACrC;AAEF;",
|
|
6
6
|
"names": ["item"]
|
|
7
7
|
}
|
|
@@ -33,20 +33,17 @@ function MenuContent() {
|
|
|
33
33
|
const breakpoint = useBreakpoint();
|
|
34
34
|
const isReadonly = useReadonly();
|
|
35
35
|
function getMenuItem(editor2, item, parent, depth) {
|
|
36
|
-
if (!item)
|
|
37
|
-
return null;
|
|
36
|
+
if (!item) return null;
|
|
38
37
|
switch (item.type) {
|
|
39
38
|
case "custom": {
|
|
40
|
-
if (isReadonly && !item.readonlyOk)
|
|
41
|
-
return null;
|
|
39
|
+
if (isReadonly && !item.readonlyOk) return null;
|
|
42
40
|
if (item.id === "LANGUAGE_MENU") {
|
|
43
41
|
return /* @__PURE__ */ jsx(LanguageMenu, {}, "item");
|
|
44
42
|
}
|
|
45
43
|
return null;
|
|
46
44
|
}
|
|
47
45
|
case "group": {
|
|
48
|
-
if (isReadonly && !item.readonlyOk)
|
|
49
|
-
return null;
|
|
46
|
+
if (isReadonly && !item.readonlyOk) return null;
|
|
50
47
|
return /* @__PURE__ */ jsx(
|
|
51
48
|
M.Group,
|
|
52
49
|
{
|
|
@@ -57,16 +54,14 @@ function MenuContent() {
|
|
|
57
54
|
);
|
|
58
55
|
}
|
|
59
56
|
case "submenu": {
|
|
60
|
-
if (isReadonly && !item.readonlyOk)
|
|
61
|
-
return null;
|
|
57
|
+
if (isReadonly && !item.readonlyOk) return null;
|
|
62
58
|
return /* @__PURE__ */ jsxs(M.Sub, { id: `main menu ${parent ? parent.id + " " : ""}${item.id}`, children: [
|
|
63
59
|
/* @__PURE__ */ jsx(M.SubTrigger, { label: item.label, "data-testid": `menu-item.${item.id}` }),
|
|
64
60
|
/* @__PURE__ */ jsx(M.SubContent, { sideOffset: -4, alignOffset: -1, children: item.children.map((child) => getMenuItem(editor2, child, item, depth + 1)) })
|
|
65
61
|
] }, item.id);
|
|
66
62
|
}
|
|
67
63
|
case "item": {
|
|
68
|
-
if (isReadonly && !item.readonlyOk)
|
|
69
|
-
return null;
|
|
64
|
+
if (isReadonly && !item.readonlyOk) return null;
|
|
70
65
|
const { id, checkbox, menuLabel, label, onSelect, kbd } = item.actionItem;
|
|
71
66
|
const labelToUse = menuLabel ?? label;
|
|
72
67
|
const labelStr = labelToUse ? msg(labelToUse) : void 0;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/components/Menu.tsx"],
|
|
4
4
|
"sourcesContent": ["import { Editor, useEditor } from '@bigbluebutton/editor'\nimport * as React from 'react'\nimport { TLUiMenuChild } from '../hooks/menuHelpers'\nimport { useBreakpoint } from '../hooks/useBreakpoint'\nimport { useMenuSchema } from '../hooks/useMenuSchema'\nimport { useReadonly } from '../hooks/useReadonly'\nimport { useTranslation } from '../hooks/useTranslation/useTranslation'\nimport { LanguageMenu } from './LanguageMenu'\nimport { Button } from './primitives/Button'\nimport * as M from './primitives/DropdownMenu'\nimport { Kbd } from './primitives/Kbd'\n\nexport const Menu = React.memo(function Menu() {\n\tconst msg = useTranslation()\n\n\treturn (\n\t\t<M.Root id=\"main menu\">\n\t\t\t<M.Trigger>\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\tclassName=\"tlui-menu__trigger\"\n\t\t\t\t\tdata-testid=\"main.menu\"\n\t\t\t\t\ttitle={msg('menu.title')}\n\t\t\t\t\ticon=\"menu\"\n\t\t\t\t\tsmallIcon\n\t\t\t\t/>\n\t\t\t</M.Trigger>\n\t\t\t<M.Content alignOffset={0} sideOffset={6}>\n\t\t\t\t<MenuContent />\n\t\t\t</M.Content>\n\t\t</M.Root>\n\t)\n})\n\nfunction MenuContent() {\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\tconst menuSchema = useMenuSchema()\n\tconst breakpoint = useBreakpoint()\n\tconst isReadonly = useReadonly()\n\n\tfunction getMenuItem(\n\t\teditor: Editor,\n\t\titem: TLUiMenuChild,\n\t\tparent: TLUiMenuChild | null,\n\t\tdepth: number\n\t) {\n\t\tif (!item) return null\n\t\tswitch (item.type) {\n\t\t\tcase 'custom': {\n\t\t\t\tif (isReadonly && !item.readonlyOk) return null\n\n\t\t\t\tif (item.id === 'LANGUAGE_MENU') {\n\t\t\t\t\treturn <LanguageMenu key=\"item\" />\n\t\t\t\t}\n\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tcase 'group': {\n\t\t\t\tif (isReadonly && !item.readonlyOk) return null\n\n\t\t\t\treturn (\n\t\t\t\t\t<M.Group\n\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\tdepth <= 1\n\t\t\t\t\t\t\t\t? 'medium'\n\t\t\t\t\t\t\t\t: breakpoint < 3 || (parent?.type === 'submenu' && depth > 2)\n\t\t\t\t\t\t\t\t? 'tiny'\n\t\t\t\t\t\t\t\t: 'medium'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t{item.children.map((child) => getMenuItem(editor, child, item, depth + 1))}\n\t\t\t\t\t</M.Group>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcase 'submenu': {\n\t\t\t\tif (isReadonly && !item.readonlyOk) return null\n\n\t\t\t\treturn (\n\t\t\t\t\t<M.Sub id={`main menu ${parent ? parent.id + ' ' : ''}${item.id}`} key={item.id}>\n\t\t\t\t\t\t<M.SubTrigger label={item.label} data-testid={`menu-item.${item.id}`} />\n\t\t\t\t\t\t<M.SubContent sideOffset={-4} alignOffset={-1}>\n\t\t\t\t\t\t\t{item.children.map((child) => getMenuItem(editor, child, item, depth + 1))}\n\t\t\t\t\t\t</M.SubContent>\n\t\t\t\t\t</M.Sub>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcase 'item': {\n\t\t\t\tif (isReadonly && !item.readonlyOk) return null\n\n\t\t\t\tconst { id, checkbox, menuLabel, label, onSelect, kbd } = item.actionItem\n\t\t\t\tconst labelToUse = menuLabel ?? label\n\t\t\t\tconst labelStr = labelToUse ? msg(labelToUse) : undefined\n\n\t\t\t\tif (checkbox) {\n\t\t\t\t\t// Item is in a checkbox group\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<M.CheckboxItem\n\t\t\t\t\t\t\tkey={id}\n\t\t\t\t\t\t\tonSelect={() => onSelect('menu')}\n\t\t\t\t\t\t\ttitle={labelStr ? labelStr : ''}\n\t\t\t\t\t\t\tchecked={item.checked}\n\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{labelStr && <span className=\"tlui-button__label\">{labelStr}</span>}\n\t\t\t\t\t\t\t{kbd && <Kbd>{kbd}</Kbd>}\n\t\t\t\t\t\t</M.CheckboxItem>\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t// Item is a button\n\t\t\t\treturn (\n\t\t\t\t\t<M.Item\n\t\t\t\t\t\ttype=\"menu\"\n\t\t\t\t\t\tkey={id}\n\t\t\t\t\t\tdata-testid={`menu-item.${item.id}`}\n\t\t\t\t\t\tkbd={kbd}\n\t\t\t\t\t\tlabel={labelToUse}\n\t\t\t\t\t\tonClick={() => onSelect('menu')}\n\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn <>{menuSchema.map((item) => getMenuItem(editor, item, null, 0))}</>\n}\n"],
|
|
5
|
-
"mappings": "AAgBE,SA+GM,UA7GJ,KAFF;AAhBF,SAAiB,iBAAiB;AAClC,YAAY,WAAW;AAEvB,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AACvB,YAAY,OAAO;AACnB,SAAS,WAAW;AAEb,MAAM,OAAO,MAAM,KAAK,SAASA,QAAO;AAC9C,QAAM,MAAM,eAAe;AAE3B,SACC,qBAAC,EAAE,MAAF,EAAO,IAAG,aACV;AAAA,wBAAC,EAAE,SAAF,EACA;AAAA,MAAC;AAAA;AAAA,QACA,MAAK;AAAA,QACL,WAAU;AAAA,QACV,eAAY;AAAA,QACZ,OAAO,IAAI,YAAY;AAAA,QACvB,MAAK;AAAA,QACL,WAAS;AAAA;AAAA,IACV,GACD;AAAA,IACA,oBAAC,EAAE,SAAF,EAAU,aAAa,GAAG,YAAY,GACtC,8BAAC,eAAY,GACd;AAAA,KACD;AAEF,CAAC;AAED,SAAS,cAAc;AACtB,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,eAAe;AAC3B,QAAM,aAAa,cAAc;AACjC,QAAM,aAAa,cAAc;AACjC,QAAM,aAAa,YAAY;AAE/B,WAAS,YACRC,SACA,MACA,QACA,OACC;AACD,QAAI,CAAC
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Menu", "editor"]
|
|
7
7
|
}
|
|
@@ -41,8 +41,7 @@ function Minimap({ shapeFill, selectFill, viewportFill }) {
|
|
|
41
41
|
}, [editor, selectFill, shapeFill, viewportFill, minimap, isDarkMode]);
|
|
42
42
|
const onDoubleClick = React.useCallback(
|
|
43
43
|
(e) => {
|
|
44
|
-
if (!editor.getCurrentPageShapeIds().size)
|
|
45
|
-
return;
|
|
44
|
+
if (!editor.getCurrentPageShapeIds().size) return;
|
|
46
45
|
const point = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, false);
|
|
47
46
|
const clampedPoint = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, true);
|
|
48
47
|
minimap.originPagePoint.setTo(clampedPoint);
|
|
@@ -55,8 +54,7 @@ function Minimap({ shapeFill, selectFill, viewportFill }) {
|
|
|
55
54
|
(e) => {
|
|
56
55
|
const elm = e.currentTarget;
|
|
57
56
|
setPointerCapture(elm, e);
|
|
58
|
-
if (!editor.getCurrentPageShapeIds().size)
|
|
59
|
-
return;
|
|
57
|
+
if (!editor.getCurrentPageShapeIds().size) return;
|
|
60
58
|
rPointing.current = true;
|
|
61
59
|
minimap.isInViewport = false;
|
|
62
60
|
const point = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, false);
|
|
@@ -152,8 +150,7 @@ function Minimap({ shapeFill, selectFill, viewportFill }) {
|
|
|
152
150
|
const allShapeBounds = [];
|
|
153
151
|
shapeIdsOnCurrentPage.forEach((id) => {
|
|
154
152
|
let pageBounds = editor.getShapePageBounds(id);
|
|
155
|
-
if (!pageBounds)
|
|
156
|
-
return;
|
|
153
|
+
if (!pageBounds) return;
|
|
157
154
|
const pageMask = editor.getShapeMask(id);
|
|
158
155
|
if (pageMask) {
|
|
159
156
|
const intersection = intersectPolygonPolygon(pageMask, pageBounds.corners);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/NavigationZone/Minimap.tsx"],
|
|
4
4
|
"sourcesContent": ["import {\n\tANIMATION_MEDIUM_MS,\n\tBox2d,\n\tTLPointerEventInfo,\n\tTLShapeId,\n\tVec2d,\n\tgetPointerInfo,\n\tintersectPolygonPolygon,\n\tnormalizeWheel,\n\treleasePointerCapture,\n\tsetPointerCapture,\n\tuseComputed,\n\tuseEditor,\n\tuseIsDarkMode,\n\tuseQuickReactor,\n} from '@bigbluebutton/editor'\nimport * as React from 'react'\nimport { MinimapManager } from './MinimapManager'\n\nexport interface MinimapProps {\n\tshapeFill: string\n\tselectFill: string\n\tviewportFill: string\n}\n\nexport function Minimap({ shapeFill, selectFill, viewportFill }: MinimapProps) {\n\tconst editor = useEditor()\n\n\tconst rCanvas = React.useRef<HTMLCanvasElement>(null!)\n\tconst rPointing = React.useRef(false)\n\n\tconst isDarkMode = useIsDarkMode()\n\tconst devicePixelRatio = useComputed('dpr', () => editor.getInstanceState().devicePixelRatio, [\n\t\teditor,\n\t])\n\tconst presences = React.useMemo(() => editor.store.query.records('instance_presence'), [editor])\n\n\tconst minimap = React.useMemo(() => new MinimapManager(editor), [editor])\n\n\tReact.useEffect(() => {\n\t\t// Must check after render\n\t\tconst raf = requestAnimationFrame(() => {\n\t\t\tconst style = getComputedStyle(editor.getContainer())\n\n\t\t\tminimap.colors = {\n\t\t\t\tshapeFill: style.getPropertyValue(shapeFill).trim(),\n\t\t\t\tselectFill: style.getPropertyValue(selectFill).trim(),\n\t\t\t\tviewportFill: style.getPropertyValue(viewportFill).trim(),\n\t\t\t}\n\n\t\t\tminimap.render()\n\t\t})\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(raf)\n\t\t}\n\t}, [editor, selectFill, shapeFill, viewportFill, minimap, isDarkMode])\n\n\tconst onDoubleClick = React.useCallback(\n\t\t(e: React.MouseEvent<HTMLCanvasElement>) => {\n\t\t\tif (!editor.getCurrentPageShapeIds().size) return\n\n\t\t\tconst point = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, false)\n\n\t\t\tconst clampedPoint = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, true)\n\n\t\t\tminimap.originPagePoint.setTo(clampedPoint)\n\t\t\tminimap.originPageCenter.setTo(editor.getViewportPageBounds().center)\n\n\t\t\teditor.centerOnPoint(point, { duration: ANIMATION_MEDIUM_MS })\n\t\t},\n\t\t[editor, minimap]\n\t)\n\n\tconst onPointerDown = React.useCallback(\n\t\t(e: React.PointerEvent<HTMLCanvasElement>) => {\n\t\t\tconst elm = e.currentTarget\n\t\t\tsetPointerCapture(elm, e)\n\t\t\tif (!editor.getCurrentPageShapeIds().size) return\n\n\t\t\trPointing.current = true\n\n\t\t\tminimap.isInViewport = false\n\n\t\t\tconst point = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, false)\n\n\t\t\tconst clampedPoint = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, false, true)\n\n\t\t\tconst _vpPageBounds = editor.getViewportPageBounds()\n\n\t\t\tminimap.isInViewport = _vpPageBounds.containsPoint(clampedPoint)\n\n\t\t\tif (minimap.isInViewport) {\n\t\t\t\tminimap.originPagePoint.setTo(clampedPoint)\n\t\t\t\tminimap.originPageCenter.setTo(_vpPageBounds.center)\n\t\t\t} else {\n\t\t\t\tconst delta = Vec2d.Sub(_vpPageBounds.center, _vpPageBounds.point)\n\t\t\t\tconst pagePoint = Vec2d.Add(point, delta)\n\t\t\t\tminimap.originPagePoint.setTo(pagePoint)\n\t\t\t\tminimap.originPageCenter.setTo(point)\n\t\t\t\teditor.centerOnPoint(point, { duration: ANIMATION_MEDIUM_MS })\n\t\t\t}\n\n\t\t\tfunction release(e: PointerEvent) {\n\t\t\t\tif (elm) {\n\t\t\t\t\treleasePointerCapture(elm, e)\n\t\t\t\t}\n\t\t\t\trPointing.current = false\n\t\t\t\tdocument.body.removeEventListener('pointerup', release)\n\t\t\t}\n\n\t\t\tdocument.body.addEventListener('pointerup', release)\n\t\t},\n\t\t[editor, minimap]\n\t)\n\n\tconst onPointerMove = React.useCallback(\n\t\t(e: React.PointerEvent<HTMLCanvasElement>) => {\n\t\t\tconst point = minimap.minimapScreenPointToPagePoint(e.clientX, e.clientY, e.shiftKey, true)\n\n\t\t\tif (rPointing.current) {\n\t\t\t\tif (minimap.isInViewport) {\n\t\t\t\t\tconst delta = minimap.originPagePoint.clone().sub(minimap.originPageCenter)\n\t\t\t\t\teditor.centerOnPoint(Vec2d.Sub(point, delta))\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\teditor.centerOnPoint(point)\n\t\t\t}\n\n\t\t\tconst pagePoint = minimap.getPagePoint(e.clientX, e.clientY)\n\n\t\t\tconst screenPoint = editor.pageToScreen(pagePoint)\n\n\t\t\tconst info: TLPointerEventInfo = {\n\t\t\t\ttype: 'pointer',\n\t\t\t\ttarget: 'canvas',\n\t\t\t\tname: 'pointer_move',\n\t\t\t\t...getPointerInfo(e),\n\t\t\t\tpoint: screenPoint,\n\t\t\t\tisPen: editor.getInstanceState().isPenMode,\n\t\t\t}\n\n\t\t\teditor.dispatch(info)\n\t\t},\n\t\t[editor, minimap]\n\t)\n\n\tconst onWheel = React.useCallback(\n\t\t(e: React.WheelEvent<HTMLCanvasElement>) => {\n\t\t\tconst offset = normalizeWheel(e)\n\n\t\t\teditor.dispatch({\n\t\t\t\ttype: 'wheel',\n\t\t\t\tname: 'wheel',\n\t\t\t\tdelta: offset,\n\t\t\t\tpoint: new Vec2d(e.clientX, e.clientY),\n\t\t\t\tshiftKey: e.shiftKey,\n\t\t\t\taltKey: e.altKey,\n\t\t\t\tctrlKey: e.metaKey || e.ctrlKey,\n\t\t\t})\n\t\t},\n\t\t[editor]\n\t)\n\n\t// Update the minimap's dpr when the dpr changes\n\tuseQuickReactor(\n\t\t'update when dpr changes',\n\t\t() => {\n\t\t\tconst dpr = devicePixelRatio.get()\n\t\t\tminimap.setDpr(dpr)\n\n\t\t\tconst canvas = rCanvas.current as HTMLCanvasElement\n\t\t\tconst rect = canvas.getBoundingClientRect()\n\t\t\tconst width = rect.width * dpr\n\t\t\tconst height = rect.height * dpr\n\n\t\t\t// These must happen in order\n\t\t\tcanvas.width = width\n\t\t\tcanvas.height = height\n\t\t\tminimap.canvasScreenBounds.set(rect.x, rect.y, width, height)\n\n\t\t\tminimap.cvs = rCanvas.current\n\t\t},\n\t\t[devicePixelRatio, minimap]\n\t)\n\n\tuseQuickReactor(\n\t\t'minimap render when pagebounds or collaborators changes',\n\t\t() => {\n\t\t\tconst shapeIdsOnCurrentPage = editor.getCurrentPageShapeIds()\n\t\t\tconst commonBoundsOfAllShapesOnCurrentPage = editor.getCurrentPageBounds()\n\t\t\tconst viewportPageBounds = editor.getViewportPageBounds()\n\n\t\t\tconst _dpr = devicePixelRatio.get() // dereference\n\n\t\t\tminimap.contentPageBounds = commonBoundsOfAllShapesOnCurrentPage\n\t\t\t\t? Box2d.Expand(commonBoundsOfAllShapesOnCurrentPage, viewportPageBounds)\n\t\t\t\t: viewportPageBounds\n\n\t\t\tminimap.updateContentScreenBounds()\n\n\t\t\t// All shape bounds\n\n\t\t\tconst allShapeBounds = [] as (Box2d & { id: TLShapeId })[]\n\n\t\t\tshapeIdsOnCurrentPage.forEach((id) => {\n\t\t\t\tlet pageBounds = editor.getShapePageBounds(id) as Box2d & { id: TLShapeId }\n\t\t\t\tif (!pageBounds) return\n\n\t\t\t\tconst pageMask = editor.getShapeMask(id)\n\n\t\t\t\tif (pageMask) {\n\t\t\t\t\tconst intersection = intersectPolygonPolygon(pageMask, pageBounds.corners)\n\t\t\t\t\tif (!intersection) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tpageBounds = Box2d.FromPoints(intersection) as Box2d & { id: TLShapeId }\n\t\t\t\t}\n\n\t\t\t\tif (pageBounds) {\n\t\t\t\t\tpageBounds.id = id // kinda dirty but we want to include the id here\n\t\t\t\t\tallShapeBounds.push(pageBounds)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tminimap.pageBounds = allShapeBounds\n\t\t\tminimap.collaborators = presences.get()\n\t\t\tminimap.render()\n\t\t},\n\t\t[editor, minimap]\n\t)\n\n\treturn (\n\t\t<div className=\"tlui-minimap\">\n\t\t\t<canvas\n\t\t\t\tref={rCanvas}\n\t\t\t\tclassName=\"tlui-minimap__canvas\"\n\t\t\t\tonDoubleClick={onDoubleClick}\n\t\t\t\tonPointerMove={onPointerMove}\n\t\t\t\tonPointerDown={onPointerDown}\n\t\t\t\tonWheel={onWheel}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],
|
|
5
|
-
"mappings": "AA0OG;AA1OH;AAAA,EACC;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,YAAY,WAAW;AACvB,SAAS,sBAAsB;AAQxB,SAAS,QAAQ,EAAE,WAAW,YAAY,aAAa,GAAiB;AAC9E,QAAM,SAAS,UAAU;AAEzB,QAAM,UAAU,MAAM,OAA0B,IAAK;AACrD,QAAM,YAAY,MAAM,OAAO,KAAK;AAEpC,QAAM,aAAa,cAAc;AACjC,QAAM,mBAAmB,YAAY,OAAO,MAAM,OAAO,iBAAiB,EAAE,kBAAkB;AAAA,IAC7F;AAAA,EACD,CAAC;AACD,QAAM,YAAY,MAAM,QAAQ,MAAM,OAAO,MAAM,MAAM,QAAQ,mBAAmB,GAAG,CAAC,MAAM,CAAC;AAE/F,QAAM,UAAU,MAAM,QAAQ,MAAM,IAAI,eAAe,MAAM,GAAG,CAAC,MAAM,CAAC;AAExE,QAAM,UAAU,MAAM;AAErB,UAAM,MAAM,sBAAsB,MAAM;AACvC,YAAM,QAAQ,iBAAiB,OAAO,aAAa,CAAC;AAEpD,cAAQ,SAAS;AAAA,QAChB,WAAW,MAAM,iBAAiB,SAAS,EAAE,KAAK;AAAA,QAClD,YAAY,MAAM,iBAAiB,UAAU,EAAE,KAAK;AAAA,QACpD,cAAc,MAAM,iBAAiB,YAAY,EAAE,KAAK;AAAA,MACzD;AAEA,cAAQ,OAAO;AAAA,IAChB,CAAC;AACD,WAAO,MAAM;AACZ,2BAAqB,GAAG;AAAA,IACzB;AAAA,EACD,GAAG,CAAC,QAAQ,YAAY,WAAW,cAAc,SAAS,UAAU,CAAC;AAErE,QAAM,gBAAgB,MAAM;AAAA,IAC3B,CAAC,MAA2C;AAC3C,UAAI,CAAC,OAAO,uBAAuB,EAAE;
|
|
5
|
+
"mappings": "AA0OG;AA1OH;AAAA,EACC;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,YAAY,WAAW;AACvB,SAAS,sBAAsB;AAQxB,SAAS,QAAQ,EAAE,WAAW,YAAY,aAAa,GAAiB;AAC9E,QAAM,SAAS,UAAU;AAEzB,QAAM,UAAU,MAAM,OAA0B,IAAK;AACrD,QAAM,YAAY,MAAM,OAAO,KAAK;AAEpC,QAAM,aAAa,cAAc;AACjC,QAAM,mBAAmB,YAAY,OAAO,MAAM,OAAO,iBAAiB,EAAE,kBAAkB;AAAA,IAC7F;AAAA,EACD,CAAC;AACD,QAAM,YAAY,MAAM,QAAQ,MAAM,OAAO,MAAM,MAAM,QAAQ,mBAAmB,GAAG,CAAC,MAAM,CAAC;AAE/F,QAAM,UAAU,MAAM,QAAQ,MAAM,IAAI,eAAe,MAAM,GAAG,CAAC,MAAM,CAAC;AAExE,QAAM,UAAU,MAAM;AAErB,UAAM,MAAM,sBAAsB,MAAM;AACvC,YAAM,QAAQ,iBAAiB,OAAO,aAAa,CAAC;AAEpD,cAAQ,SAAS;AAAA,QAChB,WAAW,MAAM,iBAAiB,SAAS,EAAE,KAAK;AAAA,QAClD,YAAY,MAAM,iBAAiB,UAAU,EAAE,KAAK;AAAA,QACpD,cAAc,MAAM,iBAAiB,YAAY,EAAE,KAAK;AAAA,MACzD;AAEA,cAAQ,OAAO;AAAA,IAChB,CAAC;AACD,WAAO,MAAM;AACZ,2BAAqB,GAAG;AAAA,IACzB;AAAA,EACD,GAAG,CAAC,QAAQ,YAAY,WAAW,cAAc,SAAS,UAAU,CAAC;AAErE,QAAM,gBAAgB,MAAM;AAAA,IAC3B,CAAC,MAA2C;AAC3C,UAAI,CAAC,OAAO,uBAAuB,EAAE,KAAM;AAE3C,YAAM,QAAQ,QAAQ,8BAA8B,EAAE,SAAS,EAAE,SAAS,OAAO,KAAK;AAEtF,YAAM,eAAe,QAAQ,8BAA8B,EAAE,SAAS,EAAE,SAAS,OAAO,IAAI;AAE5F,cAAQ,gBAAgB,MAAM,YAAY;AAC1C,cAAQ,iBAAiB,MAAM,OAAO,sBAAsB,EAAE,MAAM;AAEpE,aAAO,cAAc,OAAO,EAAE,UAAU,oBAAoB,CAAC;AAAA,IAC9D;AAAA,IACA,CAAC,QAAQ,OAAO;AAAA,EACjB;AAEA,QAAM,gBAAgB,MAAM;AAAA,IAC3B,CAAC,MAA6C;AAC7C,YAAM,MAAM,EAAE;AACd,wBAAkB,KAAK,CAAC;AACxB,UAAI,CAAC,OAAO,uBAAuB,EAAE,KAAM;AAE3C,gBAAU,UAAU;AAEpB,cAAQ,eAAe;AAEvB,YAAM,QAAQ,QAAQ,8BAA8B,EAAE,SAAS,EAAE,SAAS,OAAO,KAAK;AAEtF,YAAM,eAAe,QAAQ,8BAA8B,EAAE,SAAS,EAAE,SAAS,OAAO,IAAI;AAE5F,YAAM,gBAAgB,OAAO,sBAAsB;AAEnD,cAAQ,eAAe,cAAc,cAAc,YAAY;AAE/D,UAAI,QAAQ,cAAc;AACzB,gBAAQ,gBAAgB,MAAM,YAAY;AAC1C,gBAAQ,iBAAiB,MAAM,cAAc,MAAM;AAAA,MACpD,OAAO;AACN,cAAM,QAAQ,MAAM,IAAI,cAAc,QAAQ,cAAc,KAAK;AACjE,cAAM,YAAY,MAAM,IAAI,OAAO,KAAK;AACxC,gBAAQ,gBAAgB,MAAM,SAAS;AACvC,gBAAQ,iBAAiB,MAAM,KAAK;AACpC,eAAO,cAAc,OAAO,EAAE,UAAU,oBAAoB,CAAC;AAAA,MAC9D;AAEA,eAAS,QAAQA,IAAiB;AACjC,YAAI,KAAK;AACR,gCAAsB,KAAKA,EAAC;AAAA,QAC7B;AACA,kBAAU,UAAU;AACpB,iBAAS,KAAK,oBAAoB,aAAa,OAAO;AAAA,MACvD;AAEA,eAAS,KAAK,iBAAiB,aAAa,OAAO;AAAA,IACpD;AAAA,IACA,CAAC,QAAQ,OAAO;AAAA,EACjB;AAEA,QAAM,gBAAgB,MAAM;AAAA,IAC3B,CAAC,MAA6C;AAC7C,YAAM,QAAQ,QAAQ,8BAA8B,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,IAAI;AAE1F,UAAI,UAAU,SAAS;AACtB,YAAI,QAAQ,cAAc;AACzB,gBAAM,QAAQ,QAAQ,gBAAgB,MAAM,EAAE,IAAI,QAAQ,gBAAgB;AAC1E,iBAAO,cAAc,MAAM,IAAI,OAAO,KAAK,CAAC;AAC5C;AAAA,QACD;AAEA,eAAO,cAAc,KAAK;AAAA,MAC3B;AAEA,YAAM,YAAY,QAAQ,aAAa,EAAE,SAAS,EAAE,OAAO;AAE3D,YAAM,cAAc,OAAO,aAAa,SAAS;AAEjD,YAAM,OAA2B;AAAA,QAChC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,GAAG,eAAe,CAAC;AAAA,QACnB,OAAO;AAAA,QACP,OAAO,OAAO,iBAAiB,EAAE;AAAA,MAClC;AAEA,aAAO,SAAS,IAAI;AAAA,IACrB;AAAA,IACA,CAAC,QAAQ,OAAO;AAAA,EACjB;AAEA,QAAM,UAAU,MAAM;AAAA,IACrB,CAAC,MAA2C;AAC3C,YAAM,SAAS,eAAe,CAAC;AAE/B,aAAO,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,IAAI,MAAM,EAAE,SAAS,EAAE,OAAO;AAAA,QACrC,UAAU,EAAE;AAAA,QACZ,QAAQ,EAAE;AAAA,QACV,SAAS,EAAE,WAAW,EAAE;AAAA,MACzB,CAAC;AAAA,IACF;AAAA,IACA,CAAC,MAAM;AAAA,EACR;AAGA;AAAA,IACC;AAAA,IACA,MAAM;AACL,YAAM,MAAM,iBAAiB,IAAI;AACjC,cAAQ,OAAO,GAAG;AAElB,YAAM,SAAS,QAAQ;AACvB,YAAM,OAAO,OAAO,sBAAsB;AAC1C,YAAM,QAAQ,KAAK,QAAQ;AAC3B,YAAM,SAAS,KAAK,SAAS;AAG7B,aAAO,QAAQ;AACf,aAAO,SAAS;AAChB,cAAQ,mBAAmB,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO,MAAM;AAE5D,cAAQ,MAAM,QAAQ;AAAA,IACvB;AAAA,IACA,CAAC,kBAAkB,OAAO;AAAA,EAC3B;AAEA;AAAA,IACC;AAAA,IACA,MAAM;AACL,YAAM,wBAAwB,OAAO,uBAAuB;AAC5D,YAAM,uCAAuC,OAAO,qBAAqB;AACzE,YAAM,qBAAqB,OAAO,sBAAsB;AAExD,YAAM,OAAO,iBAAiB,IAAI;AAElC,cAAQ,oBAAoB,uCACzB,MAAM,OAAO,sCAAsC,kBAAkB,IACrE;AAEH,cAAQ,0BAA0B;AAIlC,YAAM,iBAAiB,CAAC;AAExB,4BAAsB,QAAQ,CAAC,OAAO;AACrC,YAAI,aAAa,OAAO,mBAAmB,EAAE;AAC7C,YAAI,CAAC,WAAY;AAEjB,cAAM,WAAW,OAAO,aAAa,EAAE;AAEvC,YAAI,UAAU;AACb,gBAAM,eAAe,wBAAwB,UAAU,WAAW,OAAO;AACzE,cAAI,CAAC,cAAc;AAClB;AAAA,UACD;AACA,uBAAa,MAAM,WAAW,YAAY;AAAA,QAC3C;AAEA,YAAI,YAAY;AACf,qBAAW,KAAK;AAChB,yBAAe,KAAK,UAAU;AAAA,QAC/B;AAAA,MACD,CAAC;AAED,cAAQ,aAAa;AACrB,cAAQ,gBAAgB,UAAU,IAAI;AACtC,cAAQ,OAAO;AAAA,IAChB;AAAA,IACA,CAAC,QAAQ,OAAO;AAAA,EACjB;AAEA,SACC,oBAAC,SAAI,WAAU,gBACd;AAAA,IAAC;AAAA;AAAA,MACA,KAAK;AAAA,MACL,WAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACD,GACD;AAEF;",
|
|
6
6
|
"names": ["e"]
|
|
7
7
|
}
|
|
@@ -42,8 +42,7 @@ const PageMenu = function PageMenu2() {
|
|
|
42
42
|
);
|
|
43
43
|
const [isEditing, setIsEditing] = useState(false);
|
|
44
44
|
const toggleEditing = useCallback(() => {
|
|
45
|
-
if (isReadonlyMode)
|
|
46
|
-
return;
|
|
45
|
+
if (isReadonlyMode) return;
|
|
47
46
|
setIsEditing((s) => !s);
|
|
48
47
|
}, [isReadonlyMode]);
|
|
49
48
|
const rMutables = useRef({
|
|
@@ -67,16 +66,14 @@ const PageMenu = function PageMenu2() {
|
|
|
67
66
|
);
|
|
68
67
|
}, [ITEM_HEIGHT, pages]);
|
|
69
68
|
useEffect(() => {
|
|
70
|
-
if (!isOpen)
|
|
71
|
-
return;
|
|
69
|
+
if (!isOpen) return;
|
|
72
70
|
requestAnimationFrame(() => {
|
|
73
71
|
const elm = document.querySelector(
|
|
74
72
|
`[data-testid="page-menu-item-${currentPageId}"]`
|
|
75
73
|
);
|
|
76
74
|
if (elm) {
|
|
77
75
|
const container = rSortableContainer.current;
|
|
78
|
-
if (!container)
|
|
79
|
-
return;
|
|
76
|
+
if (!container) return;
|
|
80
77
|
const elmTopPosition = elm.offsetTop;
|
|
81
78
|
const containerScrollTopPosition = container.scrollTop;
|
|
82
79
|
if (elmTopPosition < containerScrollTopPosition) {
|
|
@@ -96,8 +93,7 @@ const PageMenu = function PageMenu2() {
|
|
|
96
93
|
const {
|
|
97
94
|
dataset: { id, index }
|
|
98
95
|
} = currentTarget;
|
|
99
|
-
if (!id || !index)
|
|
100
|
-
return;
|
|
96
|
+
if (!id || !index) return;
|
|
101
97
|
const mut = rMutables.current;
|
|
102
98
|
setPointerCapture(e.currentTarget, e);
|
|
103
99
|
mut.status = "pointing";
|
|
@@ -197,8 +193,7 @@ const PageMenu = function PageMenu2() {
|
|
|
197
193
|
[ITEM_HEIGHT, pages]
|
|
198
194
|
);
|
|
199
195
|
const handleCreatePageClick = useCallback(() => {
|
|
200
|
-
if (isReadonlyMode)
|
|
201
|
-
return;
|
|
196
|
+
if (isReadonlyMode) return;
|
|
202
197
|
editor.batch(() => {
|
|
203
198
|
editor.mark("creating page");
|
|
204
199
|
const newPageId = PageRecordType.createId();
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/PageMenu/PageMenu.tsx"],
|
|
4
4
|
"sourcesContent": ["import {\n\tMAX_PAGES,\n\tPageRecordType,\n\tTLPageId,\n\treleasePointerCapture,\n\tsetPointerCapture,\n\tuseEditor,\n\tuseValue,\n} from '@bigbluebutton/editor'\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport { useBreakpoint } from '../../hooks/useBreakpoint'\nimport { useMenuIsOpen } from '../../hooks/useMenuIsOpen'\nimport { useReadonly } from '../../hooks/useReadonly'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { Button } from '../primitives/Button'\nimport { Icon } from '../primitives/Icon'\nimport { Popover, PopoverContent, PopoverTrigger } from '../primitives/Popover'\nimport { PageItemInput } from './PageItemInput'\nimport { PageItemSubmenu } from './PageItemSubmenu'\nimport { onMovePage } from './edit-pages-shared'\n\nexport const PageMenu = function PageMenu() {\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\tconst breakpoint = useBreakpoint()\n\n\tconst handleOpenChange = useCallback(() => setIsEditing(false), [])\n\n\tconst [isOpen, onOpenChange] = useMenuIsOpen('page-menu', handleOpenChange)\n\n\tconst ITEM_HEIGHT = 36\n\n\tconst rSortableContainer = useRef<HTMLDivElement>(null)\n\n\tconst pages = useValue('pages', () => editor.getPages(), [editor])\n\tconst currentPage = useValue('currentPage', () => editor.getCurrentPage(), [editor])\n\tconst currentPageId = useValue('currentPageId', () => editor.getCurrentPageId(), [editor])\n\n\t// When in readonly mode, we don't allow a user to edit the pages\n\tconst isReadonlyMode = useReadonly()\n\n\t// If the user has reached the max page count, we disable the \"add page\" button\n\tconst maxPageCountReached = useValue(\n\t\t'maxPageCountReached',\n\t\t() => editor.getPages().length >= MAX_PAGES,\n\t\t[editor]\n\t)\n\n\tconst isCoarsePointer = useValue(\n\t\t'isCoarsePointer',\n\t\t() => editor.getInstanceState().isCoarsePointer,\n\t\t[editor]\n\t)\n\n\t// The component has an \"editing state\" that may be toggled to expose additional controls\n\tconst [isEditing, setIsEditing] = useState(false)\n\n\tconst toggleEditing = useCallback(() => {\n\t\tif (isReadonlyMode) return\n\t\tsetIsEditing((s) => !s)\n\t}, [isReadonlyMode])\n\n\tconst rMutables = useRef({\n\t\tisPointing: false,\n\t\tstatus: 'idle' as 'idle' | 'pointing' | 'dragging',\n\t\tpointing: null as { id: string; index: number } | null,\n\t\tstartY: 0,\n\t\tstartIndex: 0,\n\t\tdragIndex: 0,\n\t})\n\n\tconst [sortablePositionItems, setSortablePositionItems] = useState(\n\t\tObject.fromEntries(\n\t\t\tpages.map((page, i) => [page.id, { y: i * ITEM_HEIGHT, offsetY: 0, isSelected: false }])\n\t\t)\n\t)\n\n\t// Update the sortable position items when the pages change\n\tuseLayoutEffect(() => {\n\t\tsetSortablePositionItems(\n\t\t\tObject.fromEntries(\n\t\t\t\tpages.map((page, i) => [page.id, { y: i * ITEM_HEIGHT, offsetY: 0, isSelected: false }])\n\t\t\t)\n\t\t)\n\t}, [ITEM_HEIGHT, pages])\n\n\t// Scroll the current page into view when the menu opens / when current page changes\n\tuseEffect(() => {\n\t\tif (!isOpen) return\n\t\trequestAnimationFrame(() => {\n\t\t\tconst elm = document.querySelector(\n\t\t\t\t`[data-testid=\"page-menu-item-${currentPageId}\"]`\n\t\t\t) as HTMLDivElement\n\n\t\t\tif (elm) {\n\t\t\t\tconst container = rSortableContainer.current\n\t\t\t\tif (!container) return\n\t\t\t\t// Scroll into view is slightly borked on iOS Safari\n\n\t\t\t\t// if top of less than top cuttoff, scroll into view at top\n\t\t\t\tconst elmTopPosition = elm.offsetTop\n\t\t\t\tconst containerScrollTopPosition = container.scrollTop\n\t\t\t\tif (elmTopPosition < containerScrollTopPosition) {\n\t\t\t\t\tcontainer.scrollTo({ top: elmTopPosition })\n\t\t\t\t}\n\t\t\t\t// if bottom position is greater than bottom cutoff, scroll into view at bottom\n\t\t\t\tconst elmBottomPosition = elmTopPosition + ITEM_HEIGHT\n\t\t\t\tconst containerScrollBottomPosition = container.scrollTop + container.offsetHeight\n\t\t\t\tif (elmBottomPosition > containerScrollBottomPosition) {\n\t\t\t\t\tcontainer.scrollTo({ top: elmBottomPosition - container.offsetHeight })\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}, [ITEM_HEIGHT, currentPageId, isOpen])\n\n\tconst handlePointerDown = useCallback(\n\t\t(e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tconst { clientY, currentTarget } = e\n\t\t\tconst {\n\t\t\t\tdataset: { id, index },\n\t\t\t} = currentTarget\n\n\t\t\tif (!id || !index) return\n\n\t\t\tconst mut = rMutables.current\n\n\t\t\tsetPointerCapture(e.currentTarget, e)\n\n\t\t\tmut.status = 'pointing'\n\t\t\tmut.pointing = { id, index: +index! }\n\t\t\tconst current = sortablePositionItems[id]\n\t\t\tconst dragY = current.y\n\n\t\t\tmut.startY = clientY\n\t\t\tmut.startIndex = Math.max(0, Math.min(Math.round(dragY / ITEM_HEIGHT), pages.length - 1))\n\t\t},\n\t\t[ITEM_HEIGHT, pages.length, sortablePositionItems]\n\t)\n\n\tconst handlePointerMove = useCallback(\n\t\t(e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tconst mut = rMutables.current\n\t\t\tif (mut.status === 'pointing') {\n\t\t\t\tconst { clientY } = e\n\t\t\t\tconst offset = clientY - mut.startY\n\t\t\t\tif (Math.abs(offset) > 5) {\n\t\t\t\t\tmut.status = 'dragging'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (mut.status === 'dragging') {\n\t\t\t\tconst { clientY } = e\n\t\t\t\tconst offsetY = clientY - mut.startY\n\t\t\t\tconst current = sortablePositionItems[mut.pointing!.id]\n\n\t\t\t\tconst { startIndex, pointing } = mut\n\t\t\t\tconst dragY = current.y + offsetY\n\t\t\t\tconst dragIndex = Math.max(0, Math.min(Math.round(dragY / ITEM_HEIGHT), pages.length - 1))\n\n\t\t\t\tconst next = { ...sortablePositionItems }\n\t\t\t\tnext[pointing!.id] = {\n\t\t\t\t\ty: current.y,\n\t\t\t\t\toffsetY,\n\t\t\t\t\tisSelected: true,\n\t\t\t\t}\n\n\t\t\t\tif (dragIndex !== mut.dragIndex) {\n\t\t\t\t\tmut.dragIndex = dragIndex\n\n\t\t\t\t\tfor (let i = 0; i < pages.length; i++) {\n\t\t\t\t\t\tconst item = pages[i]\n\t\t\t\t\t\tif (item.id === mut.pointing!.id) {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet { y } = next[item.id]\n\n\t\t\t\t\t\tif (dragIndex === startIndex) {\n\t\t\t\t\t\t\ty = i * ITEM_HEIGHT\n\t\t\t\t\t\t} else if (dragIndex < startIndex) {\n\t\t\t\t\t\t\tif (dragIndex <= i && i < startIndex) {\n\t\t\t\t\t\t\t\ty = (i + 1) * ITEM_HEIGHT\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ty = i * ITEM_HEIGHT\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (dragIndex > startIndex) {\n\t\t\t\t\t\t\tif (dragIndex >= i && i > startIndex) {\n\t\t\t\t\t\t\t\ty = (i - 1) * ITEM_HEIGHT\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ty = i * ITEM_HEIGHT\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (y !== next[item.id].y) {\n\t\t\t\t\t\t\tnext[item.id] = { y, offsetY: 0, isSelected: true }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsetSortablePositionItems(next)\n\t\t\t}\n\t\t},\n\t\t[ITEM_HEIGHT, pages, sortablePositionItems]\n\t)\n\n\tconst handlePointerUp = useCallback(\n\t\t(e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tconst mut = rMutables.current\n\n\t\t\tif (mut.status === 'dragging') {\n\t\t\t\tconst { id, index } = mut.pointing!\n\t\t\t\tonMovePage(editor, id as TLPageId, index, mut.dragIndex)\n\t\t\t}\n\n\t\t\treleasePointerCapture(e.currentTarget, e)\n\t\t\tmut.status = 'idle'\n\t\t},\n\t\t[editor]\n\t)\n\n\tconst handleKeyDown = useCallback(\n\t\t(e: React.KeyboardEvent<HTMLButtonElement>) => {\n\t\t\tconst mut = rMutables.current\n\t\t\t// bail on escape\n\t\t\tif (e.key === 'Escape') {\n\t\t\t\tif (mut.status === 'dragging') {\n\t\t\t\t\tsetSortablePositionItems(\n\t\t\t\t\t\tObject.fromEntries(\n\t\t\t\t\t\t\tpages.map((page, i) => [\n\t\t\t\t\t\t\t\tpage.id,\n\t\t\t\t\t\t\t\t{ y: i * ITEM_HEIGHT, offsetY: 0, isSelected: false },\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tmut.status = 'idle'\n\t\t\t}\n\t\t},\n\t\t[ITEM_HEIGHT, pages]\n\t)\n\n\tconst handleCreatePageClick = useCallback(() => {\n\t\tif (isReadonlyMode) return\n\n\t\teditor.batch(() => {\n\t\t\teditor.mark('creating page')\n\t\t\tconst newPageId = PageRecordType.createId()\n\t\t\teditor.createPage({ name: msg('page-menu.new-page-initial-name'), id: newPageId })\n\t\t\teditor.setCurrentPage(newPageId)\n\t\t\tsetIsEditing(true)\n\t\t})\n\t}, [editor, msg, isReadonlyMode])\n\n\treturn (\n\t\t<Popover id=\"pages\" onOpenChange={onOpenChange} open={isOpen}>\n\t\t\t<PopoverTrigger>\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"tlui-page-menu__trigger tlui-menu__trigger\"\n\t\t\t\t\tdata-testid=\"main.page-menu\"\n\t\t\t\t\ticon=\"chevron-down\"\n\t\t\t\t\ttype=\"menu\"\n\t\t\t\t\ttitle={currentPage.name}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"tlui-page-menu__name\">{currentPage.name}</div>\n\t\t\t\t</Button>\n\t\t\t</PopoverTrigger>\n\t\t\t<PopoverContent side=\"bottom\" align=\"start\" sideOffset={6}>\n\t\t\t\t<div className=\"tlui-page-menu__wrapper\">\n\t\t\t\t\t<div className=\"tlui-page-menu__header\">\n\t\t\t\t\t\t<div className=\"tlui-page-menu__header__title\">{msg('page-menu.title')}</div>\n\t\t\t\t\t\t{!isReadonlyMode && (\n\t\t\t\t\t\t\t<div className=\"tlui-buttons__horizontal\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\tdata-testid=\"page-menu.edit\"\n\t\t\t\t\t\t\t\t\ttitle={msg(isEditing ? 'page-menu.edit-done' : 'page-menu.edit-start')}\n\t\t\t\t\t\t\t\t\ticon={isEditing ? 'check' : 'edit'}\n\t\t\t\t\t\t\t\t\tonClick={toggleEditing}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\tdata-testid=\"page-menu.create\"\n\t\t\t\t\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\t\t\t\t\ttitle={msg(\n\t\t\t\t\t\t\t\t\t\tmaxPageCountReached\n\t\t\t\t\t\t\t\t\t\t\t? 'page-menu.max-page-count-reached'\n\t\t\t\t\t\t\t\t\t\t\t: 'page-menu.create-new-page'\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={maxPageCountReached}\n\t\t\t\t\t\t\t\t\tonClick={handleCreatePageClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"tlui-page-menu__list tlui-menu__group\"\n\t\t\t\t\t\tstyle={{ height: ITEM_HEIGHT * pages.length + 4 }}\n\t\t\t\t\t\tref={rSortableContainer}\n\t\t\t\t\t>\n\t\t\t\t\t\t{pages.map((page, index) => {\n\t\t\t\t\t\t\tconst position = sortablePositionItems[page.id] ?? {\n\t\t\t\t\t\t\t\tposition: index * 40,\n\t\t\t\t\t\t\t\toffsetY: 0,\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn isEditing ? (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={page.id + '_editing'}\n\t\t\t\t\t\t\t\t\tdata-testid={`page-menu-item-${page.id}`}\n\t\t\t\t\t\t\t\t\tclassName=\"tlui-page_menu__item__sortable\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tzIndex: page.id === currentPage.id ? 888 : index,\n\t\t\t\t\t\t\t\t\t\ttransform: `translate(0px, ${position.y + position.offsetY}px)`,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\t\tclassName=\"tlui-page_menu__item__sortable__handle\"\n\t\t\t\t\t\t\t\t\t\ticon=\"drag-handle-dots\"\n\t\t\t\t\t\t\t\t\t\tonPointerDown={handlePointerDown}\n\t\t\t\t\t\t\t\t\t\tonPointerUp={handlePointerUp}\n\t\t\t\t\t\t\t\t\t\tonPointerMove={handlePointerMove}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\t\t\t\t\tdata-id={page.id}\n\t\t\t\t\t\t\t\t\t\tdata-index={index}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{breakpoint < 5 && isCoarsePointer ? (\n\t\t\t\t\t\t\t\t\t\t// sigh, this is a workaround for iOS Safari\n\t\t\t\t\t\t\t\t\t\t// because the device and the radix popover seem\n\t\t\t\t\t\t\t\t\t\t// to be fighting over scroll position. Nothing\n\t\t\t\t\t\t\t\t\t\t// else seems to work!\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"normal\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"tlui-page-menu__item__button\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst name = window.prompt('Rename page', page.name)\n\t\t\t\t\t\t\t\t\t\t\t\tif (name && name !== page.name) {\n\t\t\t\t\t\t\t\t\t\t\t\t\teditor.renamePage(page.id, name)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonDoubleClick={toggleEditing}\n\t\t\t\t\t\t\t\t\t\t\tisChecked={page.id === currentPage.id}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span>{page.name}</span>\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"tlui-page_menu__item__sortable__title\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ height: ITEM_HEIGHT }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<PageItemInput\n\t\t\t\t\t\t\t\t\t\t\t\tid={page.id}\n\t\t\t\t\t\t\t\t\t\t\t\tname={page.name}\n\t\t\t\t\t\t\t\t\t\t\t\tisCurrentPage={page.id === currentPage.id}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{!isReadonlyMode && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"tlui-page_menu__item__submenu\" data-isediting={isEditing}>\n\t\t\t\t\t\t\t\t\t\t\t<PageItemSubmenu index={index} item={page} listSize={pages.length} />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={page.id}\n\t\t\t\t\t\t\t\t\tdata-testid={`page-menu-item-${page.id}`}\n\t\t\t\t\t\t\t\t\tclassName=\"tlui-page-menu__item\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"tlui-page-menu__item__button tlui-page-menu__item__button__checkbox\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => editor.setCurrentPage(page.id)}\n\t\t\t\t\t\t\t\t\t\tonDoubleClick={toggleEditing}\n\t\t\t\t\t\t\t\t\t\tisChecked={page.id === currentPage.id}\n\t\t\t\t\t\t\t\t\t\ttitle={msg('page-menu.go-to-page')}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div className=\"tlui-page-menu__item__button__check\">\n\t\t\t\t\t\t\t\t\t\t\t{page.id === currentPage.id && <Icon icon=\"check\" />}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span>{page.name}</span>\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{!isReadonlyMode && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"tlui-page_menu__item__submenu\">\n\t\t\t\t\t\t\t\t\t\t\t<PageItemSubmenu\n\t\t\t\t\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\t\t\t\t\titem={page}\n\t\t\t\t\t\t\t\t\t\t\t\tlistSize={pages.length}\n\t\t\t\t\t\t\t\t\t\t\t\tonRename={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (editor.environment.isIos) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst name = window.prompt('Rename page', page.name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (name && name !== page.name) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\teditor.renamePage(page.id, name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\teditor.batch(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing(true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\teditor.setCurrentPage(page.id)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</PopoverContent>\n\t\t</Popover>\n\t)\n}\n"],
|
|
5
|
-
"mappings": "AAwQK,cAQE,YARF;AAxQL;AAAA,EACC;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,aAAa,WAAW,iBAAiB,QAAQ,gBAAgB;AAC1E,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAEpB,MAAM,WAAW,SAASA,YAAW;AAC3C,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,eAAe;AAC3B,QAAM,aAAa,cAAc;AAEjC,QAAM,mBAAmB,YAAY,MAAM,aAAa,KAAK,GAAG,CAAC,CAAC;AAElE,QAAM,CAAC,QAAQ,YAAY,IAAI,cAAc,aAAa,gBAAgB;AAE1E,QAAM,cAAc;AAEpB,QAAM,qBAAqB,OAAuB,IAAI;AAEtD,QAAM,QAAQ,SAAS,SAAS,MAAM,OAAO,SAAS,GAAG,CAAC,MAAM,CAAC;AACjE,QAAM,cAAc,SAAS,eAAe,MAAM,OAAO,eAAe,GAAG,CAAC,MAAM,CAAC;AACnF,QAAM,gBAAgB,SAAS,iBAAiB,MAAM,OAAO,iBAAiB,GAAG,CAAC,MAAM,CAAC;AAGzF,QAAM,iBAAiB,YAAY;AAGnC,QAAM,sBAAsB;AAAA,IAC3B;AAAA,IACA,MAAM,OAAO,SAAS,EAAE,UAAU;AAAA,IAClC,CAAC,MAAM;AAAA,EACR;AAEA,QAAM,kBAAkB;AAAA,IACvB;AAAA,IACA,MAAM,OAAO,iBAAiB,EAAE;AAAA,IAChC,CAAC,MAAM;AAAA,EACR;AAGA,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,gBAAgB,YAAY,MAAM;AACvC,QAAI;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["PageMenu"]
|
|
7
7
|
}
|
|
@@ -6,8 +6,7 @@ const ExitPenMode = track(function ExitPenMode2() {
|
|
|
6
6
|
const editor = useEditor();
|
|
7
7
|
const isPenMode = editor.getInstanceState().isPenMode;
|
|
8
8
|
const actions = useActions();
|
|
9
|
-
if (!isPenMode)
|
|
10
|
-
return null;
|
|
9
|
+
if (!isPenMode) return null;
|
|
11
10
|
const action = actions["exit-pen-mode"];
|
|
12
11
|
return /* @__PURE__ */ jsx(
|
|
13
12
|
Button,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/components/PenModeToggle.tsx"],
|
|
4
4
|
"sourcesContent": ["import { track, useEditor } from '@bigbluebutton/editor'\nimport { useActions } from '../hooks/useActions'\nimport { Button } from './primitives/Button'\n\nexport const ExitPenMode = track(function ExitPenMode() {\n\tconst editor = useEditor()\n\n\tconst isPenMode = editor.getInstanceState().isPenMode\n\n\tconst actions = useActions()\n\n\tif (!isPenMode) return null\n\n\tconst action = actions['exit-pen-mode']\n\n\treturn (\n\t\t<Button\n\t\t\ttype=\"normal\"\n\t\t\tlabel={action.label}\n\t\t\ticonLeft={action.icon}\n\t\t\tonClick={() => action.onSelect('helper-buttons')}\n\t\t/>\n\t)\n})\n"],
|
|
5
|
-
"mappings": "AAgBE;AAhBF,SAAS,OAAO,iBAAiB;AACjC,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AAEhB,MAAM,cAAc,MAAM,SAASA,eAAc;AACvD,QAAM,SAAS,UAAU;AAEzB,QAAM,YAAY,OAAO,iBAAiB,EAAE;AAE5C,QAAM,UAAU,WAAW;AAE3B,MAAI,CAAC
|
|
5
|
+
"mappings": "AAgBE;AAhBF,SAAS,OAAO,iBAAiB;AACjC,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AAEhB,MAAM,cAAc,MAAM,SAASA,eAAc;AACvD,QAAM,SAAS,UAAU;AAEzB,QAAM,YAAY,OAAO,iBAAiB,EAAE;AAE5C,QAAM,UAAU,WAAW;AAE3B,MAAI,CAAC,UAAW,QAAO;AAEvB,QAAM,SAAS,QAAQ,eAAe;AAEtC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,OAAO,OAAO;AAAA,MACd,UAAU,OAAO;AAAA,MACjB,SAAS,MAAM,OAAO,SAAS,gBAAgB;AAAA;AAAA,EAChD;AAEF,CAAC;",
|
|
6
6
|
"names": ["ExitPenMode"]
|
|
7
7
|
}
|
|
@@ -28,8 +28,7 @@ const DoubleDropdownPicker = React.memo(function DoubleDropdownPicker2({
|
|
|
28
28
|
() => itemsB.find((item) => valueB.type === "shared" && valueB.value === item.value)?.icon ?? "mixed",
|
|
29
29
|
[itemsB, valueB]
|
|
30
30
|
);
|
|
31
|
-
if (valueA === void 0 && valueB === void 0)
|
|
32
|
-
return null;
|
|
31
|
+
if (valueA === void 0 && valueB === void 0) return null;
|
|
33
32
|
return /* @__PURE__ */ jsxs("div", { className: "tlui-style-panel__double-select-picker", children: [
|
|
34
33
|
/* @__PURE__ */ jsx("div", { title: msg(label), className: "tlui-style-panel__double-select-picker-label", children: msg(label) }),
|
|
35
34
|
/* @__PURE__ */ jsxs("div", { className: "tlui-buttons__horizontal", children: [
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/StylePanel/DoubleDropdownPicker.tsx"],
|
|
4
4
|
"sourcesContent": ["import { SharedStyle, StyleProp, preventDefault } from '@bigbluebutton/editor'\nimport { Trigger } from '@radix-ui/react-dropdown-menu'\nimport * as React from 'react'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../../icon-types'\nimport { Button } from '../primitives/Button'\nimport * as DropdownMenu from '../primitives/DropdownMenu'\nimport { StyleValuesForUi } from './styles'\n\ninterface DoubleDropdownPickerProps<T extends string> {\n\tuiTypeA: string\n\tuiTypeB: string\n\tlabel: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tlabelA: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tlabelB: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\titemsA: StyleValuesForUi<T>\n\titemsB: StyleValuesForUi<T>\n\tstyleA: StyleProp<T>\n\tstyleB: StyleProp<T>\n\tvalueA: SharedStyle<T>\n\tvalueB: SharedStyle<T>\n\tonValueChange: (style: StyleProp<T>, value: T, squashing: boolean) => void\n}\n\nexport const DoubleDropdownPicker = React.memo(function DoubleDropdownPicker<T extends string>({\n\tlabel,\n\tuiTypeA,\n\tuiTypeB,\n\tlabelA,\n\tlabelB,\n\titemsA,\n\titemsB,\n\tstyleA,\n\tstyleB,\n\tvalueA,\n\tvalueB,\n\tonValueChange,\n}: DoubleDropdownPickerProps<T>) {\n\tconst msg = useTranslation()\n\n\tconst iconA = React.useMemo(\n\t\t() =>\n\t\t\titemsA.find((item) => valueA.type === 'shared' && valueA.value === item.value)?.icon ??\n\t\t\t'mixed',\n\t\t[itemsA, valueA]\n\t)\n\tconst iconB = React.useMemo(\n\t\t() =>\n\t\t\titemsB.find((item) => valueB.type === 'shared' && valueB.value === item.value)?.icon ??\n\t\t\t'mixed',\n\t\t[itemsB, valueB]\n\t)\n\n\tif (valueA === undefined && valueB === undefined) return null\n\n\treturn (\n\t\t<div className=\"tlui-style-panel__double-select-picker\">\n\t\t\t<div title={msg(label)} className=\"tlui-style-panel__double-select-picker-label\">\n\t\t\t\t{msg(label)}\n\t\t\t</div>\n\t\t\t<div className=\"tlui-buttons__horizontal\">\n\t\t\t\t<DropdownMenu.Root id={`style panel ${uiTypeA} A`}>\n\t\t\t\t\t<Trigger\n\t\t\t\t\t\tasChild\n\t\t\t\t\t\t// Firefox fix: Stop the dropdown immediately closing after touch\n\t\t\t\t\t\tonTouchEnd={(e) => preventDefault(e)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\tdata-testid={`style.${uiTypeA}`}\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tmsg(labelA) +\n\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t(valueA === null || valueA.type === 'mixed'\n\t\t\t\t\t\t\t\t\t? msg('style-panel.mixed')\n\t\t\t\t\t\t\t\t\t: msg(`${uiTypeA}-style.${valueA.value}` as TLUiTranslationKey))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={iconA as any}\n\t\t\t\t\t\t\tinvertIcon\n\t\t\t\t\t\t\tsmallIcon\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Trigger>\n\t\t\t\t\t<DropdownMenu.Content side=\"bottom\" align=\"end\" sideOffset={0} alignOffset={-2}>\n\t\t\t\t\t\t<div className=\"tlui-buttons__grid\">\n\t\t\t\t\t\t\t{itemsA.map((item) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\tmsg(labelA) +\n\t\t\t\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t\t\t\tmsg(`${uiTypeA}-style.${item.value}` as TLUiTranslationKey)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiTypeA}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\ticon={item.icon as TLUiIconType}\n\t\t\t\t\t\t\t\t\t\tonClick={() => onValueChange(styleA, item.value, false)}\n\t\t\t\t\t\t\t\t\t\tinvertIcon\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DropdownMenu.Content>\n\t\t\t\t</DropdownMenu.Root>\n\t\t\t\t<DropdownMenu.Root id={`style panel ${uiTypeB}`}>\n\t\t\t\t\t<Trigger\n\t\t\t\t\t\tasChild\n\t\t\t\t\t\t// Firefox fix: Stop the dropdown immediately closing after touch\n\t\t\t\t\t\tonTouchEnd={(e) => preventDefault(e)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\tdata-testid={`style.${uiTypeB}`}\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tmsg(labelB) +\n\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t(valueB === null || valueB.type === 'mixed'\n\t\t\t\t\t\t\t\t\t? msg('style-panel.mixed')\n\t\t\t\t\t\t\t\t\t: msg(`${uiTypeB}-style.${valueB.value}` as TLUiTranslationKey))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={iconB as any}\n\t\t\t\t\t\t\tsmallIcon\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Trigger>\n\t\t\t\t\t<DropdownMenu.Content side=\"bottom\" align=\"end\" sideOffset={0} alignOffset={-2}>\n\t\t\t\t\t\t<div className=\"tlui-buttons__grid\">\n\t\t\t\t\t\t\t{itemsB.map((item) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\tmsg(labelB) +\n\t\t\t\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t\t\t\tmsg(`${uiTypeB}-style.${item.value}` as TLUiTranslationKey)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiTypeB}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\ticon={item.icon as TLUiIconType}\n\t\t\t\t\t\t\t\t\t\tonClick={() => onValueChange(styleB, item.value, false)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DropdownMenu.Content>\n\t\t\t\t</DropdownMenu.Root>\n\t\t\t</div>\n\t\t</div>\n\t)\n})\n"],
|
|
5
|
-
"mappings": "AA0DG,cAIC,YAJD;AA1DH,SAAiC,sBAAsB;AACvD,SAAS,eAAe;AACxB,YAAY,WAAW;AAEvB,SAAS,sBAAsB;AAE/B,SAAS,cAAc;AACvB,YAAY,kBAAkB;AAkBvB,MAAM,uBAAuB,MAAM,KAAK,SAASA,sBAAuC;AAAA,EAC9F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAiC;AAChC,QAAM,MAAM,eAAe;AAE3B,QAAM,QAAQ,MAAM;AAAA,IACnB,MACC,OAAO,KAAK,CAAC,SAAS,OAAO,SAAS,YAAY,OAAO,UAAU,KAAK,KAAK,GAAG,QAChF;AAAA,IACD,CAAC,QAAQ,MAAM;AAAA,EAChB;AACA,QAAM,QAAQ,MAAM;AAAA,IACnB,MACC,OAAO,KAAK,CAAC,SAAS,OAAO,SAAS,YAAY,OAAO,UAAU,KAAK,KAAK,GAAG,QAChF;AAAA,IACD,CAAC,QAAQ,MAAM;AAAA,EAChB;AAEA,MAAI,WAAW,UAAa,WAAW
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["DoubleDropdownPicker"]
|
|
7
7
|
}
|
|
@@ -31,8 +31,7 @@ const StylePanel = function StylePanel2({ isMobile }) {
|
|
|
31
31
|
editor.updateInstanceState({ isChangingStyle: false });
|
|
32
32
|
}
|
|
33
33
|
}, [editor, isMobile]);
|
|
34
|
-
if (!relevantStyles)
|
|
35
|
-
return null;
|
|
34
|
+
if (!relevantStyles) return null;
|
|
36
35
|
const { styles, opacity } = relevantStyles;
|
|
37
36
|
const geo = styles.get(GeoShapeGeoStyle);
|
|
38
37
|
const arrowheadEnd = styles.get(ArrowShapeArrowheadEndStyle);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/StylePanel/StylePanel.tsx"],
|
|
4
4
|
"sourcesContent": ["import {\n\tArrowShapeArrowheadEndStyle,\n\tArrowShapeArrowheadStartStyle,\n\tDefaultColorStyle,\n\tDefaultDashStyle,\n\tDefaultFillStyle,\n\tDefaultFontStyle,\n\tDefaultHorizontalAlignStyle,\n\tDefaultSizeStyle,\n\tDefaultVerticalAlignStyle,\n\tGeoShapeGeoStyle,\n\tLineShapeSplineStyle,\n\tReadonlySharedStyleMap,\n\tSharedStyle,\n\tStyleProp,\n\tminBy,\n\tuseEditor,\n} from '@bigbluebutton/editor'\nimport React, { useCallback } from 'react'\nimport { useRelevantStyles } from '../../hooks/useRevelantStyles'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { Button } from '../primitives/Button'\nimport { ButtonPicker } from '../primitives/ButtonPicker'\nimport { Slider } from '../primitives/Slider'\nimport { DoubleDropdownPicker } from './DoubleDropdownPicker'\nimport { DropdownPicker } from './DropdownPicker'\nimport { STYLES } from './styles'\n\ninterface StylePanelProps {\n\tisMobile?: boolean\n}\n\n/** @internal */\nexport const StylePanel = function StylePanel({ isMobile }: StylePanelProps) {\n\tconst editor = useEditor()\n\n\tconst relevantStyles = useRelevantStyles()\n\n\tconst handlePointerOut = useCallback(() => {\n\t\tif (!isMobile) {\n\t\t\teditor.updateInstanceState({ isChangingStyle: false })\n\t\t}\n\t}, [editor, isMobile])\n\n\tif (!relevantStyles) return null\n\n\tconst { styles, opacity } = relevantStyles\n\tconst geo = styles.get(GeoShapeGeoStyle)\n\tconst arrowheadEnd = styles.get(ArrowShapeArrowheadEndStyle)\n\tconst arrowheadStart = styles.get(ArrowShapeArrowheadStartStyle)\n\tconst spline = styles.get(LineShapeSplineStyle)\n\tconst font = styles.get(DefaultFontStyle)\n\n\tconst hideGeo = geo === undefined\n\tconst hideArrowHeads = arrowheadEnd === undefined && arrowheadStart === undefined\n\tconst hideSpline = spline === undefined\n\tconst hideText = font === undefined\n\n\treturn (\n\t\t<div className=\"tlui-style-panel\" data-ismobile={isMobile} onPointerLeave={handlePointerOut}>\n\t\t\t<CommonStylePickerSet styles={styles} opacity={opacity} />\n\t\t\t{!hideText && <TextStylePickerSet styles={styles} />}\n\t\t\t{!(hideGeo && hideArrowHeads && hideSpline) && (\n\t\t\t\t<div className=\"tlui-style-panel__section\" aria-label=\"style panel styles\">\n\t\t\t\t\t<GeoStylePickerSet styles={styles} />\n\t\t\t\t\t<ArrowheadStylePickerSet styles={styles} />\n\t\t\t\t\t<SplineStylePickerSet styles={styles} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nfunction useStyleChangeCallback() {\n\tconst editor = useEditor()\n\n\treturn React.useMemo(() => {\n\t\treturn function handleStyleChange<T>(style: StyleProp<T>, value: T, squashing: boolean) {\n\t\t\teditor.batch(() => {\n\t\t\t\tif (editor.isIn('select')) {\n\t\t\t\t\teditor.setStyleForSelectedShapes(style, value, { squashing })\n\t\t\t\t}\n\t\t\t\teditor.setStyleForNextShapes(style, value, { squashing })\n\t\t\t\teditor.updateInstanceState({ isChangingStyle: true })\n\t\t\t})\n\t\t}\n\t}, [editor])\n}\n\nconst tldrawSupportedOpacities = [0.1, 0.25, 0.5, 0.75, 1] as const\n\nfunction CommonStylePickerSet({\n\tstyles,\n\topacity,\n}: {\n\tstyles: ReadonlySharedStyleMap\n\topacity: SharedStyle<number>\n}) {\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\n\tconst handleValueChange = useStyleChangeCallback()\n\n\tconst handleOpacityValueChange = React.useCallback(\n\t\t(value: number, ephemeral: boolean) => {\n\t\t\tconst item = tldrawSupportedOpacities[value]\n\t\t\teditor.batch(() => {\n\t\t\t\tif (editor.isIn('select')) {\n\t\t\t\t\teditor.setOpacityForSelectedShapes(item, { ephemeral })\n\t\t\t\t}\n\t\t\t\teditor.setOpacityForNextShapes(item, { ephemeral })\n\t\t\t\teditor.updateInstanceState({ isChangingStyle: true })\n\t\t\t})\n\t\t},\n\t\t[editor]\n\t)\n\n\tconst color = styles.get(DefaultColorStyle)\n\tconst fill = styles.get(DefaultFillStyle)\n\tconst dash = styles.get(DefaultDashStyle)\n\tconst size = styles.get(DefaultSizeStyle)\n\n\tconst showPickers = fill !== undefined || dash !== undefined || size !== undefined\n\n\tconst opacityIndex =\n\t\topacity.type === 'mixed'\n\t\t\t? -1\n\t\t\t: tldrawSupportedOpacities.indexOf(\n\t\t\t\t\tminBy(tldrawSupportedOpacities, (supportedOpacity) =>\n\t\t\t\t\t\tMath.abs(supportedOpacity - opacity.value)\n\t\t\t\t\t)!\n\t\t\t )\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\ttabIndex={-1}\n\t\t\t\tclassName=\"tlui-style-panel__section__common\"\n\t\t\t\taria-label=\"style panel styles\"\n\t\t\t>\n\t\t\t\t{color === undefined ? null : (\n\t\t\t\t\t<ButtonPicker\n\t\t\t\t\t\ttitle={msg('style-panel.color')}\n\t\t\t\t\t\tuiType=\"color\"\n\t\t\t\t\t\tstyle={DefaultColorStyle}\n\t\t\t\t\t\titems={STYLES.color}\n\t\t\t\t\t\tvalue={color}\n\t\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{opacity === undefined ? null : (\n\t\t\t\t\t<Slider\n\t\t\t\t\t\tdata-testid=\"style.opacity\"\n\t\t\t\t\t\tvalue={opacityIndex >= 0 ? opacityIndex : tldrawSupportedOpacities.length - 1}\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\topacity.type === 'mixed' ? 'style-panel.mixed' : `opacity-style.${opacity.value}`\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonValueChange={handleOpacityValueChange}\n\t\t\t\t\t\tsteps={tldrawSupportedOpacities.length - 1}\n\t\t\t\t\t\ttitle={msg('style-panel.opacity')}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{showPickers && (\n\t\t\t\t<div className=\"tlui-style-panel__section\" aria-label=\"style panel styles\">\n\t\t\t\t\t{fill === undefined ? null : (\n\t\t\t\t\t\t<ButtonPicker\n\t\t\t\t\t\t\ttitle={msg('style-panel.fill')}\n\t\t\t\t\t\t\tuiType=\"fill\"\n\t\t\t\t\t\t\tstyle={DefaultFillStyle}\n\t\t\t\t\t\t\titems={STYLES.fill}\n\t\t\t\t\t\t\tvalue={fill}\n\t\t\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{dash === undefined ? null : (\n\t\t\t\t\t\t<ButtonPicker\n\t\t\t\t\t\t\ttitle={msg('style-panel.dash')}\n\t\t\t\t\t\t\tuiType=\"dash\"\n\t\t\t\t\t\t\tstyle={DefaultDashStyle}\n\t\t\t\t\t\t\titems={STYLES.dash}\n\t\t\t\t\t\t\tvalue={dash}\n\t\t\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{size === undefined ? null : (\n\t\t\t\t\t\t<ButtonPicker\n\t\t\t\t\t\t\ttitle={msg('style-panel.size')}\n\t\t\t\t\t\t\tuiType=\"size\"\n\t\t\t\t\t\t\tstyle={DefaultSizeStyle}\n\t\t\t\t\t\t\titems={STYLES.size}\n\t\t\t\t\t\t\tvalue={size}\n\t\t\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t)\n}\n\nfunction TextStylePickerSet({ styles }: { styles: ReadonlySharedStyleMap }) {\n\tconst msg = useTranslation()\n\tconst handleValueChange = useStyleChangeCallback()\n\n\tconst font = styles.get(DefaultFontStyle)\n\tconst align = styles.get(DefaultHorizontalAlignStyle)\n\tconst verticalAlign = styles.get(DefaultVerticalAlignStyle)\n\tif (font === undefined && align === undefined) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div className=\"tlui-style-panel__section\" aria-label=\"style panel text\">\n\t\t\t{font === undefined ? null : (\n\t\t\t\t<ButtonPicker\n\t\t\t\t\ttitle={msg('style-panel.font')}\n\t\t\t\t\tuiType=\"font\"\n\t\t\t\t\tstyle={DefaultFontStyle}\n\t\t\t\t\titems={STYLES.font}\n\t\t\t\t\tvalue={font}\n\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{align === undefined ? null : (\n\t\t\t\t<div className=\"tlui-style-panel__row\">\n\t\t\t\t\t<ButtonPicker\n\t\t\t\t\t\ttitle={msg('style-panel.align')}\n\t\t\t\t\t\tuiType=\"align\"\n\t\t\t\t\t\tstyle={DefaultHorizontalAlignStyle}\n\t\t\t\t\t\titems={STYLES.horizontalAlign}\n\t\t\t\t\t\tvalue={align}\n\t\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"tlui-style-panel__row__extra-button\">\n\t\t\t\t\t\t{verticalAlign === undefined ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\ttitle={msg('style-panel.vertical-align')}\n\t\t\t\t\t\t\t\tdata-testid=\"vertical-align\"\n\t\t\t\t\t\t\t\ticon=\"vertical-align-center\"\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DropdownPicker\n\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\tid=\"geo-vertical-alignment\"\n\t\t\t\t\t\t\t\tuiType=\"verticalAlign\"\n\t\t\t\t\t\t\t\tstyle={DefaultVerticalAlignStyle}\n\t\t\t\t\t\t\t\titems={STYLES.verticalAlign}\n\t\t\t\t\t\t\t\tvalue={verticalAlign}\n\t\t\t\t\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nfunction GeoStylePickerSet({ styles }: { styles: ReadonlySharedStyleMap }) {\n\tconst handleValueChange = useStyleChangeCallback()\n\n\tconst geo = styles.get(GeoShapeGeoStyle)\n\tif (geo === undefined) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<DropdownPicker\n\t\t\tid=\"geo\"\n\t\t\ttype=\"menu\"\n\t\t\tlabel={'style-panel.geo'}\n\t\t\tuiType=\"geo\"\n\t\t\tstyle={GeoShapeGeoStyle}\n\t\t\titems={STYLES.geo}\n\t\t\tvalue={geo}\n\t\t\tonValueChange={handleValueChange}\n\t\t/>\n\t)\n}\n\nfunction SplineStylePickerSet({ styles }: { styles: ReadonlySharedStyleMap }) {\n\tconst handleValueChange = useStyleChangeCallback()\n\n\tconst spline = styles.get(LineShapeSplineStyle)\n\tif (spline === undefined) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<DropdownPicker\n\t\t\tid=\"spline\"\n\t\t\ttype=\"menu\"\n\t\t\tlabel={'style-panel.spline'}\n\t\t\tuiType=\"spline\"\n\t\t\tstyle={LineShapeSplineStyle}\n\t\t\titems={STYLES.spline}\n\t\t\tvalue={spline}\n\t\t\tonValueChange={handleValueChange}\n\t\t/>\n\t)\n}\n\nfunction ArrowheadStylePickerSet({ styles }: { styles: ReadonlySharedStyleMap }) {\n\tconst handleValueChange = useStyleChangeCallback()\n\n\tconst arrowheadEnd = styles.get(ArrowShapeArrowheadEndStyle)\n\tconst arrowheadStart = styles.get(ArrowShapeArrowheadStartStyle)\n\tif (!arrowheadEnd || !arrowheadStart) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<DoubleDropdownPicker\n\t\t\tlabel={'style-panel.arrowheads'}\n\t\t\tuiTypeA=\"arrowheadStart\"\n\t\t\tstyleA={ArrowShapeArrowheadStartStyle}\n\t\t\titemsA={STYLES.arrowheadStart}\n\t\t\tvalueA={arrowheadStart}\n\t\t\tuiTypeB=\"arrowheadEnd\"\n\t\t\tstyleB={ArrowShapeArrowheadEndStyle}\n\t\t\titemsB={STYLES.arrowheadEnd}\n\t\t\tvalueB={arrowheadEnd}\n\t\t\tonValueChange={handleValueChange}\n\t\t\tlabelA=\"style-panel.arrowhead-start\"\n\t\t\tlabelB=\"style-panel.arrowhead-end\"\n\t\t/>\n\t)\n}\n"],
|
|
5
|
-
"mappings": "AA4DG,SA0ED,UA1EC,KAGC,YAHD;AA5DH;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,OACM;AACP,OAAO,SAAS,mBAAmB;AACnC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AACvB,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AAOhB,MAAM,aAAa,SAASA,YAAW,EAAE,SAAS,GAAoB;AAC5E,QAAM,SAAS,UAAU;AAEzB,QAAM,iBAAiB,kBAAkB;AAEzC,QAAM,mBAAmB,YAAY,MAAM;AAC1C,QAAI,CAAC,UAAU;AACd,aAAO,oBAAoB,EAAE,iBAAiB,MAAM,CAAC;AAAA,IACtD;AAAA,EACD,GAAG,CAAC,QAAQ,QAAQ,CAAC;AAErB,MAAI,CAAC
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["StylePanel"]
|
|
7
7
|
}
|
|
@@ -60,8 +60,7 @@ function ToastViewport() {
|
|
|
60
60
|
cancelled = true;
|
|
61
61
|
};
|
|
62
62
|
}, [toasts.length, setHasToasts]);
|
|
63
|
-
if (!hasToasts)
|
|
64
|
-
return null;
|
|
63
|
+
if (!hasToasts) return null;
|
|
65
64
|
return /* @__PURE__ */ jsx(T.ToastViewport, { className: "tlui-toast__viewport" });
|
|
66
65
|
}
|
|
67
66
|
export {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/components/Toasts.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as T from '@radix-ui/react-toast'\nimport * as React from 'react'\nimport { TLUiToast, useToasts } from '../hooks/useToastsProvider'\nimport { useTranslation } from '../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../icon-types'\nimport { Button } from './primitives/Button'\nimport { Icon } from './primitives/Icon'\n\nfunction Toast({ toast }: { toast: TLUiToast }) {\n\tconst { removeToast } = useToasts()\n\tconst msg = useTranslation()\n\n\tconst onOpenChange = (isOpen: boolean) => {\n\t\tif (!isOpen) {\n\t\t\tremoveToast(toast.id)\n\t\t}\n\t}\n\n\tconst hasActions = toast.actions && toast.actions.length > 0\n\n\treturn (\n\t\t<T.Root\n\t\t\tonOpenChange={onOpenChange}\n\t\t\tclassName=\"tlui-toast__container\"\n\t\t\tduration={toast.keepOpen ? Infinity : 5000}\n\t\t>\n\t\t\t{toast.icon && (\n\t\t\t\t<div className=\"tlui-toast__icon\">\n\t\t\t\t\t<Icon icon={toast.icon as TLUiIconType} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"tlui-toast__main\">\n\t\t\t\t<div className=\"tlui-toast__content\">\n\t\t\t\t\t{toast.title && <T.Title className=\"tlui-toast__title\">{toast.title}</T.Title>}\n\t\t\t\t\t{toast.description && (\n\t\t\t\t\t\t<T.Description className=\"tlui-toast__description\">{toast.description}</T.Description>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{toast.actions && (\n\t\t\t\t\t<div className=\"tlui-toast__actions\">\n\t\t\t\t\t\t{toast.actions.map((action, i) => (\n\t\t\t\t\t\t\t<T.Action key={i} altText={action.label} asChild onClick={action.onClick}>\n\t\t\t\t\t\t\t\t<Button type={action.type}>{action.label}</Button>\n\t\t\t\t\t\t\t</T.Action>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<T.Close asChild>\n\t\t\t\t\t\t\t<Button type=\"normal\" className=\"tlui-toast__close\" style={{ marginLeft: 'auto' }}>\n\t\t\t\t\t\t\t\t{toast.closeLabel ?? msg('toast.close')}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</T.Close>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!hasActions && (\n\t\t\t\t<T.Close asChild>\n\t\t\t\t\t<Button type=\"normal\" className=\"tlui-toast__close\">\n\t\t\t\t\t\t{toast.closeLabel ?? msg('toast.close')}\n\t\t\t\t\t</Button>\n\t\t\t\t</T.Close>\n\t\t\t)}\n\t\t</T.Root>\n\t)\n}\n\nfunction _Toasts() {\n\tconst { toasts } = useToasts()\n\n\treturn (\n\t\t<>\n\t\t\t{toasts.map((toast) => (\n\t\t\t\t<Toast key={toast.id} toast={toast} />\n\t\t\t))}\n\t\t</>\n\t)\n}\n\nexport const Toasts = React.memo(_Toasts)\n\nexport function ToastViewport() {\n\tconst { toasts } = useToasts()\n\n\tconst [hasToasts, setHasToasts] = React.useState(false)\n\n\tReact.useEffect(() => {\n\t\tlet cancelled = false\n\t\tif (toasts.length) {\n\t\t\tsetHasToasts(true)\n\t\t} else {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!cancelled) {\n\t\t\t\t\tsetHasToasts(false)\n\t\t\t\t}\n\t\t\t}, 1000)\n\t\t}\n\n\t\treturn () => {\n\t\t\tcancelled = true\n\t\t}\n\t}, [toasts.length, setHasToasts])\n\n\tif (!hasToasts) return null\n\n\treturn <T.ToastViewport className=\"tlui-toast__viewport\" />\n}\n"],
|
|
5
|
-
"mappings": "AA4BK,SAwCH,UAxCG,KAID,YAJC;AA5BL,YAAY,OAAO;AACnB,YAAY,WAAW;AACvB,SAAoB,iBAAiB;AACrC,SAAS,sBAAsB;AAE/B,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,MAAM,EAAE,MAAM,GAAyB;AAC/C,QAAM,EAAE,YAAY,IAAI,UAAU;AAClC,QAAM,MAAM,eAAe;AAE3B,QAAM,eAAe,CAAC,WAAoB;AACzC,QAAI,CAAC,QAAQ;AACZ,kBAAY,MAAM,EAAE;AAAA,IACrB;AAAA,EACD;AAEA,QAAM,aAAa,MAAM,WAAW,MAAM,QAAQ,SAAS;AAE3D,SACC;AAAA,IAAC,EAAE;AAAA,IAAF;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,UAAU,MAAM,WAAW,WAAW;AAAA,MAErC;AAAA,cAAM,QACN,oBAAC,SAAI,WAAU,oBACd,8BAAC,QAAK,MAAM,MAAM,MAAsB,GACzC;AAAA,QAED,qBAAC,SAAI,WAAU,oBACd;AAAA,+BAAC,SAAI,WAAU,uBACb;AAAA,kBAAM,SAAS,oBAAC,EAAE,OAAF,EAAQ,WAAU,qBAAqB,gBAAM,OAAM;AAAA,YACnE,MAAM,eACN,oBAAC,EAAE,aAAF,EAAc,WAAU,2BAA2B,gBAAM,aAAY;AAAA,aAExE;AAAA,UACC,MAAM,WACN,qBAAC,SAAI,WAAU,uBACb;AAAA,kBAAM,QAAQ,IAAI,CAAC,QAAQ,MAC3B,oBAAC,EAAE,QAAF,EAAiB,SAAS,OAAO,OAAO,SAAO,MAAC,SAAS,OAAO,SAChE,8BAAC,UAAO,MAAM,OAAO,MAAO,iBAAO,OAAM,KAD3B,CAEf,CACA;AAAA,YACD,oBAAC,EAAE,OAAF,EAAQ,SAAO,MACf,8BAAC,UAAO,MAAK,UAAS,WAAU,qBAAoB,OAAO,EAAE,YAAY,OAAO,GAC9E,gBAAM,cAAc,IAAI,aAAa,GACvC,GACD;AAAA,aACD;AAAA,WAEF;AAAA,QACC,CAAC,cACD,oBAAC,EAAE,OAAF,EAAQ,SAAO,MACf,8BAAC,UAAO,MAAK,UAAS,WAAU,qBAC9B,gBAAM,cAAc,IAAI,aAAa,GACvC,GACD;AAAA;AAAA;AAAA,EAEF;AAEF;AAEA,SAAS,UAAU;AAClB,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,SACC,gCACE,iBAAO,IAAI,CAAC,UACZ,oBAAC,SAAqB,SAAV,MAAM,EAAkB,CACpC,GACF;AAEF;AAEO,MAAM,SAAS,MAAM,KAAK,OAAO;AAEjC,SAAS,gBAAgB;AAC/B,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,KAAK;AAEtD,QAAM,UAAU,MAAM;AACrB,QAAI,YAAY;AAChB,QAAI,OAAO,QAAQ;AAClB,mBAAa,IAAI;AAAA,IAClB,OAAO;AACN,iBAAW,MAAM;AAChB,YAAI,CAAC,WAAW;AACf,uBAAa,KAAK;AAAA,QACnB;AAAA,MACD,GAAG,GAAI;AAAA,IACR;AAEA,WAAO,MAAM;AACZ,kBAAY;AAAA,IACb;AAAA,EACD,GAAG,CAAC,OAAO,QAAQ,YAAY,CAAC;AAEhC,MAAI,CAAC
|
|
5
|
+
"mappings": "AA4BK,SAwCH,UAxCG,KAID,YAJC;AA5BL,YAAY,OAAO;AACnB,YAAY,WAAW;AACvB,SAAoB,iBAAiB;AACrC,SAAS,sBAAsB;AAE/B,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,MAAM,EAAE,MAAM,GAAyB;AAC/C,QAAM,EAAE,YAAY,IAAI,UAAU;AAClC,QAAM,MAAM,eAAe;AAE3B,QAAM,eAAe,CAAC,WAAoB;AACzC,QAAI,CAAC,QAAQ;AACZ,kBAAY,MAAM,EAAE;AAAA,IACrB;AAAA,EACD;AAEA,QAAM,aAAa,MAAM,WAAW,MAAM,QAAQ,SAAS;AAE3D,SACC;AAAA,IAAC,EAAE;AAAA,IAAF;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,UAAU,MAAM,WAAW,WAAW;AAAA,MAErC;AAAA,cAAM,QACN,oBAAC,SAAI,WAAU,oBACd,8BAAC,QAAK,MAAM,MAAM,MAAsB,GACzC;AAAA,QAED,qBAAC,SAAI,WAAU,oBACd;AAAA,+BAAC,SAAI,WAAU,uBACb;AAAA,kBAAM,SAAS,oBAAC,EAAE,OAAF,EAAQ,WAAU,qBAAqB,gBAAM,OAAM;AAAA,YACnE,MAAM,eACN,oBAAC,EAAE,aAAF,EAAc,WAAU,2BAA2B,gBAAM,aAAY;AAAA,aAExE;AAAA,UACC,MAAM,WACN,qBAAC,SAAI,WAAU,uBACb;AAAA,kBAAM,QAAQ,IAAI,CAAC,QAAQ,MAC3B,oBAAC,EAAE,QAAF,EAAiB,SAAS,OAAO,OAAO,SAAO,MAAC,SAAS,OAAO,SAChE,8BAAC,UAAO,MAAM,OAAO,MAAO,iBAAO,OAAM,KAD3B,CAEf,CACA;AAAA,YACD,oBAAC,EAAE,OAAF,EAAQ,SAAO,MACf,8BAAC,UAAO,MAAK,UAAS,WAAU,qBAAoB,OAAO,EAAE,YAAY,OAAO,GAC9E,gBAAM,cAAc,IAAI,aAAa,GACvC,GACD;AAAA,aACD;AAAA,WAEF;AAAA,QACC,CAAC,cACD,oBAAC,EAAE,OAAF,EAAQ,SAAO,MACf,8BAAC,UAAO,MAAK,UAAS,WAAU,qBAC9B,gBAAM,cAAc,IAAI,aAAa,GACvC,GACD;AAAA;AAAA;AAAA,EAEF;AAEF;AAEA,SAAS,UAAU;AAClB,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,SACC,gCACE,iBAAO,IAAI,CAAC,UACZ,oBAAC,SAAqB,SAAV,MAAM,EAAkB,CACpC,GACF;AAEF;AAEO,MAAM,SAAS,MAAM,KAAK,OAAO;AAEjC,SAAS,gBAAgB;AAC/B,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,KAAK;AAEtD,QAAM,UAAU,MAAM;AACrB,QAAI,YAAY;AAChB,QAAI,OAAO,QAAQ;AAClB,mBAAa,IAAI;AAAA,IAClB,OAAO;AACN,iBAAW,MAAM;AAChB,YAAI,CAAC,WAAW;AACf,uBAAa,KAAK;AAAA,QACnB;AAAA,MACD,GAAG,GAAI;AAAA,IACR;AAEA,WAAO,MAAM;AACZ,kBAAY;AAAA,IACb;AAAA,EACD,GAAG,CAAC,OAAO,QAAQ,YAAY,CAAC;AAEhC,MAAI,CAAC,UAAW,QAAO;AAEvB,SAAO,oBAAC,EAAE,eAAF,EAAgB,WAAU,wBAAuB;AAC1D;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -21,8 +21,7 @@ function ToggleToolLockedButton({ activeToolId }) {
|
|
|
21
21
|
const isToolLocked = useValue("is tool locked", () => editor.getInstanceState().isToolLocked, [
|
|
22
22
|
editor
|
|
23
23
|
]);
|
|
24
|
-
if (!activeToolId || NOT_LOCKABLE_TOOLS.includes(activeToolId))
|
|
25
|
-
return null;
|
|
24
|
+
if (!activeToolId || NOT_LOCKABLE_TOOLS.includes(activeToolId)) return null;
|
|
26
25
|
return /* @__PURE__ */ jsx(
|
|
27
26
|
Button,
|
|
28
27
|
{
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx"],
|
|
4
4
|
"sourcesContent": ["import { useEditor, useValue } from '@bigbluebutton/editor'\nimport classNames from 'classnames'\nimport { useBreakpoint } from '../../hooks/useBreakpoint'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { Button } from '../primitives/Button'\n\ninterface ToggleToolLockedButtonProps {\n\tactiveToolId?: string\n}\n\nconst NOT_LOCKABLE_TOOLS = [\n\t'select',\n\t'hand',\n\t'draw',\n\t'eraser',\n\t'text',\n\t'zoom',\n\t'laser',\n\t'highlight',\n]\n\nexport function ToggleToolLockedButton({ activeToolId }: ToggleToolLockedButtonProps) {\n\tconst editor = useEditor()\n\tconst breakpoint = useBreakpoint()\n\tconst msg = useTranslation()\n\n\tconst isToolLocked = useValue('is tool locked', () => editor.getInstanceState().isToolLocked, [\n\t\teditor,\n\t])\n\n\tif (!activeToolId || NOT_LOCKABLE_TOOLS.includes(activeToolId)) return null\n\n\treturn (\n\t\t<Button\n\t\t\ttype=\"normal\"\n\t\t\ttitle={msg('action.toggle-tool-lock')}\n\t\t\tclassName={classNames('tlui-toolbar__lock-button', {\n\t\t\t\t'tlui-toolbar__lock-button__mobile': breakpoint < 5,\n\t\t\t})}\n\t\t\ticon={isToolLocked ? 'lock' : 'unlock'}\n\t\t\tonClick={() => editor.updateInstanceState({ isToolLocked: !isToolLocked })}\n\t\t\tsmallIcon\n\t\t/>\n\t)\n}\n"],
|
|
5
|
-
"mappings": "AAiCE;AAjCF,SAAS,WAAW,gBAAgB;AACpC,OAAO,gBAAgB;AACvB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AAMvB,MAAM,qBAAqB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,SAAS,uBAAuB,EAAE,aAAa,GAAgC;AACrF,QAAM,SAAS,UAAU;AACzB,QAAM,aAAa,cAAc;AACjC,QAAM,MAAM,eAAe;AAE3B,QAAM,eAAe,SAAS,kBAAkB,MAAM,OAAO,iBAAiB,EAAE,cAAc;AAAA,IAC7F;AAAA,EACD,CAAC;AAED,MAAI,CAAC,gBAAgB,mBAAmB,SAAS,YAAY
|
|
5
|
+
"mappings": "AAiCE;AAjCF,SAAS,WAAW,gBAAgB;AACpC,OAAO,gBAAgB;AACvB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AAMvB,MAAM,qBAAqB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,SAAS,uBAAuB,EAAE,aAAa,GAAgC;AACrF,QAAM,SAAS,UAAU;AACzB,QAAM,aAAa,cAAc;AACjC,QAAM,MAAM,eAAe;AAE3B,QAAM,eAAe,SAAS,kBAAkB,MAAM,OAAO,iBAAiB,EAAE,cAAc;AAAA,IAC7F;AAAA,EACD,CAAC;AAED,MAAI,CAAC,gBAAgB,mBAAmB,SAAS,YAAY,EAAG,QAAO;AAEvE,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,OAAO,IAAI,yBAAyB;AAAA,MACpC,WAAW,WAAW,6BAA6B;AAAA,QAClD,qCAAqC,aAAa;AAAA,MACnD,CAAC;AAAA,MACD,MAAM,eAAe,SAAS;AAAA,MAC9B,SAAS,MAAM,OAAO,oBAAoB,EAAE,cAAc,CAAC,aAAa,CAAC;AAAA,MACzE,WAAS;AAAA;AAAA,EACV;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -11,8 +11,7 @@ const TrashButton = track(function TrashButton2() {
|
|
|
11
11
|
const msg = useTranslation();
|
|
12
12
|
const action = actions["delete"];
|
|
13
13
|
const isReadonly = useReadonly();
|
|
14
|
-
if (isReadonly)
|
|
15
|
-
return null;
|
|
14
|
+
if (isReadonly) return null;
|
|
16
15
|
return /* @__PURE__ */ jsx(
|
|
17
16
|
Button,
|
|
18
17
|
{
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/components/TrashButton.tsx"],
|
|
4
4
|
"sourcesContent": ["import { track, useEditor } from '@bigbluebutton/editor'\nimport { useActions } from '../hooks/useActions'\nimport { useReadonly } from '../hooks/useReadonly'\nimport { useTranslation } from '../hooks/useTranslation/useTranslation'\nimport { Button } from './primitives/Button'\nimport { kbdStr } from './primitives/shared'\n\nexport const TrashButton = track(function TrashButton() {\n\tconst editor = useEditor()\n\tconst actions = useActions()\n\tconst msg = useTranslation()\n\tconst action = actions['delete']\n\n\tconst isReadonly = useReadonly()\n\n\tif (isReadonly) return null\n\n\treturn (\n\t\t<Button\n\t\t\ticon={action.icon}\n\t\t\ttype=\"icon\"\n\t\t\tonClick={() => action.onSelect('quick-actions')}\n\t\t\tdisabled={!(editor.isIn('select') && editor.getSelectedShapeIds().length > 0)}\n\t\t\ttitle={`${msg(action.label!)} ${kbdStr(action.kbd!)}`}\n\t\t\tsmallIcon\n\t\t/>\n\t)\n})\n"],
|
|
5
|
-
"mappings": "AAkBE;AAlBF,SAAS,OAAO,iBAAiB;AACjC,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AACvB,SAAS,cAAc;AAEhB,MAAM,cAAc,MAAM,SAASA,eAAc;AACvD,QAAM,SAAS,UAAU;AACzB,QAAM,UAAU,WAAW;AAC3B,QAAM,MAAM,eAAe;AAC3B,QAAM,SAAS,QAAQ,QAAQ;AAE/B,QAAM,aAAa,YAAY;AAE/B,MAAI
|
|
5
|
+
"mappings": "AAkBE;AAlBF,SAAS,OAAO,iBAAiB;AACjC,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AACvB,SAAS,cAAc;AAEhB,MAAM,cAAc,MAAM,SAASA,eAAc;AACvD,QAAM,SAAS,UAAU;AACzB,QAAM,UAAU,WAAW;AAC3B,QAAM,MAAM,eAAe;AAC3B,QAAM,SAAS,QAAQ,QAAQ;AAE/B,QAAM,aAAa,YAAY;AAE/B,MAAI,WAAY,QAAO;AAEvB,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAM,OAAO;AAAA,MACb,MAAK;AAAA,MACL,SAAS,MAAM,OAAO,SAAS,eAAe;AAAA,MAC9C,UAAU,EAAE,OAAO,KAAK,QAAQ,KAAK,OAAO,oBAAoB,EAAE,SAAS;AAAA,MAC3E,OAAO,GAAG,IAAI,OAAO,KAAM,CAAC,IAAI,OAAO,OAAO,GAAI,CAAC;AAAA,MACnD,WAAS;AAAA;AAAA,EACV;AAEF,CAAC;",
|
|
6
6
|
"names": ["TrashButton"]
|
|
7
7
|
}
|
|
@@ -35,8 +35,7 @@ function _ButtonPicker(props) {
|
|
|
35
35
|
};
|
|
36
36
|
const handleButtonClick2 = (e) => {
|
|
37
37
|
const { id } = e.currentTarget.dataset;
|
|
38
|
-
if (value.type === "shared" && value.value === id)
|
|
39
|
-
return;
|
|
38
|
+
if (value.type === "shared" && value.value === id) return;
|
|
40
39
|
editor.mark("point picker item");
|
|
41
40
|
onValueChange(style, id, false);
|
|
42
41
|
};
|
|
@@ -48,8 +47,7 @@ function _ButtonPicker(props) {
|
|
|
48
47
|
window.addEventListener("pointerup", handlePointerUp);
|
|
49
48
|
};
|
|
50
49
|
const handleButtonPointerEnter2 = (e) => {
|
|
51
|
-
if (!rPointing.current)
|
|
52
|
-
return;
|
|
50
|
+
if (!rPointing.current) return;
|
|
53
51
|
const { id } = e.currentTarget.dataset;
|
|
54
52
|
onValueChange(style, id, true);
|
|
55
53
|
};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/primitives/ButtonPicker.tsx"],
|
|
4
4
|
"sourcesContent": ["import {\n\tDefaultColorStyle,\n\tSharedStyle,\n\tStyleProp,\n\tTLDefaultColorStyle,\n\tgetDefaultColorTheme,\n\tuseEditor,\n\tuseValue,\n} from '@bigbluebutton/editor'\nimport classNames from 'classnames'\nimport * as React from 'react'\nimport { useRef } from 'react'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../../icon-types'\nimport { StyleValuesForUi } from '../StylePanel/styles'\nimport { Button } from './Button'\n\n/** @internal */\nexport interface ButtonPickerProps<T extends string> {\n\ttitle: string\n\tuiType: string\n\tstyle: StyleProp<T>\n\tvalue: SharedStyle<T>\n\titems: StyleValuesForUi<T>\n\tonValueChange: (style: StyleProp<T>, value: T, squashing: boolean) => void\n}\n\nfunction _ButtonPicker<T extends string>(props: ButtonPickerProps<T>) {\n\tconst {\n\t\tuiType,\n\t\titems,\n\t\ttitle,\n\t\tstyle,\n\t\tvalue,\n\t\t// columns = clamp(items.length, 2, 4),\n\t\tonValueChange,\n\t} = props\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\n\tconst rPointing = useRef(false)\n\n\tconst {\n\t\thandleButtonClick,\n\t\thandleButtonPointerDown,\n\t\thandleButtonPointerEnter,\n\t\thandleButtonPointerUp,\n\t} = React.useMemo(() => {\n\t\tconst handlePointerUp = () => {\n\t\t\trPointing.current = false\n\t\t\twindow.removeEventListener('pointerup', handlePointerUp)\n\t\t}\n\n\t\tconst handleButtonClick = (e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tconst { id } = e.currentTarget.dataset\n\t\t\tif (value.type === 'shared' && value.value === id) return\n\n\t\t\teditor.mark('point picker item')\n\t\t\tonValueChange(style, id as T, false)\n\t\t}\n\n\t\tconst handleButtonPointerDown = (e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tconst { id } = e.currentTarget.dataset\n\n\t\t\teditor.mark('point picker item')\n\t\t\tonValueChange(style, id as T, true)\n\n\t\t\trPointing.current = true\n\t\t\twindow.addEventListener('pointerup', handlePointerUp) // see TLD-658\n\t\t}\n\n\t\tconst handleButtonPointerEnter = (e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tif (!rPointing.current) return\n\n\t\t\tconst { id } = e.currentTarget.dataset\n\t\t\tonValueChange(style, id as T, true)\n\t\t}\n\n\t\tconst handleButtonPointerUp = (e: React.PointerEvent<HTMLButtonElement>) => {\n\t\t\tconst { id } = e.currentTarget.dataset\n\t\t\tonValueChange(style, id as T, false)\n\t\t}\n\n\t\treturn {\n\t\t\thandleButtonClick,\n\t\t\thandleButtonPointerDown,\n\t\t\thandleButtonPointerEnter,\n\t\t\thandleButtonPointerUp,\n\t\t}\n\t}, [value, editor, onValueChange, style])\n\n\tconst theme = useValue(\n\t\t'theme',\n\t\t() => getDefaultColorTheme({ isDarkMode: editor.user.getIsDarkMode() }),\n\t\t[editor]\n\t)\n\n\treturn (\n\t\t<div className={classNames('tlui-buttons__grid')}>\n\t\t\t{items.map((item) => (\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\tkey={item.value}\n\t\t\t\t\tdata-id={item.value}\n\t\t\t\t\tdata-testid={`style.${uiType}.${item.value}`}\n\t\t\t\t\taria-label={item.value}\n\t\t\t\t\tdata-state={value.type === 'shared' && value.value === item.value ? 'hinted' : undefined}\n\t\t\t\t\ttitle={title + ' \u2014 ' + msg(`${uiType}-style.${item.value}` as TLUiTranslationKey)}\n\t\t\t\t\tclassName={classNames('tlui-button-grid__button')}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\tstyle === (DefaultColorStyle as StyleProp<unknown>)\n\t\t\t\t\t\t\t? { color: theme[item.value as TLDefaultColorStyle].solid }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonPointerEnter={handleButtonPointerEnter}\n\t\t\t\t\tonPointerDown={handleButtonPointerDown}\n\t\t\t\t\tonPointerUp={handleButtonPointerUp}\n\t\t\t\t\tonClick={handleButtonClick}\n\t\t\t\t\ticon={item.icon as TLUiIconType}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\n/** @internal */\nexport const ButtonPicker = React.memo(_ButtonPicker) as typeof _ButtonPicker\n"],
|
|
5
|
-
"mappings": "AAqGI;AArGJ;AAAA,EACC;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,gBAAgB;AACvB,YAAY,WAAW;AACvB,SAAS,cAAc;AAEvB,SAAS,sBAAsB;AAG/B,SAAS,cAAc;AAYvB,SAAS,cAAgC,OAA6B;AACrE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,EACD,IAAI;AACJ,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,eAAe;AAE3B,QAAM,YAAY,OAAO,KAAK;AAE9B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,MAAM,QAAQ,MAAM;AACvB,UAAM,kBAAkB,MAAM;AAC7B,gBAAU,UAAU;AACpB,aAAO,oBAAoB,aAAa,eAAe;AAAA,IACxD;AAEA,UAAMA,qBAAoB,CAAC,MAA6C;AACvE,YAAM,EAAE,GAAG,IAAI,EAAE,cAAc;AAC/B,UAAI,MAAM,SAAS,YAAY,MAAM,UAAU;
|
|
5
|
+
"mappings": "AAqGI;AArGJ;AAAA,EACC;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,gBAAgB;AACvB,YAAY,WAAW;AACvB,SAAS,cAAc;AAEvB,SAAS,sBAAsB;AAG/B,SAAS,cAAc;AAYvB,SAAS,cAAgC,OAA6B;AACrE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,EACD,IAAI;AACJ,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,eAAe;AAE3B,QAAM,YAAY,OAAO,KAAK;AAE9B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,MAAM,QAAQ,MAAM;AACvB,UAAM,kBAAkB,MAAM;AAC7B,gBAAU,UAAU;AACpB,aAAO,oBAAoB,aAAa,eAAe;AAAA,IACxD;AAEA,UAAMA,qBAAoB,CAAC,MAA6C;AACvE,YAAM,EAAE,GAAG,IAAI,EAAE,cAAc;AAC/B,UAAI,MAAM,SAAS,YAAY,MAAM,UAAU,GAAI;AAEnD,aAAO,KAAK,mBAAmB;AAC/B,oBAAc,OAAO,IAAS,KAAK;AAAA,IACpC;AAEA,UAAMC,2BAA0B,CAAC,MAA6C;AAC7E,YAAM,EAAE,GAAG,IAAI,EAAE,cAAc;AAE/B,aAAO,KAAK,mBAAmB;AAC/B,oBAAc,OAAO,IAAS,IAAI;AAElC,gBAAU,UAAU;AACpB,aAAO,iBAAiB,aAAa,eAAe;AAAA,IACrD;AAEA,UAAMC,4BAA2B,CAAC,MAA6C;AAC9E,UAAI,CAAC,UAAU,QAAS;AAExB,YAAM,EAAE,GAAG,IAAI,EAAE,cAAc;AAC/B,oBAAc,OAAO,IAAS,IAAI;AAAA,IACnC;AAEA,UAAMC,yBAAwB,CAAC,MAA6C;AAC3E,YAAM,EAAE,GAAG,IAAI,EAAE,cAAc;AAC/B,oBAAc,OAAO,IAAS,KAAK;AAAA,IACpC;AAEA,WAAO;AAAA,MACN,mBAAAH;AAAA,MACA,yBAAAC;AAAA,MACA,0BAAAC;AAAA,MACA,uBAAAC;AAAA,IACD;AAAA,EACD,GAAG,CAAC,OAAO,QAAQ,eAAe,KAAK,CAAC;AAExC,QAAM,QAAQ;AAAA,IACb;AAAA,IACA,MAAM,qBAAqB,EAAE,YAAY,OAAO,KAAK,cAAc,EAAE,CAAC;AAAA,IACtE,CAAC,MAAM;AAAA,EACR;AAEA,SACC,oBAAC,SAAI,WAAW,WAAW,oBAAoB,GAC7C,gBAAM,IAAI,CAAC,SACX;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MAEL,WAAS,KAAK;AAAA,MACd,eAAa,SAAS,MAAM,IAAI,KAAK,KAAK;AAAA,MAC1C,cAAY,KAAK;AAAA,MACjB,cAAY,MAAM,SAAS,YAAY,MAAM,UAAU,KAAK,QAAQ,WAAW;AAAA,MAC/E,OAAO,QAAQ,aAAQ,IAAI,GAAG,MAAM,UAAU,KAAK,KAAK,EAAwB;AAAA,MAChF,WAAW,WAAW,0BAA0B;AAAA,MAChD,OACC,UAAW,oBACR,EAAE,OAAO,MAAM,KAAK,KAA4B,EAAE,MAAM,IACxD;AAAA,MAEJ,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,SAAS;AAAA,MACT,MAAM,KAAK;AAAA;AAAA,IAhBN,KAAK;AAAA,EAiBX,CACA,GACF;AAEF;AAGO,MAAM,eAAe,MAAM,KAAK,aAAa;",
|
|
6
6
|
"names": ["handleButtonClick", "handleButtonPointerDown", "handleButtonPointerEnter", "handleButtonPointerUp"]
|
|
7
7
|
}
|