@@ -86,8 +86,15 @@ export type Columns = {
8686
8787export type Grid = {
8888 type : 'grid' ;
89- cols : 2 | 3 | 4 ;
90- rows : 1 | 2 | 3 ;
89+ cols : 2 | 3 | 4 | 6 | 12 ;
90+ rows : 1 | 2 | 3 | 4 ;
91+ children : Block [ ] ;
92+ } ;
93+
94+ export type Cell = {
95+ type : 'cell' ;
96+ span ?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ;
97+ rowSpan ?: 1 | 2 | 3 | 4 ;
9198 children : Block [ ] ;
9299} ;
93100
@@ -125,6 +132,7 @@ export type Block =
125132 | Box
126133 | Columns
127134 | Grid
135+ | Cell
128136 | Chart
129137 | Table ;
130138
@@ -209,6 +217,7 @@ const BlockSchema: z.ZodType<Block> = z.lazy(() =>
209217 BoxSchema ,
210218 ColumnsSchema ,
211219 GridSchema ,
220+ CellSchema ,
212221 ] ) ,
213222) ;
214223
@@ -231,12 +240,36 @@ const ColumnsSchema: z.ZodType<Columns> = z.lazy(() =>
231240const GridSchema : z . ZodType < Grid > = z . lazy ( ( ) =>
232241 z . object ( {
233242 type : z . literal ( 'grid' ) ,
234- cols : z . union ( [ z . literal ( 2 ) , z . literal ( 3 ) , z . literal ( 4 ) ] ) ,
235- rows : z . union ( [ z . literal ( 1 ) , z . literal ( 2 ) , z . literal ( 3 ) ] ) ,
243+ cols : z . union ( [ z . literal ( 2 ) , z . literal ( 3 ) , z . literal ( 4 ) , z . literal ( 6 ) , z . literal ( 12 ) ] ) ,
244+ rows : z . union ( [ z . literal ( 1 ) , z . literal ( 2 ) , z . literal ( 3 ) , z . literal ( 4 ) ] ) ,
236245 children : z . array ( BlockSchema ) . min ( 1 ) ,
237246 } ) ,
238247) ;
239248
249+ const CellSchema : z . ZodType < Cell > = z . lazy ( ( ) =>
250+ z . object ( {
251+ type : z . literal ( 'cell' ) ,
252+ span : z
253+ . union ( [
254+ z . literal ( 1 ) ,
255+ z . literal ( 2 ) ,
256+ z . literal ( 3 ) ,
257+ z . literal ( 4 ) ,
258+ z . literal ( 5 ) ,
259+ z . literal ( 6 ) ,
260+ z . literal ( 7 ) ,
261+ z . literal ( 8 ) ,
262+ z . literal ( 9 ) ,
263+ z . literal ( 10 ) ,
264+ z . literal ( 11 ) ,
265+ z . literal ( 12 ) ,
266+ ] )
267+ . optional ( ) ,
268+ rowSpan : z . union ( [ z . literal ( 1 ) , z . literal ( 2 ) , z . literal ( 3 ) , z . literal ( 4 ) ] ) . optional ( ) ,
269+ children : z . array ( BlockSchema ) ,
270+ } ) ,
271+ ) ;
272+
240273const LayoutIdSchema = z . enum ( LAYOUT_IDS ) ;
241274
242275export type Slide = {
0 commit comments