tldraw
Version:
A tiny little drawing editor.
99 lines (98 loc) • 4.16 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { useShallowObjectIdentity } from "@tldraw/editor";
import { createContext, useContext, useMemo } from "react";
import { DefaultA11yAnnouncer } from "../components/A11y.mjs";
import {
DefaultActionsMenu
} from "../components/ActionsMenu/DefaultActionsMenu.mjs";
import {
DefaultContextMenu
} from "../components/ContextMenu/DefaultContextMenu.mjs";
import { CursorChatBubble } from "../components/CursorChatBubble.mjs";
import { DefaultDebugMenu } from "../components/DebugMenu/DefaultDebugMenu.mjs";
import { DefaultDebugPanel } from "../components/DefaultDebugPanel.mjs";
import { DefaultFollowingIndicator } from "../components/DefaultFollowingIndicator.mjs";
import { DefaultMenuPanel } from "../components/DefaultMenuPanel.mjs";
import { DefaultDialogs } from "../components/Dialogs.mjs";
import {
DefaultHelperButtons
} from "../components/HelperButtons/DefaultHelperButtons.mjs";
import {
DefaultKeyboardShortcutsDialog
} from "../components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialog.mjs";
import { DefaultMainMenu } from "../components/MainMenu/DefaultMainMenu.mjs";
import { DefaultMinimap } from "../components/Minimap/DefaultMinimap.mjs";
import { DefaultNavigationPanel } from "../components/NavigationPanel/DefaultNavigationPanel.mjs";
import { DefaultPageMenu } from "../components/PageMenu/DefaultPageMenu.mjs";
import {
DefaultQuickActions
} from "../components/QuickActions/DefaultQuickActions.mjs";
import { DefaultSharePanel } from "../components/SharePanel/DefaultSharePanel.mjs";
import { DefaultStylePanel } from "../components/StylePanel/DefaultStylePanel.mjs";
import { DefaultToasts } from "../components/Toasts.mjs";
import { DefaultImageToolbar } from "../components/Toolbar/DefaultImageToolbar.mjs";
import {
DefaultRichTextToolbar
} from "../components/Toolbar/DefaultRichTextToolbar.mjs";
import { DefaultToolbar } from "../components/Toolbar/DefaultToolbar.mjs";
import { DefaultVideoToolbar } from "../components/Toolbar/DefaultVideoToolbar.mjs";
import { DefaultZoomMenu } from "../components/ZoomMenu/DefaultZoomMenu.mjs";
import { useShowCollaborationUi } from "../hooks/useCollaborationStatus.mjs";
const TldrawUiComponentsContext = createContext(null);
function TldrawUiComponentsProvider({
overrides = {},
children
}) {
const _overrides = useShallowObjectIdentity(overrides);
const showCollaborationUi = useShowCollaborationUi();
return /* @__PURE__ */ jsx(
TldrawUiComponentsContext.Provider,
{
value: useMemo(
() => ({
ContextMenu: DefaultContextMenu,
ActionsMenu: DefaultActionsMenu,
HelpMenu: null,
ZoomMenu: DefaultZoomMenu,
MainMenu: DefaultMainMenu,
Minimap: DefaultMinimap,
StylePanel: DefaultStylePanel,
PageMenu: DefaultPageMenu,
NavigationPanel: DefaultNavigationPanel,
Toolbar: DefaultToolbar,
RichTextToolbar: DefaultRichTextToolbar,
ImageToolbar: DefaultImageToolbar,
VideoToolbar: DefaultVideoToolbar,
KeyboardShortcutsDialog: DefaultKeyboardShortcutsDialog,
QuickActions: DefaultQuickActions,
HelperButtons: DefaultHelperButtons,
DebugPanel: DefaultDebugPanel,
DebugMenu: DefaultDebugMenu,
MenuPanel: DefaultMenuPanel,
SharePanel: showCollaborationUi ? DefaultSharePanel : null,
CursorChatBubble: showCollaborationUi ? CursorChatBubble : null,
TopPanel: null,
Dialogs: DefaultDialogs,
Toasts: DefaultToasts,
A11y: DefaultA11yAnnouncer,
FollowingIndicator: DefaultFollowingIndicator,
..._overrides
}),
[_overrides, showCollaborationUi]
),
children
}
);
}
function useTldrawUiComponents() {
const components = useContext(TldrawUiComponentsContext);
if (!components) {
throw new Error("useTldrawUiComponents must be used within a TldrawUiComponentsProvider");
}
return components;
}
export {
TldrawUiComponentsProvider,
useTldrawUiComponents
};
//# sourceMappingURL=components.mjs.map