[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-vercel-labs-solid":3,"mdc-q477fc-key":32,"related-org-vercel-labs-solid":3656,"related-repo-vercel-labs-solid":3828},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":30,"mdContent":31},"solid","build SolidJS renderers for json-render","SolidJS renderer for json-render. Use when building @json-render\u002Fsolid catalogs\u002Fregistries, wiring Renderer providers, implementing bindings\u002Factions, or troubleshooting Solid-specific reactivity patterns.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"vercel-labs","Vercel Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fvercel-labs.png",[12,16,18],{"name":13,"slug":14,"type":15},"SolidJS","solidjs","tag",{"name":17,"slug":4,"type":15},"Solid",{"name":19,"slug":20,"type":15},"Frontend","frontend",15678,"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fjson-render","2026-07-17T06:08:15.052939",null,845,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":29},[],"The Generative UI framework","https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fjson-render\u002Ftree\u002FHEAD\u002Fskills\u002Fsolid","---\nname: solid\ndescription: SolidJS renderer for json-render. Use when building @json-render\u002Fsolid catalogs\u002Fregistries, wiring Renderer providers, implementing bindings\u002Factions, or troubleshooting Solid-specific reactivity patterns.\n---\n\n# @json-render\u002Fsolid\n\n`@json-render\u002Fsolid` renders json-render specs into Solid component trees with fine-grained reactivity.\n\n## Quick Start\n\n```tsx\nimport { Renderer, JSONUIProvider } from \"@json-render\u002Fsolid\";\nimport type { Spec } from \"@json-render\u002Fsolid\";\nimport { registry } from \".\u002Fregistry\";\n\nexport function App(props: { spec: Spec | null }) {\n  return (\n    \u003CJSONUIProvider registry={registry} initialState={{}}>\n      \u003CRenderer spec={props.spec} registry={registry} \u002F>\n    \u003C\u002FJSONUIProvider>\n  );\n}\n```\n\n## Create a Catalog\n\n```typescript\nimport { defineCatalog } from \"@json-render\u002Fcore\";\nimport { schema } from \"@json-render\u002Fsolid\u002Fschema\";\nimport { z } from \"zod\";\n\nexport const catalog = defineCatalog(schema, {\n  components: {\n    Button: {\n      props: z.object({\n        label: z.string(),\n        variant: z.enum([\"primary\", \"secondary\"]).nullable(),\n      }),\n      description: \"Clickable button\",\n    },\n    Card: {\n      props: z.object({ title: z.string() }),\n      description: \"Card container\",\n    },\n  },\n  actions: {\n    submit: { description: \"Submit data\" },\n  },\n});\n```\n\n## Define Components\n\nComponents receive `ComponentRenderProps` from the renderer:\n\n```ts\ninterface ComponentRenderProps\u003CP = Record\u003Cstring, unknown>> {\n  element: UIElement\u003Cstring, P>;\n  children?: JSX.Element;\n  emit: (event: string) => void;\n  on: (event: string) => EventHandle;\n  bindings?: Record\u003Cstring, string>;\n  loading?: boolean;\n}\n```\n\nExample:\n\n```tsx\nimport type { BaseComponentProps } from \"@json-render\u002Fsolid\";\n\nexport function Button(props: BaseComponentProps\u003C{ label: string }>) {\n  return (\n    \u003Cbutton onClick={() => props.emit(\"press\")}>{props.props.label}\u003C\u002Fbutton>\n  );\n}\n```\n\n## Create a Registry\n\n```typescript\nimport { defineRegistry } from \"@json-render\u002Fsolid\";\nimport { catalog } from \".\u002Fcatalog\";\nimport { Card } from \".\u002FCard\";\nimport { Button } from \".\u002FButton\";\n\nconst { registry, handlers, executeAction } = defineRegistry(catalog, {\n  components: {\n    Card,\n    Button,\n  },\n  actions: {\n    submit: async (params, setState, state) => {\n      \u002F\u002F custom action logic\n    },\n  },\n});\n```\n\n## Spec Structure\n\n```json\n{\n  \"root\": \"card1\",\n  \"elements\": {\n    \"card1\": {\n      \"type\": \"Card\",\n      \"props\": { \"title\": \"Hello\" },\n      \"children\": [\"btn1\"]\n    },\n    \"btn1\": {\n      \"type\": \"Button\",\n      \"props\": { \"label\": \"Click me\" },\n      \"on\": {\n        \"press\": { \"action\": \"submit\" }\n      }\n    }\n  }\n}\n```\n\n## Providers\n\n- `StateProvider`: state model read\u002Fwrite and controlled mode via `store`\n- `VisibilityProvider`: evaluates `visible` conditions\n- `ValidationProvider`: field validation + `validateForm` integration\n- `ActionProvider`: runs built-in and custom actions\n- `JSONUIProvider`: combined provider wrapper\n\n## Hooks\n\n- `useStateStore`, `useStateValue`, `useStateBinding`\n- `useVisibility`, `useIsVisible`\n- `useActions`, `useAction`\n- `useValidation`, `useOptionalValidation`, `useFieldValidation`\n- `useBoundProp`\n- `useUIStream`, `useChatUI`\n\n## Built-in Actions\n\nHandled automatically by `ActionProvider`:\n\n- `setState`\n- `pushState`\n- `removeState`\n- `validateForm`\n\n## Dynamic Props and Bindings\n\nSupported expression forms include:\n\n- `{\"$state\": \"\u002Fpath\"}`\n- `{\"$bindState\": \"\u002Fpath\"}`\n- `{\"$bindItem\": \"field\"}`\n- `{\"$template\": \"Hi ${\u002Fuser\u002Fname}\"}`\n- `{\"$computed\": \"fn\", \"args\": {...}}`\n- `{\"$cond\": \u003Ccondition>, \"$then\": \u003Cvalue>, \"$else\": \u003Cvalue>}`\n\nUse `useBoundProp` in components for writable bound values:\n\n```tsx\nimport { useBoundProp } from \"@json-render\u002Fsolid\";\n\nfunction Input(props: BaseComponentProps\u003C{ value?: string }>) {\n  const [value, setValue] = useBoundProp(\n    props.props.value,\n    props.bindings?.value,\n  );\n  return (\n    \u003Cinput\n      value={String(value() ?? \"\")}\n      onInput={(e) => setValue(e.currentTarget.value)}\n    \u002F>\n  );\n}\n```\n\n`useStateValue`, `useStateBinding`, and the `state` \u002F `errors` \u002F `isValid` fields from `useFieldValidation` are reactive accessors in Solid. Call them as functions inside JSX, `createMemo`, or `createEffect`.\n\n## Solid Reactivity Rules\n\n- Do not destructure component props in function signatures when values need to stay reactive.\n- Keep changing reads inside JSX expressions, `createMemo`, or `createEffect`.\n- Context values are exposed through getter-based objects so consumers always observe live signals.\n\n## Streaming UI\n\n```tsx\nimport { useUIStream, Renderer } from \"@json-render\u002Fsolid\";\n\nconst stream = useUIStream({ api: \"\u002Fapi\u002Fgenerate-ui\" });\nawait stream.send(\"Create a support dashboard\");\n\n\u003CRenderer\n  spec={stream.spec}\n  registry={registry}\n  loading={stream.isStreaming}\n\u002F>;\n```\n\nUse `useChatUI` for chat + UI generation flows.\n",{"data":33,"body":34},{"name":4,"description":6},{"type":35,"children":36},"root",[37,46,58,65,468,474,1111,1117,1130,1426,1431,1677,1683,2070,2076,2553,2559,2640,2646,2753,2759,2770,2808,2814,2819,2876,2888,3261,3322,3328,3358,3364,3639,3650],{"type":38,"tag":39,"props":40,"children":42},"element","h1",{"id":41},"json-rendersolid",[43],{"type":44,"value":45},"text","@json-render\u002Fsolid",{"type":38,"tag":47,"props":48,"children":49},"p",{},[50,56],{"type":38,"tag":51,"props":52,"children":54},"code",{"className":53},[],[55],{"type":44,"value":45},{"type":44,"value":57}," renders json-render specs into Solid component trees with fine-grained reactivity.",{"type":38,"tag":59,"props":60,"children":62},"h2",{"id":61},"quick-start",[63],{"type":44,"value":64},"Quick Start",{"type":38,"tag":66,"props":67,"children":72},"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Renderer, JSONUIProvider } from \"@json-render\u002Fsolid\";\nimport type { Spec } from \"@json-render\u002Fsolid\";\nimport { registry } from \".\u002Fregistry\";\n\nexport function App(props: { spec: Spec | null }) {\n  return (\n    \u003CJSONUIProvider registry={registry} initialState={{}}>\n      \u003CRenderer spec={props.spec} registry={registry} \u002F>\n    \u003C\u002FJSONUIProvider>\n  );\n}\n","tsx","",[73],{"type":38,"tag":51,"props":74,"children":75},{"__ignoreMap":71},[76,140,186,228,238,314,328,371,428,446,459],{"type":38,"tag":77,"props":78,"children":81},"span",{"class":79,"line":80},"line",1,[82,88,94,100,105,110,115,120,125,130,135],{"type":38,"tag":77,"props":83,"children":85},{"style":84},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[86],{"type":44,"value":87},"import",{"type":38,"tag":77,"props":89,"children":91},{"style":90},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[92],{"type":44,"value":93}," {",{"type":38,"tag":77,"props":95,"children":97},{"style":96},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[98],{"type":44,"value":99}," Renderer",{"type":38,"tag":77,"props":101,"children":102},{"style":90},[103],{"type":44,"value":104},",",{"type":38,"tag":77,"props":106,"children":107},{"style":96},[108],{"type":44,"value":109}," JSONUIProvider",{"type":38,"tag":77,"props":111,"children":112},{"style":90},[113],{"type":44,"value":114}," }",{"type":38,"tag":77,"props":116,"children":117},{"style":84},[118],{"type":44,"value":119}," from",{"type":38,"tag":77,"props":121,"children":122},{"style":90},[123],{"type":44,"value":124}," \"",{"type":38,"tag":77,"props":126,"children":128},{"style":127},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[129],{"type":44,"value":45},{"type":38,"tag":77,"props":131,"children":132},{"style":90},[133],{"type":44,"value":134},"\"",{"type":38,"tag":77,"props":136,"children":137},{"style":90},[138],{"type":44,"value":139},";\n",{"type":38,"tag":77,"props":141,"children":143},{"class":79,"line":142},2,[144,148,153,157,162,166,170,174,178,182],{"type":38,"tag":77,"props":145,"children":146},{"style":84},[147],{"type":44,"value":87},{"type":38,"tag":77,"props":149,"children":150},{"style":84},[151],{"type":44,"value":152}," type",{"type":38,"tag":77,"props":154,"children":155},{"style":90},[156],{"type":44,"value":93},{"type":38,"tag":77,"props":158,"children":159},{"style":96},[160],{"type":44,"value":161}," Spec",{"type":38,"tag":77,"props":163,"children":164},{"style":90},[165],{"type":44,"value":114},{"type":38,"tag":77,"props":167,"children":168},{"style":84},[169],{"type":44,"value":119},{"type":38,"tag":77,"props":171,"children":172},{"style":90},[173],{"type":44,"value":124},{"type":38,"tag":77,"props":175,"children":176},{"style":127},[177],{"type":44,"value":45},{"type":38,"tag":77,"props":179,"children":180},{"style":90},[181],{"type":44,"value":134},{"type":38,"tag":77,"props":183,"children":184},{"style":90},[185],{"type":44,"value":139},{"type":38,"tag":77,"props":187,"children":189},{"class":79,"line":188},3,[190,194,198,203,207,211,215,220,224],{"type":38,"tag":77,"props":191,"children":192},{"style":84},[193],{"type":44,"value":87},{"type":38,"tag":77,"props":195,"children":196},{"style":90},[197],{"type":44,"value":93},{"type":38,"tag":77,"props":199,"children":200},{"style":96},[201],{"type":44,"value":202}," registry",{"type":38,"tag":77,"props":204,"children":205},{"style":90},[206],{"type":44,"value":114},{"type":38,"tag":77,"props":208,"children":209},{"style":84},[210],{"type":44,"value":119},{"type":38,"tag":77,"props":212,"children":213},{"style":90},[214],{"type":44,"value":124},{"type":38,"tag":77,"props":216,"children":217},{"style":127},[218],{"type":44,"value":219},".\u002Fregistry",{"type":38,"tag":77,"props":221,"children":222},{"style":90},[223],{"type":44,"value":134},{"type":38,"tag":77,"props":225,"children":226},{"style":90},[227],{"type":44,"value":139},{"type":38,"tag":77,"props":229,"children":231},{"class":79,"line":230},4,[232],{"type":38,"tag":77,"props":233,"children":235},{"emptyLinePlaceholder":234},true,[236],{"type":44,"value":237},"\n",{"type":38,"tag":77,"props":239,"children":241},{"class":79,"line":240},5,[242,247,253,259,264,270,275,279,285,289,294,299,304,309],{"type":38,"tag":77,"props":243,"children":244},{"style":84},[245],{"type":44,"value":246},"export",{"type":38,"tag":77,"props":248,"children":250},{"style":249},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[251],{"type":44,"value":252}," function",{"type":38,"tag":77,"props":254,"children":256},{"style":255},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[257],{"type":44,"value":258}," App",{"type":38,"tag":77,"props":260,"children":261},{"style":90},[262],{"type":44,"value":263},"(",{"type":38,"tag":77,"props":265,"children":267},{"style":266},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[268],{"type":44,"value":269},"props",{"type":38,"tag":77,"props":271,"children":272},{"style":90},[273],{"type":44,"value":274},":",{"type":38,"tag":77,"props":276,"children":277},{"style":90},[278],{"type":44,"value":93},{"type":38,"tag":77,"props":280,"children":282},{"style":281},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[283],{"type":44,"value":284}," spec",{"type":38,"tag":77,"props":286,"children":287},{"style":90},[288],{"type":44,"value":274},{"type":38,"tag":77,"props":290,"children":292},{"style":291},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[293],{"type":44,"value":161},{"type":38,"tag":77,"props":295,"children":296},{"style":90},[297],{"type":44,"value":298}," |",{"type":38,"tag":77,"props":300,"children":301},{"style":291},[302],{"type":44,"value":303}," null",{"type":38,"tag":77,"props":305,"children":306},{"style":90},[307],{"type":44,"value":308}," })",{"type":38,"tag":77,"props":310,"children":311},{"style":90},[312],{"type":44,"value":313}," {\n",{"type":38,"tag":77,"props":315,"children":317},{"class":79,"line":316},6,[318,323],{"type":38,"tag":77,"props":319,"children":320},{"style":84},[321],{"type":44,"value":322},"  return",{"type":38,"tag":77,"props":324,"children":325},{"style":281},[326],{"type":44,"value":327}," (\n",{"type":38,"tag":77,"props":329,"children":331},{"class":79,"line":330},7,[332,337,342,346,351,356,361,366],{"type":38,"tag":77,"props":333,"children":334},{"style":90},[335],{"type":44,"value":336},"    \u003C",{"type":38,"tag":77,"props":338,"children":339},{"style":291},[340],{"type":44,"value":341},"JSONUIProvider",{"type":38,"tag":77,"props":343,"children":344},{"style":249},[345],{"type":44,"value":202},{"type":38,"tag":77,"props":347,"children":348},{"style":90},[349],{"type":44,"value":350},"={",{"type":38,"tag":77,"props":352,"children":353},{"style":96},[354],{"type":44,"value":355},"registry",{"type":38,"tag":77,"props":357,"children":358},{"style":90},[359],{"type":44,"value":360},"} ",{"type":38,"tag":77,"props":362,"children":363},{"style":249},[364],{"type":44,"value":365},"initialState",{"type":38,"tag":77,"props":367,"children":368},{"style":90},[369],{"type":44,"value":370},"={{}}>\n",{"type":38,"tag":77,"props":372,"children":374},{"class":79,"line":373},8,[375,380,385,389,393,397,402,407,411,415,419,423],{"type":38,"tag":77,"props":376,"children":377},{"style":90},[378],{"type":44,"value":379},"      \u003C",{"type":38,"tag":77,"props":381,"children":382},{"style":291},[383],{"type":44,"value":384},"Renderer",{"type":38,"tag":77,"props":386,"children":387},{"style":249},[388],{"type":44,"value":284},{"type":38,"tag":77,"props":390,"children":391},{"style":90},[392],{"type":44,"value":350},{"type":38,"tag":77,"props":394,"children":395},{"style":96},[396],{"type":44,"value":269},{"type":38,"tag":77,"props":398,"children":399},{"style":90},[400],{"type":44,"value":401},".",{"type":38,"tag":77,"props":403,"children":404},{"style":96},[405],{"type":44,"value":406},"spec",{"type":38,"tag":77,"props":408,"children":409},{"style":90},[410],{"type":44,"value":360},{"type":38,"tag":77,"props":412,"children":413},{"style":249},[414],{"type":44,"value":355},{"type":38,"tag":77,"props":416,"children":417},{"style":90},[418],{"type":44,"value":350},{"type":38,"tag":77,"props":420,"children":421},{"style":96},[422],{"type":44,"value":355},{"type":38,"tag":77,"props":424,"children":425},{"style":90},[426],{"type":44,"value":427},"} \u002F>\n",{"type":38,"tag":77,"props":429,"children":431},{"class":79,"line":430},9,[432,437,441],{"type":38,"tag":77,"props":433,"children":434},{"style":90},[435],{"type":44,"value":436},"    \u003C\u002F",{"type":38,"tag":77,"props":438,"children":439},{"style":291},[440],{"type":44,"value":341},{"type":38,"tag":77,"props":442,"children":443},{"style":90},[444],{"type":44,"value":445},">\n",{"type":38,"tag":77,"props":447,"children":449},{"class":79,"line":448},10,[450,455],{"type":38,"tag":77,"props":451,"children":452},{"style":281},[453],{"type":44,"value":454},"  )",{"type":38,"tag":77,"props":456,"children":457},{"style":90},[458],{"type":44,"value":139},{"type":38,"tag":77,"props":460,"children":462},{"class":79,"line":461},11,[463],{"type":38,"tag":77,"props":464,"children":465},{"style":90},[466],{"type":44,"value":467},"}\n",{"type":38,"tag":59,"props":469,"children":471},{"id":470},"create-a-catalog",[472],{"type":44,"value":473},"Create a Catalog",{"type":38,"tag":66,"props":475,"children":479},{"className":476,"code":477,"language":478,"meta":71,"style":71},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineCatalog } from \"@json-render\u002Fcore\";\nimport { schema } from \"@json-render\u002Fsolid\u002Fschema\";\nimport { z } from \"zod\";\n\nexport const catalog = defineCatalog(schema, {\n  components: {\n    Button: {\n      props: z.object({\n        label: z.string(),\n        variant: z.enum([\"primary\", \"secondary\"]).nullable(),\n      }),\n      description: \"Clickable button\",\n    },\n    Card: {\n      props: z.object({ title: z.string() }),\n      description: \"Card container\",\n    },\n  },\n  actions: {\n    submit: { description: \"Submit data\" },\n  },\n});\n","typescript",[480],{"type":38,"tag":51,"props":481,"children":482},{"__ignoreMap":71},[483,524,565,606,613,652,668,684,718,753,835,852,882,891,908,980,1009,1017,1026,1043,1087,1095],{"type":38,"tag":77,"props":484,"children":485},{"class":79,"line":80},[486,490,494,499,503,507,511,516,520],{"type":38,"tag":77,"props":487,"children":488},{"style":84},[489],{"type":44,"value":87},{"type":38,"tag":77,"props":491,"children":492},{"style":90},[493],{"type":44,"value":93},{"type":38,"tag":77,"props":495,"children":496},{"style":96},[497],{"type":44,"value":498}," defineCatalog",{"type":38,"tag":77,"props":500,"children":501},{"style":90},[502],{"type":44,"value":114},{"type":38,"tag":77,"props":504,"children":505},{"style":84},[506],{"type":44,"value":119},{"type":38,"tag":77,"props":508,"children":509},{"style":90},[510],{"type":44,"value":124},{"type":38,"tag":77,"props":512,"children":513},{"style":127},[514],{"type":44,"value":515},"@json-render\u002Fcore",{"type":38,"tag":77,"props":517,"children":518},{"style":90},[519],{"type":44,"value":134},{"type":38,"tag":77,"props":521,"children":522},{"style":90},[523],{"type":44,"value":139},{"type":38,"tag":77,"props":525,"children":526},{"class":79,"line":142},[527,531,535,540,544,548,552,557,561],{"type":38,"tag":77,"props":528,"children":529},{"style":84},[530],{"type":44,"value":87},{"type":38,"tag":77,"props":532,"children":533},{"style":90},[534],{"type":44,"value":93},{"type":38,"tag":77,"props":536,"children":537},{"style":96},[538],{"type":44,"value":539}," schema",{"type":38,"tag":77,"props":541,"children":542},{"style":90},[543],{"type":44,"value":114},{"type":38,"tag":77,"props":545,"children":546},{"style":84},[547],{"type":44,"value":119},{"type":38,"tag":77,"props":549,"children":550},{"style":90},[551],{"type":44,"value":124},{"type":38,"tag":77,"props":553,"children":554},{"style":127},[555],{"type":44,"value":556},"@json-render\u002Fsolid\u002Fschema",{"type":38,"tag":77,"props":558,"children":559},{"style":90},[560],{"type":44,"value":134},{"type":38,"tag":77,"props":562,"children":563},{"style":90},[564],{"type":44,"value":139},{"type":38,"tag":77,"props":566,"children":567},{"class":79,"line":188},[568,572,576,581,585,589,593,598,602],{"type":38,"tag":77,"props":569,"children":570},{"style":84},[571],{"type":44,"value":87},{"type":38,"tag":77,"props":573,"children":574},{"style":90},[575],{"type":44,"value":93},{"type":38,"tag":77,"props":577,"children":578},{"style":96},[579],{"type":44,"value":580}," z",{"type":38,"tag":77,"props":582,"children":583},{"style":90},[584],{"type":44,"value":114},{"type":38,"tag":77,"props":586,"children":587},{"style":84},[588],{"type":44,"value":119},{"type":38,"tag":77,"props":590,"children":591},{"style":90},[592],{"type":44,"value":124},{"type":38,"tag":77,"props":594,"children":595},{"style":127},[596],{"type":44,"value":597},"zod",{"type":38,"tag":77,"props":599,"children":600},{"style":90},[601],{"type":44,"value":134},{"type":38,"tag":77,"props":603,"children":604},{"style":90},[605],{"type":44,"value":139},{"type":38,"tag":77,"props":607,"children":608},{"class":79,"line":230},[609],{"type":38,"tag":77,"props":610,"children":611},{"emptyLinePlaceholder":234},[612],{"type":44,"value":237},{"type":38,"tag":77,"props":614,"children":615},{"class":79,"line":240},[616,620,625,630,635,639,644,648],{"type":38,"tag":77,"props":617,"children":618},{"style":84},[619],{"type":44,"value":246},{"type":38,"tag":77,"props":621,"children":622},{"style":249},[623],{"type":44,"value":624}," const",{"type":38,"tag":77,"props":626,"children":627},{"style":96},[628],{"type":44,"value":629}," catalog ",{"type":38,"tag":77,"props":631,"children":632},{"style":90},[633],{"type":44,"value":634},"=",{"type":38,"tag":77,"props":636,"children":637},{"style":255},[638],{"type":44,"value":498},{"type":38,"tag":77,"props":640,"children":641},{"style":96},[642],{"type":44,"value":643},"(schema",{"type":38,"tag":77,"props":645,"children":646},{"style":90},[647],{"type":44,"value":104},{"type":38,"tag":77,"props":649,"children":650},{"style":90},[651],{"type":44,"value":313},{"type":38,"tag":77,"props":653,"children":654},{"class":79,"line":316},[655,660,664],{"type":38,"tag":77,"props":656,"children":657},{"style":281},[658],{"type":44,"value":659},"  components",{"type":38,"tag":77,"props":661,"children":662},{"style":90},[663],{"type":44,"value":274},{"type":38,"tag":77,"props":665,"children":666},{"style":90},[667],{"type":44,"value":313},{"type":38,"tag":77,"props":669,"children":670},{"class":79,"line":330},[671,676,680],{"type":38,"tag":77,"props":672,"children":673},{"style":281},[674],{"type":44,"value":675},"    Button",{"type":38,"tag":77,"props":677,"children":678},{"style":90},[679],{"type":44,"value":274},{"type":38,"tag":77,"props":681,"children":682},{"style":90},[683],{"type":44,"value":313},{"type":38,"tag":77,"props":685,"children":686},{"class":79,"line":373},[687,692,696,700,704,709,713],{"type":38,"tag":77,"props":688,"children":689},{"style":281},[690],{"type":44,"value":691},"      props",{"type":38,"tag":77,"props":693,"children":694},{"style":90},[695],{"type":44,"value":274},{"type":38,"tag":77,"props":697,"children":698},{"style":96},[699],{"type":44,"value":580},{"type":38,"tag":77,"props":701,"children":702},{"style":90},[703],{"type":44,"value":401},{"type":38,"tag":77,"props":705,"children":706},{"style":255},[707],{"type":44,"value":708},"object",{"type":38,"tag":77,"props":710,"children":711},{"style":96},[712],{"type":44,"value":263},{"type":38,"tag":77,"props":714,"children":715},{"style":90},[716],{"type":44,"value":717},"{\n",{"type":38,"tag":77,"props":719,"children":720},{"class":79,"line":430},[721,726,730,734,738,743,748],{"type":38,"tag":77,"props":722,"children":723},{"style":281},[724],{"type":44,"value":725},"        label",{"type":38,"tag":77,"props":727,"children":728},{"style":90},[729],{"type":44,"value":274},{"type":38,"tag":77,"props":731,"children":732},{"style":96},[733],{"type":44,"value":580},{"type":38,"tag":77,"props":735,"children":736},{"style":90},[737],{"type":44,"value":401},{"type":38,"tag":77,"props":739,"children":740},{"style":255},[741],{"type":44,"value":742},"string",{"type":38,"tag":77,"props":744,"children":745},{"style":96},[746],{"type":44,"value":747},"()",{"type":38,"tag":77,"props":749,"children":750},{"style":90},[751],{"type":44,"value":752},",\n",{"type":38,"tag":77,"props":754,"children":755},{"class":79,"line":448},[756,761,765,769,773,778,783,787,792,796,800,804,809,813,818,822,827,831],{"type":38,"tag":77,"props":757,"children":758},{"style":281},[759],{"type":44,"value":760},"        variant",{"type":38,"tag":77,"props":762,"children":763},{"style":90},[764],{"type":44,"value":274},{"type":38,"tag":77,"props":766,"children":767},{"style":96},[768],{"type":44,"value":580},{"type":38,"tag":77,"props":770,"children":771},{"style":90},[772],{"type":44,"value":401},{"type":38,"tag":77,"props":774,"children":775},{"style":255},[776],{"type":44,"value":777},"enum",{"type":38,"tag":77,"props":779,"children":780},{"style":96},[781],{"type":44,"value":782},"([",{"type":38,"tag":77,"props":784,"children":785},{"style":90},[786],{"type":44,"value":134},{"type":38,"tag":77,"props":788,"children":789},{"style":127},[790],{"type":44,"value":791},"primary",{"type":38,"tag":77,"props":793,"children":794},{"style":90},[795],{"type":44,"value":134},{"type":38,"tag":77,"props":797,"children":798},{"style":90},[799],{"type":44,"value":104},{"type":38,"tag":77,"props":801,"children":802},{"style":90},[803],{"type":44,"value":124},{"type":38,"tag":77,"props":805,"children":806},{"style":127},[807],{"type":44,"value":808},"secondary",{"type":38,"tag":77,"props":810,"children":811},{"style":90},[812],{"type":44,"value":134},{"type":38,"tag":77,"props":814,"children":815},{"style":96},[816],{"type":44,"value":817},"])",{"type":38,"tag":77,"props":819,"children":820},{"style":90},[821],{"type":44,"value":401},{"type":38,"tag":77,"props":823,"children":824},{"style":255},[825],{"type":44,"value":826},"nullable",{"type":38,"tag":77,"props":828,"children":829},{"style":96},[830],{"type":44,"value":747},{"type":38,"tag":77,"props":832,"children":833},{"style":90},[834],{"type":44,"value":752},{"type":38,"tag":77,"props":836,"children":837},{"class":79,"line":461},[838,843,848],{"type":38,"tag":77,"props":839,"children":840},{"style":90},[841],{"type":44,"value":842},"      }",{"type":38,"tag":77,"props":844,"children":845},{"style":96},[846],{"type":44,"value":847},")",{"type":38,"tag":77,"props":849,"children":850},{"style":90},[851],{"type":44,"value":752},{"type":38,"tag":77,"props":853,"children":855},{"class":79,"line":854},12,[856,861,865,869,874,878],{"type":38,"tag":77,"props":857,"children":858},{"style":281},[859],{"type":44,"value":860},"      description",{"type":38,"tag":77,"props":862,"children":863},{"style":90},[864],{"type":44,"value":274},{"type":38,"tag":77,"props":866,"children":867},{"style":90},[868],{"type":44,"value":124},{"type":38,"tag":77,"props":870,"children":871},{"style":127},[872],{"type":44,"value":873},"Clickable button",{"type":38,"tag":77,"props":875,"children":876},{"style":90},[877],{"type":44,"value":134},{"type":38,"tag":77,"props":879,"children":880},{"style":90},[881],{"type":44,"value":752},{"type":38,"tag":77,"props":883,"children":885},{"class":79,"line":884},13,[886],{"type":38,"tag":77,"props":887,"children":888},{"style":90},[889],{"type":44,"value":890},"    },\n",{"type":38,"tag":77,"props":892,"children":894},{"class":79,"line":893},14,[895,900,904],{"type":38,"tag":77,"props":896,"children":897},{"style":281},[898],{"type":44,"value":899},"    Card",{"type":38,"tag":77,"props":901,"children":902},{"style":90},[903],{"type":44,"value":274},{"type":38,"tag":77,"props":905,"children":906},{"style":90},[907],{"type":44,"value":313},{"type":38,"tag":77,"props":909,"children":911},{"class":79,"line":910},15,[912,916,920,924,928,932,936,941,946,950,954,958,962,967,972,976],{"type":38,"tag":77,"props":913,"children":914},{"style":281},[915],{"type":44,"value":691},{"type":38,"tag":77,"props":917,"children":918},{"style":90},[919],{"type":44,"value":274},{"type":38,"tag":77,"props":921,"children":922},{"style":96},[923],{"type":44,"value":580},{"type":38,"tag":77,"props":925,"children":926},{"style":90},[927],{"type":44,"value":401},{"type":38,"tag":77,"props":929,"children":930},{"style":255},[931],{"type":44,"value":708},{"type":38,"tag":77,"props":933,"children":934},{"style":96},[935],{"type":44,"value":263},{"type":38,"tag":77,"props":937,"children":938},{"style":90},[939],{"type":44,"value":940},"{",{"type":38,"tag":77,"props":942,"children":943},{"style":281},[944],{"type":44,"value":945}," title",{"type":38,"tag":77,"props":947,"children":948},{"style":90},[949],{"type":44,"value":274},{"type":38,"tag":77,"props":951,"children":952},{"style":96},[953],{"type":44,"value":580},{"type":38,"tag":77,"props":955,"children":956},{"style":90},[957],{"type":44,"value":401},{"type":38,"tag":77,"props":959,"children":960},{"style":255},[961],{"type":44,"value":742},{"type":38,"tag":77,"props":963,"children":964},{"style":96},[965],{"type":44,"value":966},"() ",{"type":38,"tag":77,"props":968,"children":969},{"style":90},[970],{"type":44,"value":971},"}",{"type":38,"tag":77,"props":973,"children":974},{"style":96},[975],{"type":44,"value":847},{"type":38,"tag":77,"props":977,"children":978},{"style":90},[979],{"type":44,"value":752},{"type":38,"tag":77,"props":981,"children":983},{"class":79,"line":982},16,[984,988,992,996,1001,1005],{"type":38,"tag":77,"props":985,"children":986},{"style":281},[987],{"type":44,"value":860},{"type":38,"tag":77,"props":989,"children":990},{"style":90},[991],{"type":44,"value":274},{"type":38,"tag":77,"props":993,"children":994},{"style":90},[995],{"type":44,"value":124},{"type":38,"tag":77,"props":997,"children":998},{"style":127},[999],{"type":44,"value":1000},"Card container",{"type":38,"tag":77,"props":1002,"children":1003},{"style":90},[1004],{"type":44,"value":134},{"type":38,"tag":77,"props":1006,"children":1007},{"style":90},[1008],{"type":44,"value":752},{"type":38,"tag":77,"props":1010,"children":1012},{"class":79,"line":1011},17,[1013],{"type":38,"tag":77,"props":1014,"children":1015},{"style":90},[1016],{"type":44,"value":890},{"type":38,"tag":77,"props":1018,"children":1020},{"class":79,"line":1019},18,[1021],{"type":38,"tag":77,"props":1022,"children":1023},{"style":90},[1024],{"type":44,"value":1025},"  },\n",{"type":38,"tag":77,"props":1027,"children":1029},{"class":79,"line":1028},19,[1030,1035,1039],{"type":38,"tag":77,"props":1031,"children":1032},{"style":281},[1033],{"type":44,"value":1034},"  actions",{"type":38,"tag":77,"props":1036,"children":1037},{"style":90},[1038],{"type":44,"value":274},{"type":38,"tag":77,"props":1040,"children":1041},{"style":90},[1042],{"type":44,"value":313},{"type":38,"tag":77,"props":1044,"children":1046},{"class":79,"line":1045},20,[1047,1052,1056,1060,1065,1069,1073,1078,1082],{"type":38,"tag":77,"props":1048,"children":1049},{"style":281},[1050],{"type":44,"value":1051},"    submit",{"type":38,"tag":77,"props":1053,"children":1054},{"style":90},[1055],{"type":44,"value":274},{"type":38,"tag":77,"props":1057,"children":1058},{"style":90},[1059],{"type":44,"value":93},{"type":38,"tag":77,"props":1061,"children":1062},{"style":281},[1063],{"type":44,"value":1064}," description",{"type":38,"tag":77,"props":1066,"children":1067},{"style":90},[1068],{"type":44,"value":274},{"type":38,"tag":77,"props":1070,"children":1071},{"style":90},[1072],{"type":44,"value":124},{"type":38,"tag":77,"props":1074,"children":1075},{"style":127},[1076],{"type":44,"value":1077},"Submit data",{"type":38,"tag":77,"props":1079,"children":1080},{"style":90},[1081],{"type":44,"value":134},{"type":38,"tag":77,"props":1083,"children":1084},{"style":90},[1085],{"type":44,"value":1086}," },\n",{"type":38,"tag":77,"props":1088,"children":1090},{"class":79,"line":1089},21,[1091],{"type":38,"tag":77,"props":1092,"children":1093},{"style":90},[1094],{"type":44,"value":1025},{"type":38,"tag":77,"props":1096,"children":1098},{"class":79,"line":1097},22,[1099,1103,1107],{"type":38,"tag":77,"props":1100,"children":1101},{"style":90},[1102],{"type":44,"value":971},{"type":38,"tag":77,"props":1104,"children":1105},{"style":96},[1106],{"type":44,"value":847},{"type":38,"tag":77,"props":1108,"children":1109},{"style":90},[1110],{"type":44,"value":139},{"type":38,"tag":59,"props":1112,"children":1114},{"id":1113},"define-components",[1115],{"type":44,"value":1116},"Define Components",{"type":38,"tag":47,"props":1118,"children":1119},{},[1120,1122,1128],{"type":44,"value":1121},"Components receive ",{"type":38,"tag":51,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":44,"value":1127},"ComponentRenderProps",{"type":44,"value":1129}," from the renderer:",{"type":38,"tag":66,"props":1131,"children":1135},{"className":1132,"code":1133,"language":1134,"meta":71,"style":71},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","interface ComponentRenderProps\u003CP = Record\u003Cstring, unknown>> {\n  element: UIElement\u003Cstring, P>;\n  children?: JSX.Element;\n  emit: (event: string) => void;\n  on: (event: string) => EventHandle;\n  bindings?: Record\u003Cstring, string>;\n  loading?: boolean;\n}\n","ts",[1136],{"type":38,"tag":51,"props":1137,"children":1138},{"__ignoreMap":71},[1139,1198,1237,1268,1317,1362,1398,1419],{"type":38,"tag":77,"props":1140,"children":1141},{"class":79,"line":80},[1142,1147,1152,1157,1162,1167,1172,1176,1180,1184,1189,1194],{"type":38,"tag":77,"props":1143,"children":1144},{"style":249},[1145],{"type":44,"value":1146},"interface",{"type":38,"tag":77,"props":1148,"children":1149},{"style":291},[1150],{"type":44,"value":1151}," ComponentRenderProps",{"type":38,"tag":77,"props":1153,"children":1154},{"style":90},[1155],{"type":44,"value":1156},"\u003C",{"type":38,"tag":77,"props":1158,"children":1159},{"style":291},[1160],{"type":44,"value":1161},"P",{"type":38,"tag":77,"props":1163,"children":1164},{"style":90},[1165],{"type":44,"value":1166}," =",{"type":38,"tag":77,"props":1168,"children":1169},{"style":291},[1170],{"type":44,"value":1171}," Record",{"type":38,"tag":77,"props":1173,"children":1174},{"style":90},[1175],{"type":44,"value":1156},{"type":38,"tag":77,"props":1177,"children":1178},{"style":291},[1179],{"type":44,"value":742},{"type":38,"tag":77,"props":1181,"children":1182},{"style":90},[1183],{"type":44,"value":104},{"type":38,"tag":77,"props":1185,"children":1186},{"style":291},[1187],{"type":44,"value":1188}," unknown",{"type":38,"tag":77,"props":1190,"children":1191},{"style":90},[1192],{"type":44,"value":1193},">>",{"type":38,"tag":77,"props":1195,"children":1196},{"style":90},[1197],{"type":44,"value":313},{"type":38,"tag":77,"props":1199,"children":1200},{"class":79,"line":142},[1201,1206,1210,1215,1219,1223,1227,1232],{"type":38,"tag":77,"props":1202,"children":1203},{"style":281},[1204],{"type":44,"value":1205},"  element",{"type":38,"tag":77,"props":1207,"children":1208},{"style":90},[1209],{"type":44,"value":274},{"type":38,"tag":77,"props":1211,"children":1212},{"style":291},[1213],{"type":44,"value":1214}," UIElement",{"type":38,"tag":77,"props":1216,"children":1217},{"style":90},[1218],{"type":44,"value":1156},{"type":38,"tag":77,"props":1220,"children":1221},{"style":291},[1222],{"type":44,"value":742},{"type":38,"tag":77,"props":1224,"children":1225},{"style":90},[1226],{"type":44,"value":104},{"type":38,"tag":77,"props":1228,"children":1229},{"style":291},[1230],{"type":44,"value":1231}," P",{"type":38,"tag":77,"props":1233,"children":1234},{"style":90},[1235],{"type":44,"value":1236},">;\n",{"type":38,"tag":77,"props":1238,"children":1239},{"class":79,"line":188},[1240,1245,1250,1255,1259,1264],{"type":38,"tag":77,"props":1241,"children":1242},{"style":281},[1243],{"type":44,"value":1244},"  children",{"type":38,"tag":77,"props":1246,"children":1247},{"style":90},[1248],{"type":44,"value":1249},"?:",{"type":38,"tag":77,"props":1251,"children":1252},{"style":291},[1253],{"type":44,"value":1254}," JSX",{"type":38,"tag":77,"props":1256,"children":1257},{"style":90},[1258],{"type":44,"value":401},{"type":38,"tag":77,"props":1260,"children":1261},{"style":291},[1262],{"type":44,"value":1263},"Element",{"type":38,"tag":77,"props":1265,"children":1266},{"style":90},[1267],{"type":44,"value":139},{"type":38,"tag":77,"props":1269,"children":1270},{"class":79,"line":230},[1271,1276,1280,1285,1290,1294,1299,1303,1308,1313],{"type":38,"tag":77,"props":1272,"children":1273},{"style":281},[1274],{"type":44,"value":1275},"  emit",{"type":38,"tag":77,"props":1277,"children":1278},{"style":90},[1279],{"type":44,"value":274},{"type":38,"tag":77,"props":1281,"children":1282},{"style":90},[1283],{"type":44,"value":1284}," (",{"type":38,"tag":77,"props":1286,"children":1287},{"style":266},[1288],{"type":44,"value":1289},"event",{"type":38,"tag":77,"props":1291,"children":1292},{"style":90},[1293],{"type":44,"value":274},{"type":38,"tag":77,"props":1295,"children":1296},{"style":291},[1297],{"type":44,"value":1298}," string",{"type":38,"tag":77,"props":1300,"children":1301},{"style":90},[1302],{"type":44,"value":847},{"type":38,"tag":77,"props":1304,"children":1305},{"style":249},[1306],{"type":44,"value":1307}," =>",{"type":38,"tag":77,"props":1309,"children":1310},{"style":291},[1311],{"type":44,"value":1312}," void",{"type":38,"tag":77,"props":1314,"children":1315},{"style":90},[1316],{"type":44,"value":139},{"type":38,"tag":77,"props":1318,"children":1319},{"class":79,"line":240},[1320,1325,1329,1333,1337,1341,1345,1349,1353,1358],{"type":38,"tag":77,"props":1321,"children":1322},{"style":281},[1323],{"type":44,"value":1324},"  on",{"type":38,"tag":77,"props":1326,"children":1327},{"style":90},[1328],{"type":44,"value":274},{"type":38,"tag":77,"props":1330,"children":1331},{"style":90},[1332],{"type":44,"value":1284},{"type":38,"tag":77,"props":1334,"children":1335},{"style":266},[1336],{"type":44,"value":1289},{"type":38,"tag":77,"props":1338,"children":1339},{"style":90},[1340],{"type":44,"value":274},{"type":38,"tag":77,"props":1342,"children":1343},{"style":291},[1344],{"type":44,"value":1298},{"type":38,"tag":77,"props":1346,"children":1347},{"style":90},[1348],{"type":44,"value":847},{"type":38,"tag":77,"props":1350,"children":1351},{"style":249},[1352],{"type":44,"value":1307},{"type":38,"tag":77,"props":1354,"children":1355},{"style":291},[1356],{"type":44,"value":1357}," EventHandle",{"type":38,"tag":77,"props":1359,"children":1360},{"style":90},[1361],{"type":44,"value":139},{"type":38,"tag":77,"props":1363,"children":1364},{"class":79,"line":316},[1365,1370,1374,1378,1382,1386,1390,1394],{"type":38,"tag":77,"props":1366,"children":1367},{"style":281},[1368],{"type":44,"value":1369},"  bindings",{"type":38,"tag":77,"props":1371,"children":1372},{"style":90},[1373],{"type":44,"value":1249},{"type":38,"tag":77,"props":1375,"children":1376},{"style":291},[1377],{"type":44,"value":1171},{"type":38,"tag":77,"props":1379,"children":1380},{"style":90},[1381],{"type":44,"value":1156},{"type":38,"tag":77,"props":1383,"children":1384},{"style":291},[1385],{"type":44,"value":742},{"type":38,"tag":77,"props":1387,"children":1388},{"style":90},[1389],{"type":44,"value":104},{"type":38,"tag":77,"props":1391,"children":1392},{"style":291},[1393],{"type":44,"value":1298},{"type":38,"tag":77,"props":1395,"children":1396},{"style":90},[1397],{"type":44,"value":1236},{"type":38,"tag":77,"props":1399,"children":1400},{"class":79,"line":330},[1401,1406,1410,1415],{"type":38,"tag":77,"props":1402,"children":1403},{"style":281},[1404],{"type":44,"value":1405},"  loading",{"type":38,"tag":77,"props":1407,"children":1408},{"style":90},[1409],{"type":44,"value":1249},{"type":38,"tag":77,"props":1411,"children":1412},{"style":291},[1413],{"type":44,"value":1414}," boolean",{"type":38,"tag":77,"props":1416,"children":1417},{"style":90},[1418],{"type":44,"value":139},{"type":38,"tag":77,"props":1420,"children":1421},{"class":79,"line":373},[1422],{"type":38,"tag":77,"props":1423,"children":1424},{"style":90},[1425],{"type":44,"value":467},{"type":38,"tag":47,"props":1427,"children":1428},{},[1429],{"type":44,"value":1430},"Example:",{"type":38,"tag":66,"props":1432,"children":1434},{"className":68,"code":1433,"language":70,"meta":71,"style":71},"import type { BaseComponentProps } from \"@json-render\u002Fsolid\";\n\nexport function Button(props: BaseComponentProps\u003C{ label: string }>) {\n  return (\n    \u003Cbutton onClick={() => props.emit(\"press\")}>{props.props.label}\u003C\u002Fbutton>\n  );\n}\n",[1435],{"type":38,"tag":51,"props":1436,"children":1437},{"__ignoreMap":71},[1438,1482,1489,1548,1559,1659,1670],{"type":38,"tag":77,"props":1439,"children":1440},{"class":79,"line":80},[1441,1445,1449,1453,1458,1462,1466,1470,1474,1478],{"type":38,"tag":77,"props":1442,"children":1443},{"style":84},[1444],{"type":44,"value":87},{"type":38,"tag":77,"props":1446,"children":1447},{"style":84},[1448],{"type":44,"value":152},{"type":38,"tag":77,"props":1450,"children":1451},{"style":90},[1452],{"type":44,"value":93},{"type":38,"tag":77,"props":1454,"children":1455},{"style":96},[1456],{"type":44,"value":1457}," BaseComponentProps",{"type":38,"tag":77,"props":1459,"children":1460},{"style":90},[1461],{"type":44,"value":114},{"type":38,"tag":77,"props":1463,"children":1464},{"style":84},[1465],{"type":44,"value":119},{"type":38,"tag":77,"props":1467,"children":1468},{"style":90},[1469],{"type":44,"value":124},{"type":38,"tag":77,"props":1471,"children":1472},{"style":127},[1473],{"type":44,"value":45},{"type":38,"tag":77,"props":1475,"children":1476},{"style":90},[1477],{"type":44,"value":134},{"type":38,"tag":77,"props":1479,"children":1480},{"style":90},[1481],{"type":44,"value":139},{"type":38,"tag":77,"props":1483,"children":1484},{"class":79,"line":142},[1485],{"type":38,"tag":77,"props":1486,"children":1487},{"emptyLinePlaceholder":234},[1488],{"type":44,"value":237},{"type":38,"tag":77,"props":1490,"children":1491},{"class":79,"line":188},[1492,1496,1500,1505,1509,1513,1517,1521,1526,1531,1535,1539,1544],{"type":38,"tag":77,"props":1493,"children":1494},{"style":84},[1495],{"type":44,"value":246},{"type":38,"tag":77,"props":1497,"children":1498},{"style":249},[1499],{"type":44,"value":252},{"type":38,"tag":77,"props":1501,"children":1502},{"style":255},[1503],{"type":44,"value":1504}," Button",{"type":38,"tag":77,"props":1506,"children":1507},{"style":90},[1508],{"type":44,"value":263},{"type":38,"tag":77,"props":1510,"children":1511},{"style":266},[1512],{"type":44,"value":269},{"type":38,"tag":77,"props":1514,"children":1515},{"style":90},[1516],{"type":44,"value":274},{"type":38,"tag":77,"props":1518,"children":1519},{"style":291},[1520],{"type":44,"value":1457},{"type":38,"tag":77,"props":1522,"children":1523},{"style":90},[1524],{"type":44,"value":1525},"\u003C{",{"type":38,"tag":77,"props":1527,"children":1528},{"style":281},[1529],{"type":44,"value":1530}," label",{"type":38,"tag":77,"props":1532,"children":1533},{"style":90},[1534],{"type":44,"value":274},{"type":38,"tag":77,"props":1536,"children":1537},{"style":291},[1538],{"type":44,"value":1298},{"type":38,"tag":77,"props":1540,"children":1541},{"style":90},[1542],{"type":44,"value":1543}," }>)",{"type":38,"tag":77,"props":1545,"children":1546},{"style":90},[1547],{"type":44,"value":313},{"type":38,"tag":77,"props":1549,"children":1550},{"class":79,"line":230},[1551,1555],{"type":38,"tag":77,"props":1552,"children":1553},{"style":84},[1554],{"type":44,"value":322},{"type":38,"tag":77,"props":1556,"children":1557},{"style":281},[1558],{"type":44,"value":327},{"type":38,"tag":77,"props":1560,"children":1561},{"class":79,"line":240},[1562,1566,1571,1576,1581,1585,1590,1594,1599,1603,1607,1612,1616,1620,1625,1629,1633,1637,1641,1646,1651,1655],{"type":38,"tag":77,"props":1563,"children":1564},{"style":90},[1565],{"type":44,"value":336},{"type":38,"tag":77,"props":1567,"children":1568},{"style":281},[1569],{"type":44,"value":1570},"button",{"type":38,"tag":77,"props":1572,"children":1573},{"style":249},[1574],{"type":44,"value":1575}," onClick",{"type":38,"tag":77,"props":1577,"children":1578},{"style":90},[1579],{"type":44,"value":1580},"={()",{"type":38,"tag":77,"props":1582,"children":1583},{"style":249},[1584],{"type":44,"value":1307},{"type":38,"tag":77,"props":1586,"children":1587},{"style":96},[1588],{"type":44,"value":1589}," props",{"type":38,"tag":77,"props":1591,"children":1592},{"style":90},[1593],{"type":44,"value":401},{"type":38,"tag":77,"props":1595,"children":1596},{"style":255},[1597],{"type":44,"value":1598},"emit",{"type":38,"tag":77,"props":1600,"children":1601},{"style":96},[1602],{"type":44,"value":263},{"type":38,"tag":77,"props":1604,"children":1605},{"style":90},[1606],{"type":44,"value":134},{"type":38,"tag":77,"props":1608,"children":1609},{"style":127},[1610],{"type":44,"value":1611},"press",{"type":38,"tag":77,"props":1613,"children":1614},{"style":90},[1615],{"type":44,"value":134},{"type":38,"tag":77,"props":1617,"children":1618},{"style":96},[1619],{"type":44,"value":847},{"type":38,"tag":77,"props":1621,"children":1622},{"style":90},[1623],{"type":44,"value":1624},"}>{",{"type":38,"tag":77,"props":1626,"children":1627},{"style":96},[1628],{"type":44,"value":269},{"type":38,"tag":77,"props":1630,"children":1631},{"style":90},[1632],{"type":44,"value":401},{"type":38,"tag":77,"props":1634,"children":1635},{"style":96},[1636],{"type":44,"value":269},{"type":38,"tag":77,"props":1638,"children":1639},{"style":90},[1640],{"type":44,"value":401},{"type":38,"tag":77,"props":1642,"children":1643},{"style":96},[1644],{"type":44,"value":1645},"label",{"type":38,"tag":77,"props":1647,"children":1648},{"style":90},[1649],{"type":44,"value":1650},"}\u003C\u002F",{"type":38,"tag":77,"props":1652,"children":1653},{"style":281},[1654],{"type":44,"value":1570},{"type":38,"tag":77,"props":1656,"children":1657},{"style":90},[1658],{"type":44,"value":445},{"type":38,"tag":77,"props":1660,"children":1661},{"class":79,"line":316},[1662,1666],{"type":38,"tag":77,"props":1663,"children":1664},{"style":281},[1665],{"type":44,"value":454},{"type":38,"tag":77,"props":1667,"children":1668},{"style":90},[1669],{"type":44,"value":139},{"type":38,"tag":77,"props":1671,"children":1672},{"class":79,"line":330},[1673],{"type":38,"tag":77,"props":1674,"children":1675},{"style":90},[1676],{"type":44,"value":467},{"type":38,"tag":59,"props":1678,"children":1680},{"id":1679},"create-a-registry",[1681],{"type":44,"value":1682},"Create a Registry",{"type":38,"tag":66,"props":1684,"children":1686},{"className":476,"code":1685,"language":478,"meta":71,"style":71},"import { defineRegistry } from \"@json-render\u002Fsolid\";\nimport { catalog } from \".\u002Fcatalog\";\nimport { Card } from \".\u002FCard\";\nimport { Button } from \".\u002FButton\";\n\nconst { registry, handlers, executeAction } = defineRegistry(catalog, {\n  components: {\n    Card,\n    Button,\n  },\n  actions: {\n    submit: async (params, setState, state) => {\n      \u002F\u002F custom action logic\n    },\n  },\n});\n",[1687],{"type":38,"tag":51,"props":1688,"children":1689},{"__ignoreMap":71},[1690,1730,1771,1812,1852,1859,1918,1933,1944,1955,1962,1977,2032,2041,2048,2055],{"type":38,"tag":77,"props":1691,"children":1692},{"class":79,"line":80},[1693,1697,1701,1706,1710,1714,1718,1722,1726],{"type":38,"tag":77,"props":1694,"children":1695},{"style":84},[1696],{"type":44,"value":87},{"type":38,"tag":77,"props":1698,"children":1699},{"style":90},[1700],{"type":44,"value":93},{"type":38,"tag":77,"props":1702,"children":1703},{"style":96},[1704],{"type":44,"value":1705}," defineRegistry",{"type":38,"tag":77,"props":1707,"children":1708},{"style":90},[1709],{"type":44,"value":114},{"type":38,"tag":77,"props":1711,"children":1712},{"style":84},[1713],{"type":44,"value":119},{"type":38,"tag":77,"props":1715,"children":1716},{"style":90},[1717],{"type":44,"value":124},{"type":38,"tag":77,"props":1719,"children":1720},{"style":127},[1721],{"type":44,"value":45},{"type":38,"tag":77,"props":1723,"children":1724},{"style":90},[1725],{"type":44,"value":134},{"type":38,"tag":77,"props":1727,"children":1728},{"style":90},[1729],{"type":44,"value":139},{"type":38,"tag":77,"props":1731,"children":1732},{"class":79,"line":142},[1733,1737,1741,1746,1750,1754,1758,1763,1767],{"type":38,"tag":77,"props":1734,"children":1735},{"style":84},[1736],{"type":44,"value":87},{"type":38,"tag":77,"props":1738,"children":1739},{"style":90},[1740],{"type":44,"value":93},{"type":38,"tag":77,"props":1742,"children":1743},{"style":96},[1744],{"type":44,"value":1745}," catalog",{"type":38,"tag":77,"props":1747,"children":1748},{"style":90},[1749],{"type":44,"value":114},{"type":38,"tag":77,"props":1751,"children":1752},{"style":84},[1753],{"type":44,"value":119},{"type":38,"tag":77,"props":1755,"children":1756},{"style":90},[1757],{"type":44,"value":124},{"type":38,"tag":77,"props":1759,"children":1760},{"style":127},[1761],{"type":44,"value":1762},".\u002Fcatalog",{"type":38,"tag":77,"props":1764,"children":1765},{"style":90},[1766],{"type":44,"value":134},{"type":38,"tag":77,"props":1768,"children":1769},{"style":90},[1770],{"type":44,"value":139},{"type":38,"tag":77,"props":1772,"children":1773},{"class":79,"line":188},[1774,1778,1782,1787,1791,1795,1799,1804,1808],{"type":38,"tag":77,"props":1775,"children":1776},{"style":84},[1777],{"type":44,"value":87},{"type":38,"tag":77,"props":1779,"children":1780},{"style":90},[1781],{"type":44,"value":93},{"type":38,"tag":77,"props":1783,"children":1784},{"style":96},[1785],{"type":44,"value":1786}," Card",{"type":38,"tag":77,"props":1788,"children":1789},{"style":90},[1790],{"type":44,"value":114},{"type":38,"tag":77,"props":1792,"children":1793},{"style":84},[1794],{"type":44,"value":119},{"type":38,"tag":77,"props":1796,"children":1797},{"style":90},[1798],{"type":44,"value":124},{"type":38,"tag":77,"props":1800,"children":1801},{"style":127},[1802],{"type":44,"value":1803},".\u002FCard",{"type":38,"tag":77,"props":1805,"children":1806},{"style":90},[1807],{"type":44,"value":134},{"type":38,"tag":77,"props":1809,"children":1810},{"style":90},[1811],{"type":44,"value":139},{"type":38,"tag":77,"props":1813,"children":1814},{"class":79,"line":230},[1815,1819,1823,1827,1831,1835,1839,1844,1848],{"type":38,"tag":77,"props":1816,"children":1817},{"style":84},[1818],{"type":44,"value":87},{"type":38,"tag":77,"props":1820,"children":1821},{"style":90},[1822],{"type":44,"value":93},{"type":38,"tag":77,"props":1824,"children":1825},{"style":96},[1826],{"type":44,"value":1504},{"type":38,"tag":77,"props":1828,"children":1829},{"style":90},[1830],{"type":44,"value":114},{"type":38,"tag":77,"props":1832,"children":1833},{"style":84},[1834],{"type":44,"value":119},{"type":38,"tag":77,"props":1836,"children":1837},{"style":90},[1838],{"type":44,"value":124},{"type":38,"tag":77,"props":1840,"children":1841},{"style":127},[1842],{"type":44,"value":1843},".\u002FButton",{"type":38,"tag":77,"props":1845,"children":1846},{"style":90},[1847],{"type":44,"value":134},{"type":38,"tag":77,"props":1849,"children":1850},{"style":90},[1851],{"type":44,"value":139},{"type":38,"tag":77,"props":1853,"children":1854},{"class":79,"line":240},[1855],{"type":38,"tag":77,"props":1856,"children":1857},{"emptyLinePlaceholder":234},[1858],{"type":44,"value":237},{"type":38,"tag":77,"props":1860,"children":1861},{"class":79,"line":316},[1862,1867,1871,1875,1879,1884,1888,1893,1897,1901,1905,1910,1914],{"type":38,"tag":77,"props":1863,"children":1864},{"style":249},[1865],{"type":44,"value":1866},"const",{"type":38,"tag":77,"props":1868,"children":1869},{"style":90},[1870],{"type":44,"value":93},{"type":38,"tag":77,"props":1872,"children":1873},{"style":96},[1874],{"type":44,"value":202},{"type":38,"tag":77,"props":1876,"children":1877},{"style":90},[1878],{"type":44,"value":104},{"type":38,"tag":77,"props":1880,"children":1881},{"style":96},[1882],{"type":44,"value":1883}," handlers",{"type":38,"tag":77,"props":1885,"children":1886},{"style":90},[1887],{"type":44,"value":104},{"type":38,"tag":77,"props":1889,"children":1890},{"style":96},[1891],{"type":44,"value":1892}," executeAction ",{"type":38,"tag":77,"props":1894,"children":1895},{"style":90},[1896],{"type":44,"value":971},{"type":38,"tag":77,"props":1898,"children":1899},{"style":90},[1900],{"type":44,"value":1166},{"type":38,"tag":77,"props":1902,"children":1903},{"style":255},[1904],{"type":44,"value":1705},{"type":38,"tag":77,"props":1906,"children":1907},{"style":96},[1908],{"type":44,"value":1909},"(catalog",{"type":38,"tag":77,"props":1911,"children":1912},{"style":90},[1913],{"type":44,"value":104},{"type":38,"tag":77,"props":1915,"children":1916},{"style":90},[1917],{"type":44,"value":313},{"type":38,"tag":77,"props":1919,"children":1920},{"class":79,"line":330},[1921,1925,1929],{"type":38,"tag":77,"props":1922,"children":1923},{"style":281},[1924],{"type":44,"value":659},{"type":38,"tag":77,"props":1926,"children":1927},{"style":90},[1928],{"type":44,"value":274},{"type":38,"tag":77,"props":1930,"children":1931},{"style":90},[1932],{"type":44,"value":313},{"type":38,"tag":77,"props":1934,"children":1935},{"class":79,"line":373},[1936,1940],{"type":38,"tag":77,"props":1937,"children":1938},{"style":96},[1939],{"type":44,"value":899},{"type":38,"tag":77,"props":1941,"children":1942},{"style":90},[1943],{"type":44,"value":752},{"type":38,"tag":77,"props":1945,"children":1946},{"class":79,"line":430},[1947,1951],{"type":38,"tag":77,"props":1948,"children":1949},{"style":96},[1950],{"type":44,"value":675},{"type":38,"tag":77,"props":1952,"children":1953},{"style":90},[1954],{"type":44,"value":752},{"type":38,"tag":77,"props":1956,"children":1957},{"class":79,"line":448},[1958],{"type":38,"tag":77,"props":1959,"children":1960},{"style":90},[1961],{"type":44,"value":1025},{"type":38,"tag":77,"props":1963,"children":1964},{"class":79,"line":461},[1965,1969,1973],{"type":38,"tag":77,"props":1966,"children":1967},{"style":281},[1968],{"type":44,"value":1034},{"type":38,"tag":77,"props":1970,"children":1971},{"style":90},[1972],{"type":44,"value":274},{"type":38,"tag":77,"props":1974,"children":1975},{"style":90},[1976],{"type":44,"value":313},{"type":38,"tag":77,"props":1978,"children":1979},{"class":79,"line":854},[1980,1984,1988,1993,1997,2002,2006,2011,2015,2020,2024,2028],{"type":38,"tag":77,"props":1981,"children":1982},{"style":255},[1983],{"type":44,"value":1051},{"type":38,"tag":77,"props":1985,"children":1986},{"style":90},[1987],{"type":44,"value":274},{"type":38,"tag":77,"props":1989,"children":1990},{"style":249},[1991],{"type":44,"value":1992}," async",{"type":38,"tag":77,"props":1994,"children":1995},{"style":90},[1996],{"type":44,"value":1284},{"type":38,"tag":77,"props":1998,"children":1999},{"style":266},[2000],{"type":44,"value":2001},"params",{"type":38,"tag":77,"props":2003,"children":2004},{"style":90},[2005],{"type":44,"value":104},{"type":38,"tag":77,"props":2007,"children":2008},{"style":266},[2009],{"type":44,"value":2010}," setState",{"type":38,"tag":77,"props":2012,"children":2013},{"style":90},[2014],{"type":44,"value":104},{"type":38,"tag":77,"props":2016,"children":2017},{"style":266},[2018],{"type":44,"value":2019}," state",{"type":38,"tag":77,"props":2021,"children":2022},{"style":90},[2023],{"type":44,"value":847},{"type":38,"tag":77,"props":2025,"children":2026},{"style":249},[2027],{"type":44,"value":1307},{"type":38,"tag":77,"props":2029,"children":2030},{"style":90},[2031],{"type":44,"value":313},{"type":38,"tag":77,"props":2033,"children":2034},{"class":79,"line":884},[2035],{"type":38,"tag":77,"props":2036,"children":2038},{"style":2037},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2039],{"type":44,"value":2040},"      \u002F\u002F custom action logic\n",{"type":38,"tag":77,"props":2042,"children":2043},{"class":79,"line":893},[2044],{"type":38,"tag":77,"props":2045,"children":2046},{"style":90},[2047],{"type":44,"value":890},{"type":38,"tag":77,"props":2049,"children":2050},{"class":79,"line":910},[2051],{"type":38,"tag":77,"props":2052,"children":2053},{"style":90},[2054],{"type":44,"value":1025},{"type":38,"tag":77,"props":2056,"children":2057},{"class":79,"line":982},[2058,2062,2066],{"type":38,"tag":77,"props":2059,"children":2060},{"style":90},[2061],{"type":44,"value":971},{"type":38,"tag":77,"props":2063,"children":2064},{"style":96},[2065],{"type":44,"value":847},{"type":38,"tag":77,"props":2067,"children":2068},{"style":90},[2069],{"type":44,"value":139},{"type":38,"tag":59,"props":2071,"children":2073},{"id":2072},"spec-structure",[2074],{"type":44,"value":2075},"Spec Structure",{"type":38,"tag":66,"props":2077,"children":2081},{"className":2078,"code":2079,"language":2080,"meta":71,"style":71},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"root\": \"card1\",\n  \"elements\": {\n    \"card1\": {\n      \"type\": \"Card\",\n      \"props\": { \"title\": \"Hello\" },\n      \"children\": [\"btn1\"]\n    },\n    \"btn1\": {\n      \"type\": \"Button\",\n      \"props\": { \"label\": \"Click me\" },\n      \"on\": {\n        \"press\": { \"action\": \"submit\" }\n      }\n    }\n  }\n}\n","json",[2082],{"type":38,"tag":51,"props":2083,"children":2084},{"__ignoreMap":71},[2085,2092,2129,2153,2177,2216,2273,2316,2323,2346,2382,2438,2462,2522,2530,2538,2546],{"type":38,"tag":77,"props":2086,"children":2087},{"class":79,"line":80},[2088],{"type":38,"tag":77,"props":2089,"children":2090},{"style":90},[2091],{"type":44,"value":717},{"type":38,"tag":77,"props":2093,"children":2094},{"class":79,"line":142},[2095,2100,2104,2108,2112,2116,2121,2125],{"type":38,"tag":77,"props":2096,"children":2097},{"style":90},[2098],{"type":44,"value":2099},"  \"",{"type":38,"tag":77,"props":2101,"children":2102},{"style":249},[2103],{"type":44,"value":35},{"type":38,"tag":77,"props":2105,"children":2106},{"style":90},[2107],{"type":44,"value":134},{"type":38,"tag":77,"props":2109,"children":2110},{"style":90},[2111],{"type":44,"value":274},{"type":38,"tag":77,"props":2113,"children":2114},{"style":90},[2115],{"type":44,"value":124},{"type":38,"tag":77,"props":2117,"children":2118},{"style":127},[2119],{"type":44,"value":2120},"card1",{"type":38,"tag":77,"props":2122,"children":2123},{"style":90},[2124],{"type":44,"value":134},{"type":38,"tag":77,"props":2126,"children":2127},{"style":90},[2128],{"type":44,"value":752},{"type":38,"tag":77,"props":2130,"children":2131},{"class":79,"line":188},[2132,2136,2141,2145,2149],{"type":38,"tag":77,"props":2133,"children":2134},{"style":90},[2135],{"type":44,"value":2099},{"type":38,"tag":77,"props":2137,"children":2138},{"style":249},[2139],{"type":44,"value":2140},"elements",{"type":38,"tag":77,"props":2142,"children":2143},{"style":90},[2144],{"type":44,"value":134},{"type":38,"tag":77,"props":2146,"children":2147},{"style":90},[2148],{"type":44,"value":274},{"type":38,"tag":77,"props":2150,"children":2151},{"style":90},[2152],{"type":44,"value":313},{"type":38,"tag":77,"props":2154,"children":2155},{"class":79,"line":230},[2156,2161,2165,2169,2173],{"type":38,"tag":77,"props":2157,"children":2158},{"style":90},[2159],{"type":44,"value":2160},"    \"",{"type":38,"tag":77,"props":2162,"children":2163},{"style":291},[2164],{"type":44,"value":2120},{"type":38,"tag":77,"props":2166,"children":2167},{"style":90},[2168],{"type":44,"value":134},{"type":38,"tag":77,"props":2170,"children":2171},{"style":90},[2172],{"type":44,"value":274},{"type":38,"tag":77,"props":2174,"children":2175},{"style":90},[2176],{"type":44,"value":313},{"type":38,"tag":77,"props":2178,"children":2179},{"class":79,"line":240},[2180,2185,2191,2195,2199,2203,2208,2212],{"type":38,"tag":77,"props":2181,"children":2182},{"style":90},[2183],{"type":44,"value":2184},"      \"",{"type":38,"tag":77,"props":2186,"children":2188},{"style":2187},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[2189],{"type":44,"value":2190},"type",{"type":38,"tag":77,"props":2192,"children":2193},{"style":90},[2194],{"type":44,"value":134},{"type":38,"tag":77,"props":2196,"children":2197},{"style":90},[2198],{"type":44,"value":274},{"type":38,"tag":77,"props":2200,"children":2201},{"style":90},[2202],{"type":44,"value":124},{"type":38,"tag":77,"props":2204,"children":2205},{"style":127},[2206],{"type":44,"value":2207},"Card",{"type":38,"tag":77,"props":2209,"children":2210},{"style":90},[2211],{"type":44,"value":134},{"type":38,"tag":77,"props":2213,"children":2214},{"style":90},[2215],{"type":44,"value":752},{"type":38,"tag":77,"props":2217,"children":2218},{"class":79,"line":316},[2219,2223,2227,2231,2235,2239,2243,2248,2252,2256,2260,2265,2269],{"type":38,"tag":77,"props":2220,"children":2221},{"style":90},[2222],{"type":44,"value":2184},{"type":38,"tag":77,"props":2224,"children":2225},{"style":2187},[2226],{"type":44,"value":269},{"type":38,"tag":77,"props":2228,"children":2229},{"style":90},[2230],{"type":44,"value":134},{"type":38,"tag":77,"props":2232,"children":2233},{"style":90},[2234],{"type":44,"value":274},{"type":38,"tag":77,"props":2236,"children":2237},{"style":90},[2238],{"type":44,"value":93},{"type":38,"tag":77,"props":2240,"children":2241},{"style":90},[2242],{"type":44,"value":124},{"type":38,"tag":77,"props":2244,"children":2245},{"style":281},[2246],{"type":44,"value":2247},"title",{"type":38,"tag":77,"props":2249,"children":2250},{"style":90},[2251],{"type":44,"value":134},{"type":38,"tag":77,"props":2253,"children":2254},{"style":90},[2255],{"type":44,"value":274},{"type":38,"tag":77,"props":2257,"children":2258},{"style":90},[2259],{"type":44,"value":124},{"type":38,"tag":77,"props":2261,"children":2262},{"style":127},[2263],{"type":44,"value":2264},"Hello",{"type":38,"tag":77,"props":2266,"children":2267},{"style":90},[2268],{"type":44,"value":134},{"type":38,"tag":77,"props":2270,"children":2271},{"style":90},[2272],{"type":44,"value":1086},{"type":38,"tag":77,"props":2274,"children":2275},{"class":79,"line":330},[2276,2280,2285,2289,2293,2298,2302,2307,2311],{"type":38,"tag":77,"props":2277,"children":2278},{"style":90},[2279],{"type":44,"value":2184},{"type":38,"tag":77,"props":2281,"children":2282},{"style":2187},[2283],{"type":44,"value":2284},"children",{"type":38,"tag":77,"props":2286,"children":2287},{"style":90},[2288],{"type":44,"value":134},{"type":38,"tag":77,"props":2290,"children":2291},{"style":90},[2292],{"type":44,"value":274},{"type":38,"tag":77,"props":2294,"children":2295},{"style":90},[2296],{"type":44,"value":2297}," [",{"type":38,"tag":77,"props":2299,"children":2300},{"style":90},[2301],{"type":44,"value":134},{"type":38,"tag":77,"props":2303,"children":2304},{"style":127},[2305],{"type":44,"value":2306},"btn1",{"type":38,"tag":77,"props":2308,"children":2309},{"style":90},[2310],{"type":44,"value":134},{"type":38,"tag":77,"props":2312,"children":2313},{"style":90},[2314],{"type":44,"value":2315},"]\n",{"type":38,"tag":77,"props":2317,"children":2318},{"class":79,"line":373},[2319],{"type":38,"tag":77,"props":2320,"children":2321},{"style":90},[2322],{"type":44,"value":890},{"type":38,"tag":77,"props":2324,"children":2325},{"class":79,"line":430},[2326,2330,2334,2338,2342],{"type":38,"tag":77,"props":2327,"children":2328},{"style":90},[2329],{"type":44,"value":2160},{"type":38,"tag":77,"props":2331,"children":2332},{"style":291},[2333],{"type":44,"value":2306},{"type":38,"tag":77,"props":2335,"children":2336},{"style":90},[2337],{"type":44,"value":134},{"type":38,"tag":77,"props":2339,"children":2340},{"style":90},[2341],{"type":44,"value":274},{"type":38,"tag":77,"props":2343,"children":2344},{"style":90},[2345],{"type":44,"value":313},{"type":38,"tag":77,"props":2347,"children":2348},{"class":79,"line":448},[2349,2353,2357,2361,2365,2369,2374,2378],{"type":38,"tag":77,"props":2350,"children":2351},{"style":90},[2352],{"type":44,"value":2184},{"type":38,"tag":77,"props":2354,"children":2355},{"style":2187},[2356],{"type":44,"value":2190},{"type":38,"tag":77,"props":2358,"children":2359},{"style":90},[2360],{"type":44,"value":134},{"type":38,"tag":77,"props":2362,"children":2363},{"style":90},[2364],{"type":44,"value":274},{"type":38,"tag":77,"props":2366,"children":2367},{"style":90},[2368],{"type":44,"value":124},{"type":38,"tag":77,"props":2370,"children":2371},{"style":127},[2372],{"type":44,"value":2373},"Button",{"type":38,"tag":77,"props":2375,"children":2376},{"style":90},[2377],{"type":44,"value":134},{"type":38,"tag":77,"props":2379,"children":2380},{"style":90},[2381],{"type":44,"value":752},{"type":38,"tag":77,"props":2383,"children":2384},{"class":79,"line":461},[2385,2389,2393,2397,2401,2405,2409,2413,2417,2421,2425,2430,2434],{"type":38,"tag":77,"props":2386,"children":2387},{"style":90},[2388],{"type":44,"value":2184},{"type":38,"tag":77,"props":2390,"children":2391},{"style":2187},[2392],{"type":44,"value":269},{"type":38,"tag":77,"props":2394,"children":2395},{"style":90},[2396],{"type":44,"value":134},{"type":38,"tag":77,"props":2398,"children":2399},{"style":90},[2400],{"type":44,"value":274},{"type":38,"tag":77,"props":2402,"children":2403},{"style":90},[2404],{"type":44,"value":93},{"type":38,"tag":77,"props":2406,"children":2407},{"style":90},[2408],{"type":44,"value":124},{"type":38,"tag":77,"props":2410,"children":2411},{"style":281},[2412],{"type":44,"value":1645},{"type":38,"tag":77,"props":2414,"children":2415},{"style":90},[2416],{"type":44,"value":134},{"type":38,"tag":77,"props":2418,"children":2419},{"style":90},[2420],{"type":44,"value":274},{"type":38,"tag":77,"props":2422,"children":2423},{"style":90},[2424],{"type":44,"value":124},{"type":38,"tag":77,"props":2426,"children":2427},{"style":127},[2428],{"type":44,"value":2429},"Click me",{"type":38,"tag":77,"props":2431,"children":2432},{"style":90},[2433],{"type":44,"value":134},{"type":38,"tag":77,"props":2435,"children":2436},{"style":90},[2437],{"type":44,"value":1086},{"type":38,"tag":77,"props":2439,"children":2440},{"class":79,"line":854},[2441,2445,2450,2454,2458],{"type":38,"tag":77,"props":2442,"children":2443},{"style":90},[2444],{"type":44,"value":2184},{"type":38,"tag":77,"props":2446,"children":2447},{"style":2187},[2448],{"type":44,"value":2449},"on",{"type":38,"tag":77,"props":2451,"children":2452},{"style":90},[2453],{"type":44,"value":134},{"type":38,"tag":77,"props":2455,"children":2456},{"style":90},[2457],{"type":44,"value":274},{"type":38,"tag":77,"props":2459,"children":2460},{"style":90},[2461],{"type":44,"value":313},{"type":38,"tag":77,"props":2463,"children":2464},{"class":79,"line":884},[2465,2470,2474,2478,2482,2486,2490,2496,2500,2504,2508,2513,2517],{"type":38,"tag":77,"props":2466,"children":2467},{"style":90},[2468],{"type":44,"value":2469},"        \"",{"type":38,"tag":77,"props":2471,"children":2472},{"style":281},[2473],{"type":44,"value":1611},{"type":38,"tag":77,"props":2475,"children":2476},{"style":90},[2477],{"type":44,"value":134},{"type":38,"tag":77,"props":2479,"children":2480},{"style":90},[2481],{"type":44,"value":274},{"type":38,"tag":77,"props":2483,"children":2484},{"style":90},[2485],{"type":44,"value":93},{"type":38,"tag":77,"props":2487,"children":2488},{"style":90},[2489],{"type":44,"value":124},{"type":38,"tag":77,"props":2491,"children":2493},{"style":2492},"--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53",[2494],{"type":44,"value":2495},"action",{"type":38,"tag":77,"props":2497,"children":2498},{"style":90},[2499],{"type":44,"value":134},{"type":38,"tag":77,"props":2501,"children":2502},{"style":90},[2503],{"type":44,"value":274},{"type":38,"tag":77,"props":2505,"children":2506},{"style":90},[2507],{"type":44,"value":124},{"type":38,"tag":77,"props":2509,"children":2510},{"style":127},[2511],{"type":44,"value":2512},"submit",{"type":38,"tag":77,"props":2514,"children":2515},{"style":90},[2516],{"type":44,"value":134},{"type":38,"tag":77,"props":2518,"children":2519},{"style":90},[2520],{"type":44,"value":2521}," }\n",{"type":38,"tag":77,"props":2523,"children":2524},{"class":79,"line":893},[2525],{"type":38,"tag":77,"props":2526,"children":2527},{"style":90},[2528],{"type":44,"value":2529},"      }\n",{"type":38,"tag":77,"props":2531,"children":2532},{"class":79,"line":910},[2533],{"type":38,"tag":77,"props":2534,"children":2535},{"style":90},[2536],{"type":44,"value":2537},"    }\n",{"type":38,"tag":77,"props":2539,"children":2540},{"class":79,"line":982},[2541],{"type":38,"tag":77,"props":2542,"children":2543},{"style":90},[2544],{"type":44,"value":2545},"  }\n",{"type":38,"tag":77,"props":2547,"children":2548},{"class":79,"line":1011},[2549],{"type":38,"tag":77,"props":2550,"children":2551},{"style":90},[2552],{"type":44,"value":467},{"type":38,"tag":59,"props":2554,"children":2556},{"id":2555},"providers",[2557],{"type":44,"value":2558},"Providers",{"type":38,"tag":2560,"props":2561,"children":2562},"ul",{},[2563,2581,2600,2619,2630],{"type":38,"tag":2564,"props":2565,"children":2566},"li",{},[2567,2573,2575],{"type":38,"tag":51,"props":2568,"children":2570},{"className":2569},[],[2571],{"type":44,"value":2572},"StateProvider",{"type":44,"value":2574},": state model read\u002Fwrite and controlled mode via ",{"type":38,"tag":51,"props":2576,"children":2578},{"className":2577},[],[2579],{"type":44,"value":2580},"store",{"type":38,"tag":2564,"props":2582,"children":2583},{},[2584,2590,2592,2598],{"type":38,"tag":51,"props":2585,"children":2587},{"className":2586},[],[2588],{"type":44,"value":2589},"VisibilityProvider",{"type":44,"value":2591},": evaluates ",{"type":38,"tag":51,"props":2593,"children":2595},{"className":2594},[],[2596],{"type":44,"value":2597},"visible",{"type":44,"value":2599}," conditions",{"type":38,"tag":2564,"props":2601,"children":2602},{},[2603,2609,2611,2617],{"type":38,"tag":51,"props":2604,"children":2606},{"className":2605},[],[2607],{"type":44,"value":2608},"ValidationProvider",{"type":44,"value":2610},": field validation + ",{"type":38,"tag":51,"props":2612,"children":2614},{"className":2613},[],[2615],{"type":44,"value":2616},"validateForm",{"type":44,"value":2618}," integration",{"type":38,"tag":2564,"props":2620,"children":2621},{},[2622,2628],{"type":38,"tag":51,"props":2623,"children":2625},{"className":2624},[],[2626],{"type":44,"value":2627},"ActionProvider",{"type":44,"value":2629},": runs built-in and custom actions",{"type":38,"tag":2564,"props":2631,"children":2632},{},[2633,2638],{"type":38,"tag":51,"props":2634,"children":2636},{"className":2635},[],[2637],{"type":44,"value":341},{"type":44,"value":2639},": combined provider wrapper",{"type":38,"tag":59,"props":2641,"children":2643},{"id":2642},"hooks",[2644],{"type":44,"value":2645},"Hooks",{"type":38,"tag":2560,"props":2647,"children":2648},{},[2649,2673,2689,2705,2728,2737],{"type":38,"tag":2564,"props":2650,"children":2651},{},[2652,2658,2660,2666,2667],{"type":38,"tag":51,"props":2653,"children":2655},{"className":2654},[],[2656],{"type":44,"value":2657},"useStateStore",{"type":44,"value":2659},", ",{"type":38,"tag":51,"props":2661,"children":2663},{"className":2662},[],[2664],{"type":44,"value":2665},"useStateValue",{"type":44,"value":2659},{"type":38,"tag":51,"props":2668,"children":2670},{"className":2669},[],[2671],{"type":44,"value":2672},"useStateBinding",{"type":38,"tag":2564,"props":2674,"children":2675},{},[2676,2682,2683],{"type":38,"tag":51,"props":2677,"children":2679},{"className":2678},[],[2680],{"type":44,"value":2681},"useVisibility",{"type":44,"value":2659},{"type":38,"tag":51,"props":2684,"children":2686},{"className":2685},[],[2687],{"type":44,"value":2688},"useIsVisible",{"type":38,"tag":2564,"props":2690,"children":2691},{},[2692,2698,2699],{"type":38,"tag":51,"props":2693,"children":2695},{"className":2694},[],[2696],{"type":44,"value":2697},"useActions",{"type":44,"value":2659},{"type":38,"tag":51,"props":2700,"children":2702},{"className":2701},[],[2703],{"type":44,"value":2704},"useAction",{"type":38,"tag":2564,"props":2706,"children":2707},{},[2708,2714,2715,2721,2722],{"type":38,"tag":51,"props":2709,"children":2711},{"className":2710},[],[2712],{"type":44,"value":2713},"useValidation",{"type":44,"value":2659},{"type":38,"tag":51,"props":2716,"children":2718},{"className":2717},[],[2719],{"type":44,"value":2720},"useOptionalValidation",{"type":44,"value":2659},{"type":38,"tag":51,"props":2723,"children":2725},{"className":2724},[],[2726],{"type":44,"value":2727},"useFieldValidation",{"type":38,"tag":2564,"props":2729,"children":2730},{},[2731],{"type":38,"tag":51,"props":2732,"children":2734},{"className":2733},[],[2735],{"type":44,"value":2736},"useBoundProp",{"type":38,"tag":2564,"props":2738,"children":2739},{},[2740,2746,2747],{"type":38,"tag":51,"props":2741,"children":2743},{"className":2742},[],[2744],{"type":44,"value":2745},"useUIStream",{"type":44,"value":2659},{"type":38,"tag":51,"props":2748,"children":2750},{"className":2749},[],[2751],{"type":44,"value":2752},"useChatUI",{"type":38,"tag":59,"props":2754,"children":2756},{"id":2755},"built-in-actions",[2757],{"type":44,"value":2758},"Built-in Actions",{"type":38,"tag":47,"props":2760,"children":2761},{},[2762,2764,2769],{"type":44,"value":2763},"Handled automatically by ",{"type":38,"tag":51,"props":2765,"children":2767},{"className":2766},[],[2768],{"type":44,"value":2627},{"type":44,"value":274},{"type":38,"tag":2560,"props":2771,"children":2772},{},[2773,2782,2791,2800],{"type":38,"tag":2564,"props":2774,"children":2775},{},[2776],{"type":38,"tag":51,"props":2777,"children":2779},{"className":2778},[],[2780],{"type":44,"value":2781},"setState",{"type":38,"tag":2564,"props":2783,"children":2784},{},[2785],{"type":38,"tag":51,"props":2786,"children":2788},{"className":2787},[],[2789],{"type":44,"value":2790},"pushState",{"type":38,"tag":2564,"props":2792,"children":2793},{},[2794],{"type":38,"tag":51,"props":2795,"children":2797},{"className":2796},[],[2798],{"type":44,"value":2799},"removeState",{"type":38,"tag":2564,"props":2801,"children":2802},{},[2803],{"type":38,"tag":51,"props":2804,"children":2806},{"className":2805},[],[2807],{"type":44,"value":2616},{"type":38,"tag":59,"props":2809,"children":2811},{"id":2810},"dynamic-props-and-bindings",[2812],{"type":44,"value":2813},"Dynamic Props and Bindings",{"type":38,"tag":47,"props":2815,"children":2816},{},[2817],{"type":44,"value":2818},"Supported expression forms include:",{"type":38,"tag":2560,"props":2820,"children":2821},{},[2822,2831,2840,2849,2858,2867],{"type":38,"tag":2564,"props":2823,"children":2824},{},[2825],{"type":38,"tag":51,"props":2826,"children":2828},{"className":2827},[],[2829],{"type":44,"value":2830},"{\"$state\": \"\u002Fpath\"}",{"type":38,"tag":2564,"props":2832,"children":2833},{},[2834],{"type":38,"tag":51,"props":2835,"children":2837},{"className":2836},[],[2838],{"type":44,"value":2839},"{\"$bindState\": \"\u002Fpath\"}",{"type":38,"tag":2564,"props":2841,"children":2842},{},[2843],{"type":38,"tag":51,"props":2844,"children":2846},{"className":2845},[],[2847],{"type":44,"value":2848},"{\"$bindItem\": \"field\"}",{"type":38,"tag":2564,"props":2850,"children":2851},{},[2852],{"type":38,"tag":51,"props":2853,"children":2855},{"className":2854},[],[2856],{"type":44,"value":2857},"{\"$template\": \"Hi ${\u002Fuser\u002Fname}\"}",{"type":38,"tag":2564,"props":2859,"children":2860},{},[2861],{"type":38,"tag":51,"props":2862,"children":2864},{"className":2863},[],[2865],{"type":44,"value":2866},"{\"$computed\": \"fn\", \"args\": {...}}",{"type":38,"tag":2564,"props":2868,"children":2869},{},[2870],{"type":38,"tag":51,"props":2871,"children":2873},{"className":2872},[],[2874],{"type":44,"value":2875},"{\"$cond\": \u003Ccondition>, \"$then\": \u003Cvalue>, \"$else\": \u003Cvalue>}",{"type":38,"tag":47,"props":2877,"children":2878},{},[2879,2881,2886],{"type":44,"value":2880},"Use ",{"type":38,"tag":51,"props":2882,"children":2884},{"className":2883},[],[2885],{"type":44,"value":2736},{"type":44,"value":2887}," in components for writable bound values:",{"type":38,"tag":66,"props":2889,"children":2891},{"className":68,"code":2890,"language":70,"meta":71,"style":71},"import { useBoundProp } from \"@json-render\u002Fsolid\";\n\nfunction Input(props: BaseComponentProps\u003C{ value?: string }>) {\n  const [value, setValue] = useBoundProp(\n    props.props.value,\n    props.bindings?.value,\n  );\n  return (\n    \u003Cinput\n      value={String(value() ?? \"\")}\n      onInput={(e) => setValue(e.currentTarget.value)}\n    \u002F>\n  );\n}\n",[2892],{"type":38,"tag":51,"props":2893,"children":2894},{"__ignoreMap":71},[2895,2935,2942,2996,3040,3068,3097,3108,3119,3131,3178,3235,3243,3254],{"type":38,"tag":77,"props":2896,"children":2897},{"class":79,"line":80},[2898,2902,2906,2911,2915,2919,2923,2927,2931],{"type":38,"tag":77,"props":2899,"children":2900},{"style":84},[2901],{"type":44,"value":87},{"type":38,"tag":77,"props":2903,"children":2904},{"style":90},[2905],{"type":44,"value":93},{"type":38,"tag":77,"props":2907,"children":2908},{"style":96},[2909],{"type":44,"value":2910}," useBoundProp",{"type":38,"tag":77,"props":2912,"children":2913},{"style":90},[2914],{"type":44,"value":114},{"type":38,"tag":77,"props":2916,"children":2917},{"style":84},[2918],{"type":44,"value":119},{"type":38,"tag":77,"props":2920,"children":2921},{"style":90},[2922],{"type":44,"value":124},{"type":38,"tag":77,"props":2924,"children":2925},{"style":127},[2926],{"type":44,"value":45},{"type":38,"tag":77,"props":2928,"children":2929},{"style":90},[2930],{"type":44,"value":134},{"type":38,"tag":77,"props":2932,"children":2933},{"style":90},[2934],{"type":44,"value":139},{"type":38,"tag":77,"props":2936,"children":2937},{"class":79,"line":142},[2938],{"type":38,"tag":77,"props":2939,"children":2940},{"emptyLinePlaceholder":234},[2941],{"type":44,"value":237},{"type":38,"tag":77,"props":2943,"children":2944},{"class":79,"line":188},[2945,2950,2955,2959,2963,2967,2971,2975,2980,2984,2988,2992],{"type":38,"tag":77,"props":2946,"children":2947},{"style":249},[2948],{"type":44,"value":2949},"function",{"type":38,"tag":77,"props":2951,"children":2952},{"style":255},[2953],{"type":44,"value":2954}," Input",{"type":38,"tag":77,"props":2956,"children":2957},{"style":90},[2958],{"type":44,"value":263},{"type":38,"tag":77,"props":2960,"children":2961},{"style":266},[2962],{"type":44,"value":269},{"type":38,"tag":77,"props":2964,"children":2965},{"style":90},[2966],{"type":44,"value":274},{"type":38,"tag":77,"props":2968,"children":2969},{"style":291},[2970],{"type":44,"value":1457},{"type":38,"tag":77,"props":2972,"children":2973},{"style":90},[2974],{"type":44,"value":1525},{"type":38,"tag":77,"props":2976,"children":2977},{"style":281},[2978],{"type":44,"value":2979}," value",{"type":38,"tag":77,"props":2981,"children":2982},{"style":90},[2983],{"type":44,"value":1249},{"type":38,"tag":77,"props":2985,"children":2986},{"style":291},[2987],{"type":44,"value":1298},{"type":38,"tag":77,"props":2989,"children":2990},{"style":90},[2991],{"type":44,"value":1543},{"type":38,"tag":77,"props":2993,"children":2994},{"style":90},[2995],{"type":44,"value":313},{"type":38,"tag":77,"props":2997,"children":2998},{"class":79,"line":230},[2999,3004,3008,3013,3017,3022,3027,3031,3035],{"type":38,"tag":77,"props":3000,"children":3001},{"style":249},[3002],{"type":44,"value":3003},"  const",{"type":38,"tag":77,"props":3005,"children":3006},{"style":90},[3007],{"type":44,"value":2297},{"type":38,"tag":77,"props":3009,"children":3010},{"style":96},[3011],{"type":44,"value":3012},"value",{"type":38,"tag":77,"props":3014,"children":3015},{"style":90},[3016],{"type":44,"value":104},{"type":38,"tag":77,"props":3018,"children":3019},{"style":96},[3020],{"type":44,"value":3021}," setValue",{"type":38,"tag":77,"props":3023,"children":3024},{"style":90},[3025],{"type":44,"value":3026},"]",{"type":38,"tag":77,"props":3028,"children":3029},{"style":90},[3030],{"type":44,"value":1166},{"type":38,"tag":77,"props":3032,"children":3033},{"style":255},[3034],{"type":44,"value":2910},{"type":38,"tag":77,"props":3036,"children":3037},{"style":281},[3038],{"type":44,"value":3039},"(\n",{"type":38,"tag":77,"props":3041,"children":3042},{"class":79,"line":240},[3043,3048,3052,3056,3060,3064],{"type":38,"tag":77,"props":3044,"children":3045},{"style":96},[3046],{"type":44,"value":3047},"    props",{"type":38,"tag":77,"props":3049,"children":3050},{"style":90},[3051],{"type":44,"value":401},{"type":38,"tag":77,"props":3053,"children":3054},{"style":96},[3055],{"type":44,"value":269},{"type":38,"tag":77,"props":3057,"children":3058},{"style":90},[3059],{"type":44,"value":401},{"type":38,"tag":77,"props":3061,"children":3062},{"style":96},[3063],{"type":44,"value":3012},{"type":38,"tag":77,"props":3065,"children":3066},{"style":90},[3067],{"type":44,"value":752},{"type":38,"tag":77,"props":3069,"children":3070},{"class":79,"line":316},[3071,3075,3079,3084,3089,3093],{"type":38,"tag":77,"props":3072,"children":3073},{"style":96},[3074],{"type":44,"value":3047},{"type":38,"tag":77,"props":3076,"children":3077},{"style":90},[3078],{"type":44,"value":401},{"type":38,"tag":77,"props":3080,"children":3081},{"style":96},[3082],{"type":44,"value":3083},"bindings",{"type":38,"tag":77,"props":3085,"children":3086},{"style":90},[3087],{"type":44,"value":3088},"?.",{"type":38,"tag":77,"props":3090,"children":3091},{"style":96},[3092],{"type":44,"value":3012},{"type":38,"tag":77,"props":3094,"children":3095},{"style":90},[3096],{"type":44,"value":752},{"type":38,"tag":77,"props":3098,"children":3099},{"class":79,"line":330},[3100,3104],{"type":38,"tag":77,"props":3101,"children":3102},{"style":281},[3103],{"type":44,"value":454},{"type":38,"tag":77,"props":3105,"children":3106},{"style":90},[3107],{"type":44,"value":139},{"type":38,"tag":77,"props":3109,"children":3110},{"class":79,"line":373},[3111,3115],{"type":38,"tag":77,"props":3112,"children":3113},{"style":84},[3114],{"type":44,"value":322},{"type":38,"tag":77,"props":3116,"children":3117},{"style":281},[3118],{"type":44,"value":327},{"type":38,"tag":77,"props":3120,"children":3121},{"class":79,"line":430},[3122,3126],{"type":38,"tag":77,"props":3123,"children":3124},{"style":90},[3125],{"type":44,"value":336},{"type":38,"tag":77,"props":3127,"children":3128},{"style":281},[3129],{"type":44,"value":3130},"input\n",{"type":38,"tag":77,"props":3132,"children":3133},{"class":79,"line":448},[3134,3139,3143,3148,3152,3156,3160,3165,3170,3174],{"type":38,"tag":77,"props":3135,"children":3136},{"style":249},[3137],{"type":44,"value":3138},"      value",{"type":38,"tag":77,"props":3140,"children":3141},{"style":90},[3142],{"type":44,"value":350},{"type":38,"tag":77,"props":3144,"children":3145},{"style":255},[3146],{"type":44,"value":3147},"String",{"type":38,"tag":77,"props":3149,"children":3150},{"style":96},[3151],{"type":44,"value":263},{"type":38,"tag":77,"props":3153,"children":3154},{"style":255},[3155],{"type":44,"value":3012},{"type":38,"tag":77,"props":3157,"children":3158},{"style":96},[3159],{"type":44,"value":966},{"type":38,"tag":77,"props":3161,"children":3162},{"style":90},[3163],{"type":44,"value":3164},"??",{"type":38,"tag":77,"props":3166,"children":3167},{"style":90},[3168],{"type":44,"value":3169}," \"\"",{"type":38,"tag":77,"props":3171,"children":3172},{"style":96},[3173],{"type":44,"value":847},{"type":38,"tag":77,"props":3175,"children":3176},{"style":90},[3177],{"type":44,"value":467},{"type":38,"tag":77,"props":3179,"children":3180},{"class":79,"line":461},[3181,3186,3191,3196,3200,3204,3208,3213,3217,3222,3226,3231],{"type":38,"tag":77,"props":3182,"children":3183},{"style":249},[3184],{"type":44,"value":3185},"      onInput",{"type":38,"tag":77,"props":3187,"children":3188},{"style":90},[3189],{"type":44,"value":3190},"={(",{"type":38,"tag":77,"props":3192,"children":3193},{"style":266},[3194],{"type":44,"value":3195},"e",{"type":38,"tag":77,"props":3197,"children":3198},{"style":90},[3199],{"type":44,"value":847},{"type":38,"tag":77,"props":3201,"children":3202},{"style":249},[3203],{"type":44,"value":1307},{"type":38,"tag":77,"props":3205,"children":3206},{"style":255},[3207],{"type":44,"value":3021},{"type":38,"tag":77,"props":3209,"children":3210},{"style":96},[3211],{"type":44,"value":3212},"(e",{"type":38,"tag":77,"props":3214,"children":3215},{"style":90},[3216],{"type":44,"value":401},{"type":38,"tag":77,"props":3218,"children":3219},{"style":96},[3220],{"type":44,"value":3221},"currentTarget",{"type":38,"tag":77,"props":3223,"children":3224},{"style":90},[3225],{"type":44,"value":401},{"type":38,"tag":77,"props":3227,"children":3228},{"style":96},[3229],{"type":44,"value":3230},"value)",{"type":38,"tag":77,"props":3232,"children":3233},{"style":90},[3234],{"type":44,"value":467},{"type":38,"tag":77,"props":3236,"children":3237},{"class":79,"line":854},[3238],{"type":38,"tag":77,"props":3239,"children":3240},{"style":90},[3241],{"type":44,"value":3242},"    \u002F>\n",{"type":38,"tag":77,"props":3244,"children":3245},{"class":79,"line":884},[3246,3250],{"type":38,"tag":77,"props":3247,"children":3248},{"style":281},[3249],{"type":44,"value":454},{"type":38,"tag":77,"props":3251,"children":3252},{"style":90},[3253],{"type":44,"value":139},{"type":38,"tag":77,"props":3255,"children":3256},{"class":79,"line":893},[3257],{"type":38,"tag":77,"props":3258,"children":3259},{"style":90},[3260],{"type":44,"value":467},{"type":38,"tag":47,"props":3262,"children":3263},{},[3264,3269,3270,3275,3277,3283,3285,3291,3292,3298,3300,3305,3307,3313,3315,3321],{"type":38,"tag":51,"props":3265,"children":3267},{"className":3266},[],[3268],{"type":44,"value":2665},{"type":44,"value":2659},{"type":38,"tag":51,"props":3271,"children":3273},{"className":3272},[],[3274],{"type":44,"value":2672},{"type":44,"value":3276},", and the ",{"type":38,"tag":51,"props":3278,"children":3280},{"className":3279},[],[3281],{"type":44,"value":3282},"state",{"type":44,"value":3284}," \u002F ",{"type":38,"tag":51,"props":3286,"children":3288},{"className":3287},[],[3289],{"type":44,"value":3290},"errors",{"type":44,"value":3284},{"type":38,"tag":51,"props":3293,"children":3295},{"className":3294},[],[3296],{"type":44,"value":3297},"isValid",{"type":44,"value":3299}," fields from ",{"type":38,"tag":51,"props":3301,"children":3303},{"className":3302},[],[3304],{"type":44,"value":2727},{"type":44,"value":3306}," are reactive accessors in Solid. Call them as functions inside JSX, ",{"type":38,"tag":51,"props":3308,"children":3310},{"className":3309},[],[3311],{"type":44,"value":3312},"createMemo",{"type":44,"value":3314},", or ",{"type":38,"tag":51,"props":3316,"children":3318},{"className":3317},[],[3319],{"type":44,"value":3320},"createEffect",{"type":44,"value":401},{"type":38,"tag":59,"props":3323,"children":3325},{"id":3324},"solid-reactivity-rules",[3326],{"type":44,"value":3327},"Solid Reactivity Rules",{"type":38,"tag":2560,"props":3329,"children":3330},{},[3331,3336,3353],{"type":38,"tag":2564,"props":3332,"children":3333},{},[3334],{"type":44,"value":3335},"Do not destructure component props in function signatures when values need to stay reactive.",{"type":38,"tag":2564,"props":3337,"children":3338},{},[3339,3341,3346,3347,3352],{"type":44,"value":3340},"Keep changing reads inside JSX expressions, ",{"type":38,"tag":51,"props":3342,"children":3344},{"className":3343},[],[3345],{"type":44,"value":3312},{"type":44,"value":3314},{"type":38,"tag":51,"props":3348,"children":3350},{"className":3349},[],[3351],{"type":44,"value":3320},{"type":44,"value":401},{"type":38,"tag":2564,"props":3354,"children":3355},{},[3356],{"type":44,"value":3357},"Context values are exposed through getter-based objects so consumers always observe live signals.",{"type":38,"tag":59,"props":3359,"children":3361},{"id":3360},"streaming-ui",[3362],{"type":44,"value":3363},"Streaming UI",{"type":38,"tag":66,"props":3365,"children":3367},{"className":68,"code":3366,"language":70,"meta":71,"style":71},"import { useUIStream, Renderer } from \"@json-render\u002Fsolid\";\n\nconst stream = useUIStream({ api: \"\u002Fapi\u002Fgenerate-ui\" });\nawait stream.send(\"Create a support dashboard\");\n\n\u003CRenderer\n  spec={stream.spec}\n  registry={registry}\n  loading={stream.isStreaming}\n\u002F>;\n",[3368],{"type":38,"tag":51,"props":3369,"children":3370},{"__ignoreMap":71},[3371,3419,3426,3488,3535,3542,3554,3583,3603,3631],{"type":38,"tag":77,"props":3372,"children":3373},{"class":79,"line":80},[3374,3378,3382,3387,3391,3395,3399,3403,3407,3411,3415],{"type":38,"tag":77,"props":3375,"children":3376},{"style":84},[3377],{"type":44,"value":87},{"type":38,"tag":77,"props":3379,"children":3380},{"style":90},[3381],{"type":44,"value":93},{"type":38,"tag":77,"props":3383,"children":3384},{"style":96},[3385],{"type":44,"value":3386}," useUIStream",{"type":38,"tag":77,"props":3388,"children":3389},{"style":90},[3390],{"type":44,"value":104},{"type":38,"tag":77,"props":3392,"children":3393},{"style":96},[3394],{"type":44,"value":99},{"type":38,"tag":77,"props":3396,"children":3397},{"style":90},[3398],{"type":44,"value":114},{"type":38,"tag":77,"props":3400,"children":3401},{"style":84},[3402],{"type":44,"value":119},{"type":38,"tag":77,"props":3404,"children":3405},{"style":90},[3406],{"type":44,"value":124},{"type":38,"tag":77,"props":3408,"children":3409},{"style":127},[3410],{"type":44,"value":45},{"type":38,"tag":77,"props":3412,"children":3413},{"style":90},[3414],{"type":44,"value":134},{"type":38,"tag":77,"props":3416,"children":3417},{"style":90},[3418],{"type":44,"value":139},{"type":38,"tag":77,"props":3420,"children":3421},{"class":79,"line":142},[3422],{"type":38,"tag":77,"props":3423,"children":3424},{"emptyLinePlaceholder":234},[3425],{"type":44,"value":237},{"type":38,"tag":77,"props":3427,"children":3428},{"class":79,"line":188},[3429,3433,3438,3442,3446,3450,3454,3459,3463,3467,3472,3476,3480,3484],{"type":38,"tag":77,"props":3430,"children":3431},{"style":249},[3432],{"type":44,"value":1866},{"type":38,"tag":77,"props":3434,"children":3435},{"style":96},[3436],{"type":44,"value":3437}," stream ",{"type":38,"tag":77,"props":3439,"children":3440},{"style":90},[3441],{"type":44,"value":634},{"type":38,"tag":77,"props":3443,"children":3444},{"style":255},[3445],{"type":44,"value":3386},{"type":38,"tag":77,"props":3447,"children":3448},{"style":96},[3449],{"type":44,"value":263},{"type":38,"tag":77,"props":3451,"children":3452},{"style":90},[3453],{"type":44,"value":940},{"type":38,"tag":77,"props":3455,"children":3456},{"style":281},[3457],{"type":44,"value":3458}," api",{"type":38,"tag":77,"props":3460,"children":3461},{"style":90},[3462],{"type":44,"value":274},{"type":38,"tag":77,"props":3464,"children":3465},{"style":90},[3466],{"type":44,"value":124},{"type":38,"tag":77,"props":3468,"children":3469},{"style":127},[3470],{"type":44,"value":3471},"\u002Fapi\u002Fgenerate-ui",{"type":38,"tag":77,"props":3473,"children":3474},{"style":90},[3475],{"type":44,"value":134},{"type":38,"tag":77,"props":3477,"children":3478},{"style":90},[3479],{"type":44,"value":114},{"type":38,"tag":77,"props":3481,"children":3482},{"style":96},[3483],{"type":44,"value":847},{"type":38,"tag":77,"props":3485,"children":3486},{"style":90},[3487],{"type":44,"value":139},{"type":38,"tag":77,"props":3489,"children":3490},{"class":79,"line":230},[3491,3496,3501,3505,3510,3514,3518,3523,3527,3531],{"type":38,"tag":77,"props":3492,"children":3493},{"style":84},[3494],{"type":44,"value":3495},"await",{"type":38,"tag":77,"props":3497,"children":3498},{"style":96},[3499],{"type":44,"value":3500}," stream",{"type":38,"tag":77,"props":3502,"children":3503},{"style":90},[3504],{"type":44,"value":401},{"type":38,"tag":77,"props":3506,"children":3507},{"style":255},[3508],{"type":44,"value":3509},"send",{"type":38,"tag":77,"props":3511,"children":3512},{"style":96},[3513],{"type":44,"value":263},{"type":38,"tag":77,"props":3515,"children":3516},{"style":90},[3517],{"type":44,"value":134},{"type":38,"tag":77,"props":3519,"children":3520},{"style":127},[3521],{"type":44,"value":3522},"Create a support dashboard",{"type":38,"tag":77,"props":3524,"children":3525},{"style":90},[3526],{"type":44,"value":134},{"type":38,"tag":77,"props":3528,"children":3529},{"style":96},[3530],{"type":44,"value":847},{"type":38,"tag":77,"props":3532,"children":3533},{"style":90},[3534],{"type":44,"value":139},{"type":38,"tag":77,"props":3536,"children":3537},{"class":79,"line":240},[3538],{"type":38,"tag":77,"props":3539,"children":3540},{"emptyLinePlaceholder":234},[3541],{"type":44,"value":237},{"type":38,"tag":77,"props":3543,"children":3544},{"class":79,"line":316},[3545,3549],{"type":38,"tag":77,"props":3546,"children":3547},{"style":90},[3548],{"type":44,"value":1156},{"type":38,"tag":77,"props":3550,"children":3551},{"style":291},[3552],{"type":44,"value":3553},"Renderer\n",{"type":38,"tag":77,"props":3555,"children":3556},{"class":79,"line":330},[3557,3562,3566,3571,3575,3579],{"type":38,"tag":77,"props":3558,"children":3559},{"style":249},[3560],{"type":44,"value":3561},"  spec",{"type":38,"tag":77,"props":3563,"children":3564},{"style":90},[3565],{"type":44,"value":350},{"type":38,"tag":77,"props":3567,"children":3568},{"style":96},[3569],{"type":44,"value":3570},"stream",{"type":38,"tag":77,"props":3572,"children":3573},{"style":90},[3574],{"type":44,"value":401},{"type":38,"tag":77,"props":3576,"children":3577},{"style":96},[3578],{"type":44,"value":406},{"type":38,"tag":77,"props":3580,"children":3581},{"style":90},[3582],{"type":44,"value":467},{"type":38,"tag":77,"props":3584,"children":3585},{"class":79,"line":373},[3586,3591,3595,3599],{"type":38,"tag":77,"props":3587,"children":3588},{"style":249},[3589],{"type":44,"value":3590},"  registry",{"type":38,"tag":77,"props":3592,"children":3593},{"style":90},[3594],{"type":44,"value":350},{"type":38,"tag":77,"props":3596,"children":3597},{"style":96},[3598],{"type":44,"value":355},{"type":38,"tag":77,"props":3600,"children":3601},{"style":90},[3602],{"type":44,"value":467},{"type":38,"tag":77,"props":3604,"children":3605},{"class":79,"line":430},[3606,3610,3614,3618,3622,3627],{"type":38,"tag":77,"props":3607,"children":3608},{"style":249},[3609],{"type":44,"value":1405},{"type":38,"tag":77,"props":3611,"children":3612},{"style":90},[3613],{"type":44,"value":350},{"type":38,"tag":77,"props":3615,"children":3616},{"style":96},[3617],{"type":44,"value":3570},{"type":38,"tag":77,"props":3619,"children":3620},{"style":90},[3621],{"type":44,"value":401},{"type":38,"tag":77,"props":3623,"children":3624},{"style":96},[3625],{"type":44,"value":3626},"isStreaming",{"type":38,"tag":77,"props":3628,"children":3629},{"style":90},[3630],{"type":44,"value":467},{"type":38,"tag":77,"props":3632,"children":3633},{"class":79,"line":448},[3634],{"type":38,"tag":77,"props":3635,"children":3636},{"style":90},[3637],{"type":44,"value":3638},"\u002F>;\n",{"type":38,"tag":47,"props":3640,"children":3641},{},[3642,3643,3648],{"type":44,"value":2880},{"type":38,"tag":51,"props":3644,"children":3646},{"className":3645},[],[3647],{"type":44,"value":2752},{"type":44,"value":3649}," for chat + UI generation flows.",{"type":38,"tag":3651,"props":3652,"children":3653},"style",{},[3654],{"type":44,"value":3655},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3657,"total":3827},[3658,3676,3688,3700,3715,3732,3744,3757,3770,3783,3795,3812],{"slug":3659,"name":3659,"fn":3660,"description":3661,"org":3662,"tags":3663,"stars":3673,"repoUrl":3674,"updatedAt":3675},"agent-browser","automate browser interactions for AI agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3664,3667,3670],{"name":3665,"slug":3666,"type":15},"Agents","agents",{"name":3668,"slug":3669,"type":15},"Automation","automation",{"name":3671,"slug":3672,"type":15},"Browser Automation","browser-automation",38346,"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-browser","2026-07-20T05:55:17.314329",{"slug":3677,"name":3677,"fn":3678,"description":3679,"org":3680,"tags":3681,"stars":3673,"repoUrl":3674,"updatedAt":3687},"agentcore","run browser automation on AWS Bedrock","Run agent-browser on AWS Bedrock AgentCore cloud browsers. Use when the user wants to use AgentCore, run browser automation on AWS, use a cloud browser with AWS credentials, or needs a managed browser session backed by AWS infrastructure. Triggers include \"use agentcore\", \"run on AWS\", \"cloud browser with AWS\", \"bedrock browser\", \"agentcore session\", or any task requiring AWS-hosted browser automation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3682,3683,3686],{"name":3668,"slug":3669,"type":15},{"name":3684,"slug":3685,"type":15},"AWS","aws",{"name":3671,"slug":3672,"type":15},"2026-07-17T06:08:33.665276",{"slug":3689,"name":3689,"fn":3690,"description":3691,"org":3692,"tags":3693,"stars":3673,"repoUrl":3674,"updatedAt":3699},"core","navigate and interact with web pages","Core agent-browser usage guide. Read this before running any agent-browser commands. Covers the snapshot-and-ref workflow, navigating pages, interacting with elements (click, fill, type, select), extracting text and data, taking screenshots, managing tabs, handling forms and auth, waiting for content, running multiple browser sessions in parallel, and troubleshooting common failures. Use when the user asks to interact with a website, fill a form, click something, extract data, take a screenshot, log into a site, test a web app, or automate any browser task.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3694,3695,3696],{"name":3665,"slug":3666,"type":15},{"name":3671,"slug":3672,"type":15},{"name":3697,"slug":3698,"type":15},"Navigation","navigation","2026-07-26T05:47:42.378419",{"slug":3701,"name":3701,"fn":3702,"description":3703,"org":3704,"tags":3705,"stars":3673,"repoUrl":3674,"updatedAt":3714},"derive-client","reverse engineer internal APIs from browser traffic","Reverse-engineer a website's internal API by recording browser traffic into a HAR file, then generate a standalone client or CLI that calls the endpoints directly, with no browser needed after the first recording. Use when asked to \"derive a client\", \"build a CLI for \u003Csite>\", \"reverse engineer this site's API\", \"record network requests\", \"turn this site into an API\", or when the same site will be automated repeatedly and direct HTTP calls would beat driving the browser every time.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3706,3709,3710,3711],{"name":3707,"slug":3708,"type":15},"API Development","api-development",{"name":3668,"slug":3669,"type":15},{"name":3671,"slug":3672,"type":15},{"name":3712,"slug":3713,"type":15},"Web Scraping","web-scraping","2026-07-20T06:24:11.928835",{"slug":3716,"name":3716,"fn":3717,"description":3718,"org":3719,"tags":3720,"stars":3673,"repoUrl":3674,"updatedAt":3731},"dogfood","perform exploratory testing on web applications","Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to \"dogfood\", \"QA\", \"exploratory test\", \"find issues\", \"bug hunt\", \"test this app\u002Fsite\u002Fplatform\", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3721,3722,3725,3728],{"name":3671,"slug":3672,"type":15},{"name":3723,"slug":3724,"type":15},"Debugging","debugging",{"name":3726,"slug":3727,"type":15},"QA","qa",{"name":3729,"slug":3730,"type":15},"Testing","testing","2026-07-17T06:07:41.421482",{"slug":3733,"name":3733,"fn":3734,"description":3735,"org":3736,"tags":3737,"stars":3673,"repoUrl":3674,"updatedAt":3743},"electron","automate Electron desktop applications","Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include \"automate Slack app\", \"control VS Code\", \"interact with Discord app\", \"test this Electron app\", \"connect to desktop app\", or any task requiring automation of a native Electron application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3738,3739,3740],{"name":3665,"slug":3666,"type":15},{"name":3671,"slug":3672,"type":15},{"name":3741,"slug":3742,"type":15},"Desktop","desktop","2026-07-17T06:08:28.007783",{"slug":3745,"name":3745,"fn":3746,"description":3747,"org":3748,"tags":3749,"stars":3673,"repoUrl":3674,"updatedAt":3756},"slack","interact with Slack workspaces","Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include \"check my Slack\", \"what channels have unreads\", \"send a message to\", \"search Slack for\", \"extract from Slack\", \"find who said\", or any task requiring programmatic Slack interaction.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3750,3751,3754],{"name":3671,"slug":3672,"type":15},{"name":3752,"slug":3753,"type":15},"Messaging","messaging",{"name":3755,"slug":3745,"type":15},"Slack","2026-07-17T06:08:27.679015",{"slug":3758,"name":3758,"fn":3759,"description":3760,"org":3761,"tags":3762,"stars":3673,"repoUrl":3674,"updatedAt":3769},"vercel-sandbox","run browser automation in Vercel Sandbox","Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include \"Vercel Sandbox browser\", \"microVM Chrome\", \"agent-browser in sandbox\", \"browser automation on Vercel\", or any task requiring Chrome in a Vercel Sandbox.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3763,3764,3765,3766],{"name":3668,"slug":3669,"type":15},{"name":3671,"slug":3672,"type":15},{"name":3729,"slug":3730,"type":15},{"name":3767,"slug":3768,"type":15},"Vercel","vercel","2026-07-17T06:08:28.349899",{"slug":3771,"name":3771,"fn":3772,"description":3773,"org":3774,"tags":3775,"stars":3780,"repoUrl":3781,"updatedAt":3782},"deploy-to-vercel","deploy applications to Vercel","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3776,3779],{"name":3777,"slug":3778,"type":15},"Deployment","deployment",{"name":3767,"slug":3768,"type":15},28993,"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-skills","2026-07-17T06:08:41.18374",{"slug":3784,"name":3784,"fn":3785,"description":3786,"org":3787,"tags":3788,"stars":3780,"repoUrl":3781,"updatedAt":3794},"vercel-cli-with-tokens","manage Vercel projects via CLI","Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. \"deploy to vercel\", \"set up vercel\", \"add environment variables to vercel\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3789,3792,3793],{"name":3790,"slug":3791,"type":15},"CLI","cli",{"name":3777,"slug":3778,"type":15},{"name":3767,"slug":3768,"type":15},"2026-07-17T06:08:41.84179",{"slug":3796,"name":3796,"fn":3797,"description":3798,"org":3799,"tags":3800,"stars":3780,"repoUrl":3781,"updatedAt":3811},"vercel-composition-patterns","implement scalable React composition patterns","React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3801,3804,3805,3808],{"name":3802,"slug":3803,"type":15},"Best Practices","best-practices",{"name":19,"slug":20,"type":15},{"name":3806,"slug":3807,"type":15},"React","react",{"name":3809,"slug":3810,"type":15},"UI Components","ui-components","2026-07-17T06:05:40.576913",{"slug":3813,"name":3813,"fn":3814,"description":3815,"org":3816,"tags":3817,"stars":3780,"repoUrl":3781,"updatedAt":3826},"vercel-optimize","optimize Vercel project performance and costs","Use for Vercel cost and performance optimization on deployed projects, especially Next.js, SvelteKit, Nuxt, and limited Astro apps. Collect Vercel metrics, usage, project config, and code scan results first; investigate only metric-backed candidates; produce ranked recommendations grounded in verified files and version-aware Vercel\u002Fframework docs. Trigger for Vercel bill reduction, slow or expensive routes, caching opportunities, Function Invocations, Build Minutes, Fast Data Transfer, Core Web Vitals, Bot Management, Fluid compute, or cost breakdown requests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3818,3821,3822,3825],{"name":3819,"slug":3820,"type":15},"Cost Optimization","cost-optimization",{"name":3777,"slug":3778,"type":15},{"name":3823,"slug":3824,"type":15},"Performance","performance",{"name":3767,"slug":3768,"type":15},"2026-07-17T06:04:08.327515",100,{"items":3829,"total":3918},[3830,3845,3855,3867,3884,3894,3906],{"slug":3831,"name":3831,"fn":3832,"description":3833,"org":3834,"tags":3835,"stars":21,"repoUrl":22,"updatedAt":3844},"codegen","generate code from UI specifications","Code generation utilities for json-render. Use when generating code from UI specs, building custom code exporters, traversing specs, or serializing props for @json-render\u002Fcodegen.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3836,3839,3842],{"name":3837,"slug":3838,"type":15},"Code Generation","code-generation",{"name":3840,"slug":3841,"type":15},"Engineering","engineering",{"name":3843,"slug":2080,"type":15},"JSON","2026-07-17T06:08:34.68038",{"slug":3846,"name":3846,"fn":3847,"description":3848,"org":3849,"tags":3850,"stars":21,"repoUrl":22,"updatedAt":3854},"devtools","inspect and debug generative UI components","Drop-in inspector panel for any json-render app. Use when the user wants to debug a generative UI, inspect the spec tree, edit state at runtime, see dispatched actions, follow stream patches live, browse a catalog, or pick DOM elements to find their spec keys. Triggers include \"add devtools\", \"debug json-render\", \"inspect the spec\", \"why is this element not rendering\", \"see the state at runtime\", or requests to tap streams \u002F capture action logs for `@json-render\u002Fdevtools`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3851,3852,3853],{"name":3723,"slug":3724,"type":15},{"name":19,"slug":20,"type":15},{"name":3809,"slug":3810,"type":15},"2026-07-17T06:08:35.001228",{"slug":3856,"name":3856,"fn":3857,"description":3858,"org":3859,"tags":3860,"stars":21,"repoUrl":22,"updatedAt":3866},"directives","apply custom directives to JSON specs","Pre-built custom directives for json-render — formatting, math, string manipulation, and i18n. Use when working with @json-render\u002Fdirectives, defining custom directives with defineDirective, or adding $format, $math, $concat, $count, $truncate, $pluralize, $join, or $t to specs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3861,3862,3863,3865],{"name":3668,"slug":3669,"type":15},{"name":19,"slug":20,"type":15},{"name":3864,"slug":3864,"type":15},"i18n",{"name":3843,"slug":2080,"type":15},"2026-07-17T06:04:05.866831",{"slug":3868,"name":3868,"fn":3869,"description":3870,"org":3871,"tags":3872,"stars":21,"repoUrl":22,"updatedAt":3883},"image","generate images from JSON specifications","Image renderer for json-render that turns JSON specs into SVG and PNG images via Satori. Use when working with @json-render\u002Fimage, generating OG images from JSON, creating social cards, or rendering AI-generated image specs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3873,3876,3877,3880],{"name":3874,"slug":3875,"type":15},"Images","images",{"name":3843,"slug":2080,"type":15},{"name":3878,"slug":3879,"type":15},"Satori","satori",{"name":3881,"slug":3882,"type":15},"SVG","svg","2026-07-17T06:07:42.441875",{"slug":3885,"name":3885,"fn":3886,"description":3887,"org":3888,"tags":3889,"stars":21,"repoUrl":22,"updatedAt":3893},"ink","render JSON specs as terminal UIs","Ink terminal renderer for json-render that turns JSON specs into interactive terminal UIs. Use when working with @json-render\u002Fink, building terminal UIs from JSON, creating terminal component catalogs, or rendering AI-generated specs in the terminal.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3890,3891,3892],{"name":3790,"slug":3791,"type":15},{"name":3843,"slug":2080,"type":15},{"name":3809,"slug":3810,"type":15},"2026-07-17T06:08:28.678043",{"slug":3895,"name":3895,"fn":3896,"description":3897,"org":3898,"tags":3899,"stars":21,"repoUrl":22,"updatedAt":3905},"jotai","manage state with Jotai","Jotai adapter for json-render's StateStore interface. Use when integrating json-render with Jotai for state management via @json-render\u002Fjotai.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3900,3901,3902],{"name":19,"slug":20,"type":15},{"name":3806,"slug":3807,"type":15},{"name":3903,"slug":3904,"type":15},"State Management","state-management","2026-07-17T06:05:48.244622",{"slug":3907,"name":3907,"fn":3908,"description":3909,"org":3910,"tags":3911,"stars":21,"repoUrl":22,"updatedAt":3917},"mcp","render interactive UIs with MCP","MCP Apps integration for json-render. Use when building MCP servers that render interactive UIs in Claude, ChatGPT, Cursor, or VS Code, or when integrating json-render with the Model Context Protocol.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3912,3913,3914,3916],{"name":19,"slug":20,"type":15},{"name":3843,"slug":2080,"type":15},{"name":3915,"slug":3907,"type":15},"MCP",{"name":3809,"slug":3810,"type":15},"2026-07-17T06:05:41.274723",25]