mirror of
https://github.com/kennethnym/aris.git
synced 2026-03-20 00:51:20 +00:00
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
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"],
|
|
description: "Bordered card container for feed content. The style prop accepts a twrnc class string.",
|
|
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: {},
|
|
})
|