UNPKG

@activecollab/components

Version:

ActiveCollab Components

109 lines 5.81 kB
import React, { ReactElement } from "react"; import { ProjectElementDef } from "./projectElements"; export type OutlineElementType = "circle" | "roundedRectangle" | "triangle" | "postit" | "text" | "freehand" | "link" | "file" | "task" | "project"; export type OutlineIcon = React.ComponentType<React.SVGProps<SVGSVGElement>>; export declare const OUTLINE_TYPE_ICONS: Record<OutlineElementType, OutlineIcon>; export declare const OUTLINE_TYPE_LABELS: Record<OutlineElementType, string>; export interface OutlineElement { id: string; name: string | null; type: OutlineElementType; locked?: boolean; connections?: number; renamable?: boolean; limited?: boolean; groupId: string | null; } export interface OutlineGroup { id: string; name: string; } export declare const OUTLINE_GROUPS: OutlineGroup[]; export declare const OUTLINE_ELEMENTS: OutlineElement[]; export declare const OUTLINE_MIN_WIDTH = 260; export declare const OUTLINE_MAX_WIDTH: number; export declare const OUTLINE_WIDTH = 320; export declare const UNGROUPED = "__ungrouped__"; export declare const StyledOutlineSidebar: import("styled-components").StyledComponent<"aside", any, {}, never>; export declare const StyledOutlineResizer: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledOutlineBody: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledOutlineRow: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledOutlineGroupRow: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledOutlineChildRow: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledOutlineToggle: import("styled-components").StyledComponent<"button", any, {}, never>; export declare const StyledOutlineCounter: import("styled-components").StyledComponent<"span", any, {}, never>; export declare const OutlineCounter: ({ count }: { count: number; }) => ReactElement; export declare const StyledOutlineSignifiers: import("styled-components").StyledComponent<"span", any, {}, never>; export declare const StyledOutlineTypeIcon: import("styled-components").StyledComponent<"span", any, {}, never>; export declare const StyledOutlineName: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const outlineLabel: (element: OutlineElement) => string; /** * Outline rows for the entity cards on the canvas. * * They are DERIVED on every render rather than seeded into the outline's own * state the way the mock elements are. That is the whole trick that keeps this * cheap: the canvas already owns these elements, so there is no second copy to * reconcile when one is added, resolved or cancelled, and the drag-reorder and * grouping state the outline holds for its mock rows is left completely alone. * * The row id IS the canvas element id, which is what makes selection sync free * in both directions — the sidebar and the canvas already share `selectedId`. */ export declare const entityOutlineRows: (elements: ProjectElementDef[], locks: Record<string, boolean>) => OutlineElement[]; export declare const OUTLINE_MENU_LIST_STYLE: { padding: string; }; export declare const OUTLINE_MENU_WIDTH = 264; export declare const OutlineMenuSliderStyle: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>; export declare const StyledOutlineElementMenu: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const ARRANGE_ITEMS: { label: string; Icon: OutlineIcon; }[]; export interface OutlineElementOptionsMenuProps { locked: boolean; onToggleLock: () => void; renamable?: boolean; } export declare const OutlineElementOptionsMenu: ({ locked, onToggleLock, renamable, }: OutlineElementOptionsMenuProps) => ReactElement; export declare const OutlineGroupOptionsMenu: () => ReactElement; export type DropSpot = { kind: "before" | "after"; id: string; } | { kind: "into"; id: string; }; export type LeftPanel = "info" | "outline"; export declare const INFO_ROWS: [string, string][]; export declare const LeftMenuContents: ({ sidebarOpen, onToggleSidebar, boardName, onRenameBoard, }: { sidebarOpen: boolean; onToggleSidebar: () => void; boardName: string; onRenameBoard: (name: string) => void; }) => ReactElement; export declare const StyledSidebarHeader: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledChooseRow: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledPanelChooseSlot: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const StyledInfoPanel: import("styled-components").StyledComponent<"div", any, {}, never>; export declare const InfoPanelContent: ({ boardName, }: { boardName: string; }) => ReactElement; export declare const StyledNewGroupRow: import("styled-components").StyledComponent<"div", any, {}, never>; export interface LeftSidebarProps { selectedId: string | null; onSelect: (id: string | null) => void; activePanel: LeftPanel; onPanelChange: (panel: LeftPanel) => void; sidebarOpen: boolean; onToggleSidebar: () => void; boardName: string; onRenameBoard: (name: string) => void; projectElements: ProjectElementDef[]; locks: Record<string, boolean>; onToggleElementLock: (id: string) => void; } export declare const LeftSidebar: ({ selectedId, onSelect, activePanel, onPanelChange, sidebarOpen, onToggleSidebar, boardName, onRenameBoard, projectElements, locks, onToggleElementLock, }: LeftSidebarProps) => ReactElement; //# sourceMappingURL=outline.d.ts.map