UNPKG

tldraw

Version:

A tiny little drawing editor.

8 lines (7 loc) 6.9 kB
{ "version": 3, "sources": ["../../../../src/lib/ui/context/components.tsx"], "sourcesContent": ["import { useShallowObjectIdentity } from '@tldraw/editor'\nimport { ComponentType, ReactNode, createContext, useContext, useMemo } from 'react'\nimport { DefaultA11yAnnouncer } from '../components/A11y'\nimport {\n\tDefaultActionsMenu,\n\tTLUiActionsMenuProps,\n} from '../components/ActionsMenu/DefaultActionsMenu'\nimport {\n\tDefaultContextMenu,\n\tTLUiContextMenuProps,\n} from '../components/ContextMenu/DefaultContextMenu'\nimport { CursorChatBubble } from '../components/CursorChatBubble'\nimport { DefaultDebugMenu } from '../components/DebugMenu/DefaultDebugMenu'\nimport { DefaultDebugPanel } from '../components/DefaultDebugPanel'\nimport { DefaultMenuPanel } from '../components/DefaultMenuPanel'\nimport { DefaultDialogs } from '../components/Dialogs'\nimport { TLUiHelpMenuProps } from '../components/HelpMenu/DefaultHelpMenu'\nimport {\n\tDefaultHelperButtons,\n\tTLUiHelperButtonsProps,\n} from '../components/HelperButtons/DefaultHelperButtons'\nimport {\n\tDefaultKeyboardShortcutsDialog,\n\tTLUiKeyboardShortcutsDialogProps,\n} from '../components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialog'\nimport { DefaultMainMenu, TLUiMainMenuProps } from '../components/MainMenu/DefaultMainMenu'\nimport { DefaultMinimap } from '../components/Minimap/DefaultMinimap'\nimport { DefaultNavigationPanel } from '../components/NavigationPanel/DefaultNavigationPanel'\nimport { DefaultPageMenu } from '../components/PageMenu/DefaultPageMenu'\nimport {\n\tDefaultQuickActions,\n\tTLUiQuickActionsProps,\n} from '../components/QuickActions/DefaultQuickActions'\nimport { DefaultSharePanel } from '../components/SharePanel/DefaultSharePanel'\nimport { DefaultStylePanel, TLUiStylePanelProps } from '../components/StylePanel/DefaultStylePanel'\nimport { DefaultToasts } from '../components/Toasts'\nimport {\n\tDefaultRichTextToolbar,\n\tTLUiRichTextToolbarProps,\n} from '../components/Toolbar/DefaultRichTextToolbar'\nimport { DefaultToolbar } from '../components/Toolbar/DefaultToolbar'\nimport { DefaultTopPanel } from '../components/TopPanel/DefaultTopPanel'\nimport { DefaultZoomMenu, TLUiZoomMenuProps } from '../components/ZoomMenu/DefaultZoomMenu'\nimport { useShowCollaborationUi } from '../hooks/useCollaborationStatus'\n\n/** @public */\nexport interface TLUiComponents {\n\tContextMenu?: ComponentType<TLUiContextMenuProps> | null\n\tActionsMenu?: ComponentType<TLUiActionsMenuProps> | null\n\tHelpMenu?: ComponentType<TLUiHelpMenuProps> | null\n\tZoomMenu?: ComponentType<TLUiZoomMenuProps> | null\n\tMainMenu?: ComponentType<TLUiMainMenuProps> | null\n\tMinimap?: ComponentType | null\n\tStylePanel?: ComponentType<TLUiStylePanelProps> | null\n\tPageMenu?: ComponentType | null\n\tNavigationPanel?: ComponentType | null\n\tToolbar?: ComponentType | null\n\tRichTextToolbar?: ComponentType<TLUiRichTextToolbarProps> | null\n\tKeyboardShortcutsDialog?: ComponentType<TLUiKeyboardShortcutsDialogProps> | null\n\tQuickActions?: ComponentType<TLUiQuickActionsProps> | null\n\tHelperButtons?: ComponentType<TLUiHelperButtonsProps> | null\n\tDebugPanel?: ComponentType | null\n\tDebugMenu?: ComponentType | null\n\tMenuPanel?: ComponentType | null\n\tTopPanel?: ComponentType | null\n\tSharePanel?: ComponentType | null\n\tCursorChatBubble?: ComponentType | null\n\tDialogs?: ComponentType | null\n\tToasts?: ComponentType | null\n\tA11y?: ComponentType | null\n}\n\nconst TldrawUiComponentsContext = createContext<TLUiComponents | null>(null)\n\n/** @public */\nexport interface TLUiComponentsProviderProps {\n\toverrides?: TLUiComponents\n\tchildren: ReactNode\n}\n\n/** @public @react */\nexport function TldrawUiComponentsProvider({\n\toverrides = {},\n\tchildren,\n}: TLUiComponentsProviderProps) {\n\tconst _overrides = useShallowObjectIdentity(overrides)\n\tconst showCollaborationUi = useShowCollaborationUi()\n\n\treturn (\n\t\t<TldrawUiComponentsContext.Provider\n\t\t\tvalue={useMemo(\n\t\t\t\t() => ({\n\t\t\t\t\tContextMenu: DefaultContextMenu,\n\t\t\t\t\tActionsMenu: DefaultActionsMenu,\n\t\t\t\t\tHelpMenu: null,\n\t\t\t\t\tZoomMenu: DefaultZoomMenu,\n\t\t\t\t\tMainMenu: DefaultMainMenu,\n\t\t\t\t\tMinimap: DefaultMinimap,\n\t\t\t\t\tStylePanel: DefaultStylePanel,\n\t\t\t\t\tPageMenu: DefaultPageMenu,\n\t\t\t\t\tNavigationPanel: DefaultNavigationPanel,\n\t\t\t\t\tToolbar: DefaultToolbar,\n\t\t\t\t\tRichTextToolbar: DefaultRichTextToolbar,\n\t\t\t\t\tKeyboardShortcutsDialog: DefaultKeyboardShortcutsDialog,\n\t\t\t\t\tQuickActions: DefaultQuickActions,\n\t\t\t\t\tHelperButtons: DefaultHelperButtons,\n\t\t\t\t\tDebugPanel: DefaultDebugPanel,\n\t\t\t\t\tDebugMenu: DefaultDebugMenu,\n\t\t\t\t\tMenuPanel: DefaultMenuPanel,\n\t\t\t\t\tSharePanel: showCollaborationUi ? DefaultSharePanel : null,\n\t\t\t\t\tCursorChatBubble: showCollaborationUi ? CursorChatBubble : null,\n\t\t\t\t\tTopPanel: showCollaborationUi ? DefaultTopPanel : null,\n\t\t\t\t\tDialogs: DefaultDialogs,\n\t\t\t\t\tToasts: DefaultToasts,\n\t\t\t\t\tA11y: DefaultA11yAnnouncer,\n\t\t\t\t\t..._overrides,\n\t\t\t\t}),\n\t\t\t\t[_overrides, showCollaborationUi]\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</TldrawUiComponentsContext.Provider>\n\t)\n}\n\n/** @public */\nexport function useTldrawUiComponents() {\n\tconst components = useContext(TldrawUiComponentsContext)\n\tif (!components) {\n\t\tthrow new Error('useTldrawUiComponents must be used within a TldrawUiComponentsProvider')\n\t}\n\treturn components\n}\n"], "mappings": "AAyFE;AAzFF,SAAS,gCAAgC;AACzC,SAAmC,eAAe,YAAY,eAAe;AAC7E,SAAS,4BAA4B;AACrC;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAE/B;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP,SAAS,uBAA0C;AACnD,SAAS,sBAAsB;AAC/B,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAChC;AAAA,EACC;AAAA,OAEM;AACP,SAAS,yBAAyB;AAClC,SAAS,yBAA8C;AACvD,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,OAEM;AACP,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,uBAA0C;AACnD,SAAS,8BAA8B;AA6BvC,MAAM,4BAA4B,cAAqC,IAAI;AASpE,SAAS,2BAA2B;AAAA,EAC1C,YAAY,CAAC;AAAA,EACb;AACD,GAAgC;AAC/B,QAAM,aAAa,yBAAyB,SAAS;AACrD,QAAM,sBAAsB,uBAAuB;AAEnD,SACC;AAAA,IAAC,0BAA0B;AAAA,IAA1B;AAAA,MACA,OAAO;AAAA,QACN,OAAO;AAAA,UACN,aAAa;AAAA,UACb,aAAa;AAAA,UACb,UAAU;AAAA,UACV,UAAU;AAAA,UACV,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,iBAAiB;AAAA,UACjB,SAAS;AAAA,UACT,iBAAiB;AAAA,UACjB,yBAAyB;AAAA,UACzB,cAAc;AAAA,UACd,eAAe;AAAA,UACf,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,WAAW;AAAA,UACX,YAAY,sBAAsB,oBAAoB;AAAA,UACtD,kBAAkB,sBAAsB,mBAAmB;AAAA,UAC3D,UAAU,sBAAsB,kBAAkB;AAAA,UAClD,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,GAAG;AAAA,QACJ;AAAA,QACA,CAAC,YAAY,mBAAmB;AAAA,MACjC;AAAA,MAEC;AAAA;AAAA,EACF;AAEF;AAGO,SAAS,wBAAwB;AACvC,QAAM,aAAa,WAAW,yBAAyB;AACvD,MAAI,CAAC,YAAY;AAChB,UAAM,IAAI,MAAM,wEAAwE;AAAA,EACzF;AACA,SAAO;AACR;", "names": [] }