@@ -4,11 +4,15 @@ import {
44 BlockNoDefaults ,
55 BlockSchema ,
66 BlockSpecs ,
7+ InlineContentConfig ,
78 InlineContentSchema ,
9+ InlineContentSpec ,
810 InlineContentSpecs ,
911 LooseBlockSpec ,
1012 PartialBlockNoDefaults ,
13+ StyleConfig ,
1114 StyleSchema ,
15+ StyleSpec ,
1216 StyleSpecs ,
1317 addNodeAndExtensionsToSpec ,
1418 getInlineContentSchemaFromSpecs ,
@@ -153,26 +157,33 @@ export class CustomBlockNoteSchema<
153157 */
154158 public extend <
155159 AdditionalBlockSpecs extends BlockSpecs ,
156- AdditionalInlineContentSpecs extends InlineContentSpecs ,
157- AdditionalStyleSpecs extends StyleSpecs ,
160+ AdditionalInlineContentSpecs extends Record <
161+ string ,
162+ InlineContentSpec < InlineContentConfig >
163+ > ,
164+ AdditionalStyleSpecs extends Record < string , StyleSpec < StyleConfig > > ,
158165 > ( opts : {
159166 blockSpecs ?: AdditionalBlockSpecs ;
160167 inlineContentSpecs ?: AdditionalInlineContentSpecs ;
161168 styleSpecs ?: AdditionalStyleSpecs ;
162169 } ) : CustomBlockNoteSchema <
163170 AdditionalBlockSpecs extends undefined
164- ? BSchema & {
171+ ? BSchema
172+ : BSchema & {
165173 [ K in keyof AdditionalBlockSpecs ] : K extends string
166174 ? AdditionalBlockSpecs [ K ] [ "config" ]
167175 : never ;
168- }
169- : BSchema ,
176+ } ,
170177 AdditionalInlineContentSpecs extends undefined
171- ? ISchema & AdditionalInlineContentSpecs
172- : ISchema ,
178+ ? ISchema
179+ : ISchema & {
180+ [ K in keyof AdditionalInlineContentSpecs ] : AdditionalInlineContentSpecs [ K ] [ "config" ] ;
181+ } ,
173182 AdditionalStyleSpecs extends undefined
174- ? SSchema & AdditionalStyleSpecs
175- : SSchema
183+ ? SSchema
184+ : SSchema & {
185+ [ K in keyof AdditionalStyleSpecs ] : AdditionalStyleSpecs [ K ] [ "config" ] ;
186+ }
176187 > {
177188 // Merge the new specs with existing ones
178189 Object . assign ( this . opts . blockSpecs , opts . blockSpecs ) ;
0 commit comments