-
-
Notifications
You must be signed in to change notification settings - Fork 518
/
Copy pathindex.tsx
127 lines (122 loc) · 3.55 KB
/
index.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import {
BlockSchema,
InlineContentSchema,
mergeCSSClasses,
StyleSchema,
} from "@blocknote/core";
import {
BlockNoteViewRaw,
Components,
ComponentsContext,
} from "@blocknote/react";
import { ComponentProps } from "react";
import { Form } from "./input/Form";
import { GridSuggestionMenu } from "./suggestionMenu/gridSuggestionMenu/GridSuggestionMenu";
import { GridSuggestionMenuEmptyItem } from "./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem";
import { GridSuggestionMenuItem } from "./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem";
import { GridSuggestionMenuLoader } from "./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader";
import { TextInput } from "./input/TextInput";
import {
Menu,
MenuDivider,
MenuDropdown,
MenuItem,
MenuLabel,
MenuTrigger,
} from "./menu/Menu";
import { Panel } from "./panel/Panel";
import { PanelButton } from "./panel/PanelButton";
import { PanelFileInput } from "./panel/PanelFileInput";
import { PanelTab } from "./panel/PanelTab";
import { PanelTextInput } from "./panel/PanelTextInput";
import { Popover, PopoverContent, PopoverTrigger } from "./popover/Popover";
import { SideMenu } from "./sideMenu/SideMenu";
import { SideMenuButton } from "./sideMenu/SideMenuButton";
import { SuggestionMenu } from "./suggestionMenu/SuggestionMenu";
import { SuggestionMenuItem } from "./suggestionMenu/SuggestionMenuItem";
import { SuggestionMenuEmptyItem } from "./suggestionMenu/SuggestionMenuEmptyItem";
import { SuggestionMenuLabel } from "./suggestionMenu/SuggestionMenuLabel";
import { SuggestionMenuLoader } from "./suggestionMenu/SuggestionMenuLoader";
import { TableHandle } from "./tableHandle/TableHandle";
import { Toolbar } from "./toolbar/Toolbar";
import { ToolbarButton } from "./toolbar/ToolbarButton";
import { ToolbarSelect } from "./toolbar/ToolbarSelect";
import "./style.css";
export const components: Components = {
AIToolbar: {
Root: Toolbar,
Button: ToolbarButton,
},
FormattingToolbar: {
Root: Toolbar,
Button: ToolbarButton,
Select: ToolbarSelect,
},
FilePanel: {
Root: Panel,
Button: PanelButton,
FileInput: PanelFileInput,
TabPanel: PanelTab,
TextInput: PanelTextInput,
},
GridSuggestionMenu: {
Root: GridSuggestionMenu,
Item: GridSuggestionMenuItem,
EmptyItem: GridSuggestionMenuEmptyItem,
Loader: GridSuggestionMenuLoader,
},
LinkToolbar: {
Root: Toolbar,
Button: ToolbarButton,
},
SideMenu: {
Root: SideMenu,
Button: SideMenuButton,
},
SuggestionMenu: {
Root: SuggestionMenu,
Item: SuggestionMenuItem,
EmptyItem: SuggestionMenuEmptyItem,
Label: SuggestionMenuLabel,
Loader: SuggestionMenuLoader,
},
TableHandle: {
Root: TableHandle,
},
Generic: {
Form: {
Root: Form,
TextInput: TextInput,
},
Menu: {
Root: Menu,
Trigger: MenuTrigger,
Dropdown: MenuDropdown,
Divider: MenuDivider,
Label: MenuLabel,
Item: MenuItem,
},
Popover: {
Root: Popover,
Trigger: PopoverTrigger,
Content: PopoverContent,
},
},
};
export const BlockNoteView = <
BSchema extends BlockSchema,
ISchema extends InlineContentSchema,
SSchema extends StyleSchema
>(
props: ComponentProps<typeof BlockNoteViewRaw<BSchema, ISchema, SSchema>>
) => {
const { className, ...rest } = props;
return (
<ComponentsContext.Provider value={components}>
<BlockNoteViewRaw
className={mergeCSSClasses("bn-ariakit", className || "")}
{...rest}
/>
</ComponentsContext.Provider>
);
};