2026-03-13 23:56:34 +00:00
import { defineCatalog } from "@json-render/core"
import { schema } from "@json-render/react-native/schema"
import { z } from "zod"
export const catalog = defineCatalog ( schema , {
components : {
View : {
props : z.object ( {
style : z.string ( ) . nullable ( ) ,
} ) ,
slots : [ "default" ] ,
description :
"Generic layout container. The style prop accepts a twrnc class string (e.g. 'flex-row gap-2 p-4 items-center')." ,
example : { style : "flex-row gap-2 p-4" } ,
} ,
Button : {
props : z.object ( {
label : z.string ( ) ,
leadingIcon : z.string ( ) . nullable ( ) ,
trailingIcon : z.string ( ) . nullable ( ) ,
} ) ,
events : [ "press" ] ,
slots : [ ] ,
description :
"Pressable button with a label and optional Feather icons. Icon values are Feather icon names (e.g. 'plus', 'arrow-right'). Bind on.press to trigger an action." ,
example : { label : "Add item" , leadingIcon : "plus" , trailingIcon : null } ,
} ,
FeedCard : {
props : z.object ( {
style : z.string ( ) . nullable ( ) ,
} ) ,
slots : [ "default" ] ,
2026-04-12 18:33:46 +01:00
description :
"Bordered card container for feed content. The style prop accepts a twrnc class string." ,
2026-03-13 23:56:34 +00:00
example : { style : "p-4 gap-2" } ,
} ,
SansSerifText : {
props : z.object ( {
text : z.string ( ) ,
style : z.string ( ) . nullable ( ) ,
} ) ,
slots : [ ] ,
description :
"Sans-serif text (Inter font). The style prop accepts a twrnc class string for size, weight, color, etc." ,
example : { text : "Hello world" , style : "text-base font-medium" } ,
} ,
SerifText : {
props : z.object ( {
text : z.string ( ) ,
style : z.string ( ) . nullable ( ) ,
} ) ,
slots : [ ] ,
description :
"Serif text (Source Serif 4 font). The style prop accepts a twrnc class string for size, color, etc." ,
example : { text : "Heading" , style : "text-xl" } ,
} ,
MonospaceText : {
props : z.object ( {
text : z.string ( ) ,
style : z.string ( ) . nullable ( ) ,
} ) ,
slots : [ ] ,
description :
"Monospace text (Menlo font). The style prop accepts a twrnc class string for size, color, etc." ,
example : { text : "const x = 42" , style : "text-sm" } ,
} ,
} ,
actions : { } ,
} )