@cloudraker/reki 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/CHANGELOG.md +1892 -0
  2. package/README.md +525 -0
  3. package/ai/USAGE.md +201 -0
  4. package/ai/component-registry.json +6707 -0
  5. package/ai/component-registry.md +8346 -0
  6. package/ai/schemas.ts +955 -0
  7. package/bin/reki.js +36 -0
  8. package/dist/.build-complete +1 -0
  9. package/dist/ai/schemas.d.ts +2514 -0
  10. package/dist/ai/schemas.d.ts.map +1 -0
  11. package/dist/ai/schemas.js +3985 -0
  12. package/dist/ai/schemas.js.map +1 -0
  13. package/dist/blocks-source/delete-resource/delete-resource.tsx +213 -0
  14. package/dist/blocks-source/page-header/page-header.tsx +99 -0
  15. package/dist/blocks-source/resource-list/resource-list.test.tsx +28 -0
  16. package/dist/blocks-source/resource-list/resource-list.tsx +69 -0
  17. package/dist/catalog.js +229 -0
  18. package/dist/catalog.js.map +1 -0
  19. package/dist/chunks/SankeyChart-jwwpwps4npqzbrvn.js +890 -0
  20. package/dist/chunks/SankeyChart-jwwpwps4npqzbrvn.js.map +1 -0
  21. package/dist/chunks/autocomplete-f4vetako14h2aqsw.js +193 -0
  22. package/dist/chunks/autocomplete-f4vetako14h2aqsw.js.map +1 -0
  23. package/dist/chunks/badge-pc33c5ir7muabgfh.js +163 -0
  24. package/dist/chunks/badge-pc33c5ir7muabgfh.js.map +1 -0
  25. package/dist/chunks/banner-kis9h1yq636liunc.js +120 -0
  26. package/dist/chunks/banner-kis9h1yq636liunc.js.map +1 -0
  27. package/dist/chunks/bash-g5z23u7me5rx7bzt.js +15 -0
  28. package/dist/chunks/bash-g5z23u7me5rx7bzt.js.map +1 -0
  29. package/dist/chunks/breadcrumbs-d6149hyct4puz3x4.js +169 -0
  30. package/dist/chunks/breadcrumbs-d6149hyct4puz3x4.js.map +1 -0
  31. package/dist/chunks/button-nc5p1h28cwes0tjw.js +237 -0
  32. package/dist/chunks/button-nc5p1h28cwes0tjw.js.map +1 -0
  33. package/dist/chunks/checkbox-g2661n3eodgoispq.js +216 -0
  34. package/dist/chunks/checkbox-g2661n3eodgoispq.js.map +1 -0
  35. package/dist/chunks/clipboard-text-g3659lejx2d7i93e.js +191 -0
  36. package/dist/chunks/clipboard-text-g3659lejx2d7i93e.js.map +1 -0
  37. package/dist/chunks/cloudflare-logo-k0f07zztsda8m4ca.js +175 -0
  38. package/dist/chunks/cloudflare-logo-k0f07zztsda8m4ca.js.map +1 -0
  39. package/dist/chunks/cn-ct4n7r74mh8y0f48.js +26 -0
  40. package/dist/chunks/cn-ct4n7r74mh8y0f48.js.map +1 -0
  41. package/dist/chunks/code-fm5rpi47v6cj9o8o.js +61 -0
  42. package/dist/chunks/code-fm5rpi47v6cj9o8o.js.map +1 -0
  43. package/dist/chunks/collapsible-ndvmgo29s5iqfcor.js +76 -0
  44. package/dist/chunks/collapsible-ndvmgo29s5iqfcor.js.map +1 -0
  45. package/dist/chunks/combobox-i38w67netm8ukw4f.js +408 -0
  46. package/dist/chunks/combobox-i38w67netm8ukw4f.js.map +1 -0
  47. package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js +403 -0
  48. package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js.map +1 -0
  49. package/dist/chunks/core-oowp00biqxe3hvjc.js +5806 -0
  50. package/dist/chunks/core-oowp00biqxe3hvjc.js.map +1 -0
  51. package/dist/chunks/css-d1mi3wy1sl3fzekh.js +8 -0
  52. package/dist/chunks/css-d1mi3wy1sl3fzekh.js.map +1 -0
  53. package/dist/chunks/date-picker-81mc3zrsmobm3ydm.js +2921 -0
  54. package/dist/chunks/date-picker-81mc3zrsmobm3ydm.js.map +1 -0
  55. package/dist/chunks/date-range-picker-c8ttrfaos9mb1w5n.js +408 -0
  56. package/dist/chunks/date-range-picker-c8ttrfaos9mb1w5n.js.map +1 -0
  57. package/dist/chunks/dialog-m4go8xof25fospqo.js +134 -0
  58. package/dist/chunks/dialog-m4go8xof25fospqo.js.map +1 -0
  59. package/dist/chunks/diff-cpj1h9lg0bw716mj.js +8 -0
  60. package/dist/chunks/diff-cpj1h9lg0bw716mj.js.map +1 -0
  61. package/dist/chunks/dropdown-j5uht8mn4z7xc9fc.js +313 -0
  62. package/dist/chunks/dropdown-j5uht8mn4z7xc9fc.js.map +1 -0
  63. package/dist/chunks/empty-kazxr0248zjemw6n.js +94 -0
  64. package/dist/chunks/empty-kazxr0248zjemw6n.js.map +1 -0
  65. package/dist/chunks/engine-javascript-iqcmg6wi2pjun29k.js +2637 -0
  66. package/dist/chunks/engine-javascript-iqcmg6wi2pjun29k.js.map +1 -0
  67. package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js +295 -0
  68. package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js.map +1 -0
  69. package/dist/chunks/field-fe5m8z3vbpvtctbe.js +77 -0
  70. package/dist/chunks/field-fe5m8z3vbpvtctbe.js.map +1 -0
  71. package/dist/chunks/github-light-ulev8flhimfg79ob.js +6 -0
  72. package/dist/chunks/github-light-ulev8flhimfg79ob.js.map +1 -0
  73. package/dist/chunks/graphql-ft2h47erta7isqn4.js +16 -0
  74. package/dist/chunks/graphql-ft2h47erta7isqn4.js.map +1 -0
  75. package/dist/chunks/grid-enlbb88vucgeq1np.js +128 -0
  76. package/dist/chunks/grid-enlbb88vucgeq1np.js.map +1 -0
  77. package/dist/chunks/hcl-hcu7d6ja6t540ijn.js +8 -0
  78. package/dist/chunks/hcl-hcu7d6ja6t540ijn.js.map +1 -0
  79. package/dist/chunks/html-kl304jmqj4jxj777.js +12 -0
  80. package/dist/chunks/html-kl304jmqj4jxj777.js.map +1 -0
  81. package/dist/chunks/input-area-ciw85g3fno06t4tw.js +78 -0
  82. package/dist/chunks/input-area-ciw85g3fno06t4tw.js.map +1 -0
  83. package/dist/chunks/input-group-mo7tq7jr19hmgor5.js +505 -0
  84. package/dist/chunks/input-group-mo7tq7jr19hmgor5.js.map +1 -0
  85. package/dist/chunks/input-i5nefqk213n4z7pr.js +130 -0
  86. package/dist/chunks/input-i5nefqk213n4z7pr.js.map +1 -0
  87. package/dist/chunks/javascript-hhx3avh9uv2o27ay.js +8 -0
  88. package/dist/chunks/javascript-hhx3avh9uv2o27ay.js.map +1 -0
  89. package/dist/chunks/json-jovp9qemdkp5cziz.js +8 -0
  90. package/dist/chunks/json-jovp9qemdkp5cziz.js.map +1 -0
  91. package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js +8 -0
  92. package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js.map +1 -0
  93. package/dist/chunks/jsx-ij885l2li2lzfoss.js +8 -0
  94. package/dist/chunks/jsx-ij885l2li2lzfoss.js.map +1 -0
  95. package/dist/chunks/label-fcho4757rbdess0c.js +68 -0
  96. package/dist/chunks/label-fcho4757rbdess0c.js.map +1 -0
  97. package/dist/chunks/layer-card-kzu48dhzxm3e9p4u.js +47 -0
  98. package/dist/chunks/layer-card-kzu48dhzxm3e9p4u.js.map +1 -0
  99. package/dist/chunks/link-j2gu5dr3nr4i4yf0.js +95 -0
  100. package/dist/chunks/link-j2gu5dr3nr4i4yf0.js.map +1 -0
  101. package/dist/chunks/link-provider-bgljdgs4hs438h0u.js +22 -0
  102. package/dist/chunks/link-provider-bgljdgs4hs438h0u.js.map +1 -0
  103. package/dist/chunks/loader-cxzp72mn53lzbv9c.js +109 -0
  104. package/dist/chunks/loader-cxzp72mn53lzbv9c.js.map +1 -0
  105. package/dist/chunks/markdown-n2vyyq7l68fy32wc.js +8 -0
  106. package/dist/chunks/markdown-n2vyyq7l68fy32wc.js.map +1 -0
  107. package/dist/chunks/menubar-ir5gbjmsizsddz7g.js +98 -0
  108. package/dist/chunks/menubar-ir5gbjmsizsddz7g.js.map +1 -0
  109. package/dist/chunks/meter-o5yd7ctjf80vvyjx.js +51 -0
  110. package/dist/chunks/meter-o5yd7ctjf80vvyjx.js.map +1 -0
  111. package/dist/chunks/pagination-bryw6rohfr7mm3km.js +266 -0
  112. package/dist/chunks/pagination-bryw6rohfr7mm3km.js.map +1 -0
  113. package/dist/chunks/popover-elxcmvv7mu7m7uk4.js +181 -0
  114. package/dist/chunks/popover-elxcmvv7mu7m7uk4.js.map +1 -0
  115. package/dist/chunks/portal-provider-off76og7tjyz96ys.js +18 -0
  116. package/dist/chunks/portal-provider-off76og7tjyz96ys.js.map +1 -0
  117. package/dist/chunks/python-gg755pb8oe9ra1d1.js +8 -0
  118. package/dist/chunks/python-gg755pb8oe9ra1d1.js.map +1 -0
  119. package/dist/chunks/radio-newyq331uk4lltr6.js +226 -0
  120. package/dist/chunks/radio-newyq331uk4lltr6.js.map +1 -0
  121. package/dist/chunks/resolve-variant-t8jcltsizeg29ege.js +11 -0
  122. package/dist/chunks/resolve-variant-t8jcltsizeg29ege.js.map +1 -0
  123. package/dist/chunks/select-h5480mbro0ypxu0b.js +237 -0
  124. package/dist/chunks/select-h5480mbro0ypxu0b.js.map +1 -0
  125. package/dist/chunks/sensitive-input-lqugq6uvx0lkpu0u.js +273 -0
  126. package/dist/chunks/sensitive-input-lqugq6uvx0lkpu0u.js.map +1 -0
  127. package/dist/chunks/sidebar-noz668nhdu2gso12.js +1144 -0
  128. package/dist/chunks/sidebar-noz668nhdu2gso12.js.map +1 -0
  129. package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js +33 -0
  130. package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js.map +1 -0
  131. package/dist/chunks/sql-ovukp5mrfunfk5tv.js +8 -0
  132. package/dist/chunks/sql-ovukp5mrfunfk5tv.js.map +1 -0
  133. package/dist/chunks/surface-cyxme7mlr49l33f8.js +29 -0
  134. package/dist/chunks/surface-cyxme7mlr49l33f8.js.map +1 -0
  135. package/dist/chunks/switch-bigo96fyjlh7ivbi.js +256 -0
  136. package/dist/chunks/switch-bigo96fyjlh7ivbi.js.map +1 -0
  137. package/dist/chunks/table-mwcmwp6a80zvyrxw.js +208 -0
  138. package/dist/chunks/table-mwcmwp6a80zvyrxw.js.map +1 -0
  139. package/dist/chunks/table-of-contents-gkuvkr2w6lbhi7wt.js +106 -0
  140. package/dist/chunks/table-of-contents-gkuvkr2w6lbhi7wt.js.map +1 -0
  141. package/dist/chunks/tabs-e4pcjkw94kpe35x0.js +177 -0
  142. package/dist/chunks/tabs-e4pcjkw94kpe35x0.js.map +1 -0
  143. package/dist/chunks/text-oxsrbmjmfq99ue85.js +103 -0
  144. package/dist/chunks/text-oxsrbmjmfq99ue85.js.map +1 -0
  145. package/dist/chunks/toast-ivr4097bstjcjotf.js +370 -0
  146. package/dist/chunks/toast-ivr4097bstjcjotf.js.map +1 -0
  147. package/dist/chunks/toml-nczb2z9n0o23o3ci.js +8 -0
  148. package/dist/chunks/toml-nczb2z9n0o23o3ci.js.map +1 -0
  149. package/dist/chunks/tooltip-ncaia8n1lavkyw8n.js +103 -0
  150. package/dist/chunks/tooltip-ncaia8n1lavkyw8n.js.map +1 -0
  151. package/dist/chunks/tsx-ehy8lrzet6v54zur.js +8 -0
  152. package/dist/chunks/tsx-ehy8lrzet6v54zur.js.map +1 -0
  153. package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js +8 -0
  154. package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js.map +1 -0
  155. package/dist/chunks/vendor-base-ui-bgl9g5nkvqy3tn36.js +24690 -0
  156. package/dist/chunks/vendor-base-ui-bgl9g5nkvqy3tn36.js.map +1 -0
  157. package/dist/chunks/vendor-floating-ui-dn8xswn8036udsqq.js +1311 -0
  158. package/dist/chunks/vendor-floating-ui-dn8xswn8036udsqq.js.map +1 -0
  159. package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js +2775 -0
  160. package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js.map +1 -0
  161. package/dist/chunks/vendor-utils-m5h2xu7s2rs3pgk5.js +217 -0
  162. package/dist/chunks/vendor-utils-m5h2xu7s2rs3pgk5.js.map +1 -0
  163. package/dist/chunks/vesper-ebfu9ns65f2v830s.js +6 -0
  164. package/dist/chunks/vesper-ebfu9ns65f2v830s.js.map +1 -0
  165. package/dist/chunks/wasm-oj22f8usru9h7dzg.js +9 -0
  166. package/dist/chunks/wasm-oj22f8usru9h7dzg.js.map +1 -0
  167. package/dist/chunks/yaml-e2v22lr79tss2brj.js +8 -0
  168. package/dist/chunks/yaml-e2v22lr79tss2brj.js.map +1 -0
  169. package/dist/code/server.js +88 -0
  170. package/dist/code/server.js.map +1 -0
  171. package/dist/code.js +256 -0
  172. package/dist/code.js.map +1 -0
  173. package/dist/command-line/cli.js +850 -0
  174. package/dist/command-line/commands/add.js +282 -0
  175. package/dist/command-line/commands/ai.js +22 -0
  176. package/dist/command-line/commands/blocks.js +61 -0
  177. package/dist/command-line/commands/doc.js +167 -0
  178. package/dist/command-line/commands/init.js +95 -0
  179. package/dist/command-line/commands/ls.js +53 -0
  180. package/dist/components/autocomplete.js +9 -0
  181. package/dist/components/autocomplete.js.map +1 -0
  182. package/dist/components/badge.js +7 -0
  183. package/dist/components/badge.js.map +1 -0
  184. package/dist/components/banner.js +7 -0
  185. package/dist/components/banner.js.map +1 -0
  186. package/dist/components/breadcrumbs.js +9 -0
  187. package/dist/components/breadcrumbs.js.map +1 -0
  188. package/dist/components/button.js +9 -0
  189. package/dist/components/button.js.map +1 -0
  190. package/dist/components/chart.js +10 -0
  191. package/dist/components/chart.js.map +1 -0
  192. package/dist/components/checkbox.js +8 -0
  193. package/dist/components/checkbox.js.map +1 -0
  194. package/dist/components/clipboard-text.js +6 -0
  195. package/dist/components/clipboard-text.js.map +1 -0
  196. package/dist/components/cloudflare-logo.js +10 -0
  197. package/dist/components/cloudflare-logo.js.map +1 -0
  198. package/dist/components/code.js +7 -0
  199. package/dist/components/code.js.map +1 -0
  200. package/dist/components/collapsible.js +6 -0
  201. package/dist/components/collapsible.js.map +1 -0
  202. package/dist/components/combobox.js +6 -0
  203. package/dist/components/combobox.js.map +1 -0
  204. package/dist/components/command-palette.js +8 -0
  205. package/dist/components/command-palette.js.map +1 -0
  206. package/dist/components/date-picker.js +6 -0
  207. package/dist/components/date-picker.js.map +1 -0
  208. package/dist/components/date-range-picker.js +6 -0
  209. package/dist/components/date-range-picker.js.map +1 -0
  210. package/dist/components/dialog.js +11 -0
  211. package/dist/components/dialog.js.map +1 -0
  212. package/dist/components/dropdown.js +6 -0
  213. package/dist/components/dropdown.js.map +1 -0
  214. package/dist/components/empty.js +9 -0
  215. package/dist/components/empty.js.map +1 -0
  216. package/dist/components/field.js +10 -0
  217. package/dist/components/field.js.map +1 -0
  218. package/dist/components/flow.js +5831 -0
  219. package/dist/components/flow.js.map +1 -0
  220. package/dist/components/grid.js +11 -0
  221. package/dist/components/grid.js.map +1 -0
  222. package/dist/components/input-group.js +8 -0
  223. package/dist/components/input-group.js.map +1 -0
  224. package/dist/components/input.js +14 -0
  225. package/dist/components/input.js.map +1 -0
  226. package/dist/components/label.js +10 -0
  227. package/dist/components/label.js.map +1 -0
  228. package/dist/components/layer-card.js +6 -0
  229. package/dist/components/layer-card.js.map +1 -0
  230. package/dist/components/link.js +9 -0
  231. package/dist/components/link.js.map +1 -0
  232. package/dist/components/loader.js +8 -0
  233. package/dist/components/loader.js.map +1 -0
  234. package/dist/components/menubar.js +7 -0
  235. package/dist/components/menubar.js.map +1 -0
  236. package/dist/components/meter.js +6 -0
  237. package/dist/components/meter.js.map +1 -0
  238. package/dist/components/pagination.js +6 -0
  239. package/dist/components/pagination.js.map +1 -0
  240. package/dist/components/popover.js +14 -0
  241. package/dist/components/popover.js.map +1 -0
  242. package/dist/components/radio.js +10 -0
  243. package/dist/components/radio.js.map +1 -0
  244. package/dist/components/select.js +6 -0
  245. package/dist/components/select.js.map +1 -0
  246. package/dist/components/sensitive-input.js +8 -0
  247. package/dist/components/sensitive-input.js.map +1 -0
  248. package/dist/components/sidebar.js +34 -0
  249. package/dist/components/sidebar.js.map +1 -0
  250. package/dist/components/surface.js +6 -0
  251. package/dist/components/surface.js.map +1 -0
  252. package/dist/components/switch.js +8 -0
  253. package/dist/components/switch.js.map +1 -0
  254. package/dist/components/table-of-contents.js +8 -0
  255. package/dist/components/table-of-contents.js.map +1 -0
  256. package/dist/components/table.js +8 -0
  257. package/dist/components/table.js.map +1 -0
  258. package/dist/components/tabs.js +6 -0
  259. package/dist/components/tabs.js.map +1 -0
  260. package/dist/components/text.js +6 -0
  261. package/dist/components/text.js.map +1 -0
  262. package/dist/components/toast.js +11 -0
  263. package/dist/components/toast.js.map +1 -0
  264. package/dist/components/tooltip.js +7 -0
  265. package/dist/components/tooltip.js.map +1 -0
  266. package/dist/index.js +344 -0
  267. package/dist/index.js.map +1 -0
  268. package/dist/primitives/accordion.js +6 -0
  269. package/dist/primitives/accordion.js.map +1 -0
  270. package/dist/primitives/alert-dialog.js +6 -0
  271. package/dist/primitives/alert-dialog.js.map +1 -0
  272. package/dist/primitives/autocomplete.js +6 -0
  273. package/dist/primitives/autocomplete.js.map +1 -0
  274. package/dist/primitives/avatar.js +6 -0
  275. package/dist/primitives/avatar.js.map +1 -0
  276. package/dist/primitives/button.js +6 -0
  277. package/dist/primitives/button.js.map +1 -0
  278. package/dist/primitives/checkbox-group.js +6 -0
  279. package/dist/primitives/checkbox-group.js.map +1 -0
  280. package/dist/primitives/checkbox.js +6 -0
  281. package/dist/primitives/checkbox.js.map +1 -0
  282. package/dist/primitives/collapsible.js +6 -0
  283. package/dist/primitives/collapsible.js.map +1 -0
  284. package/dist/primitives/combobox.js +6 -0
  285. package/dist/primitives/combobox.js.map +1 -0
  286. package/dist/primitives/context-menu.js +6 -0
  287. package/dist/primitives/context-menu.js.map +1 -0
  288. package/dist/primitives/csp-provider.js +6 -0
  289. package/dist/primitives/csp-provider.js.map +1 -0
  290. package/dist/primitives/dialog.js +6 -0
  291. package/dist/primitives/dialog.js.map +1 -0
  292. package/dist/primitives/direction-provider.js +7 -0
  293. package/dist/primitives/direction-provider.js.map +1 -0
  294. package/dist/primitives/drawer.js +6 -0
  295. package/dist/primitives/drawer.js.map +1 -0
  296. package/dist/primitives/field.js +6 -0
  297. package/dist/primitives/field.js.map +1 -0
  298. package/dist/primitives/fieldset.js +6 -0
  299. package/dist/primitives/fieldset.js.map +1 -0
  300. package/dist/primitives/form.js +6 -0
  301. package/dist/primitives/form.js.map +1 -0
  302. package/dist/primitives/input.js +6 -0
  303. package/dist/primitives/input.js.map +1 -0
  304. package/dist/primitives/menu.js +6 -0
  305. package/dist/primitives/menu.js.map +1 -0
  306. package/dist/primitives/menubar.js +6 -0
  307. package/dist/primitives/menubar.js.map +1 -0
  308. package/dist/primitives/meter.js +6 -0
  309. package/dist/primitives/meter.js.map +1 -0
  310. package/dist/primitives/navigation-menu.js +6 -0
  311. package/dist/primitives/navigation-menu.js.map +1 -0
  312. package/dist/primitives/number-field.js +6 -0
  313. package/dist/primitives/number-field.js.map +1 -0
  314. package/dist/primitives/otp-field.js +6 -0
  315. package/dist/primitives/otp-field.js.map +1 -0
  316. package/dist/primitives/popover.js +6 -0
  317. package/dist/primitives/popover.js.map +1 -0
  318. package/dist/primitives/preview-card.js +6 -0
  319. package/dist/primitives/preview-card.js.map +1 -0
  320. package/dist/primitives/progress.js +6 -0
  321. package/dist/primitives/progress.js.map +1 -0
  322. package/dist/primitives/radio-group.js +6 -0
  323. package/dist/primitives/radio-group.js.map +1 -0
  324. package/dist/primitives/radio.js +6 -0
  325. package/dist/primitives/radio.js.map +1 -0
  326. package/dist/primitives/scroll-area.js +6 -0
  327. package/dist/primitives/scroll-area.js.map +1 -0
  328. package/dist/primitives/select.js +6 -0
  329. package/dist/primitives/select.js.map +1 -0
  330. package/dist/primitives/separator.js +6 -0
  331. package/dist/primitives/separator.js.map +1 -0
  332. package/dist/primitives/slider.js +6 -0
  333. package/dist/primitives/slider.js.map +1 -0
  334. package/dist/primitives/switch.js +6 -0
  335. package/dist/primitives/switch.js.map +1 -0
  336. package/dist/primitives/tabs.js +6 -0
  337. package/dist/primitives/tabs.js.map +1 -0
  338. package/dist/primitives/toast.js +6 -0
  339. package/dist/primitives/toast.js.map +1 -0
  340. package/dist/primitives/toggle-group.js +6 -0
  341. package/dist/primitives/toggle-group.js.map +1 -0
  342. package/dist/primitives/toggle.js +6 -0
  343. package/dist/primitives/toggle.js.map +1 -0
  344. package/dist/primitives/toolbar.js +6 -0
  345. package/dist/primitives/toolbar.js.map +1 -0
  346. package/dist/primitives/tooltip.js +6 -0
  347. package/dist/primitives/tooltip.js.map +1 -0
  348. package/dist/primitives.js +46 -0
  349. package/dist/primitives.js.map +1 -0
  350. package/dist/registry.js +2 -0
  351. package/dist/registry.js.map +1 -0
  352. package/dist/scripts/theme-generator/config.d.ts +6 -0
  353. package/dist/scripts/theme-generator/config.d.ts.map +1 -0
  354. package/dist/scripts/theme-generator/config.js +629 -0
  355. package/dist/scripts/theme-generator/config.js.map +1 -0
  356. package/dist/scripts/theme-generator/generate-css.d.ts +31 -0
  357. package/dist/scripts/theme-generator/generate-css.d.ts.map +1 -0
  358. package/dist/scripts/theme-generator/index.d.ts +13 -0
  359. package/dist/scripts/theme-generator/index.d.ts.map +1 -0
  360. package/dist/scripts/theme-generator/migrate.d.ts +56 -0
  361. package/dist/scripts/theme-generator/migrate.d.ts.map +1 -0
  362. package/dist/scripts/theme-generator/types.d.ts +82 -0
  363. package/dist/scripts/theme-generator/types.d.ts.map +1 -0
  364. package/dist/scripts/theme-generator/types.js +2 -0
  365. package/dist/scripts/theme-generator/types.js.map +1 -0
  366. package/dist/src/blocks/delete-resource/delete-resource.d.ts +46 -0
  367. package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
  368. package/dist/src/blocks/delete-resource/index.d.ts +2 -0
  369. package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
  370. package/dist/src/blocks/page-header/index.d.ts +2 -0
  371. package/dist/src/blocks/page-header/index.d.ts.map +1 -0
  372. package/dist/src/blocks/page-header/page-header.d.ts +38 -0
  373. package/dist/src/blocks/page-header/page-header.d.ts.map +1 -0
  374. package/dist/src/blocks/resource-list/index.d.ts +2 -0
  375. package/dist/src/blocks/resource-list/index.d.ts.map +1 -0
  376. package/dist/src/blocks/resource-list/resource-list.d.ts +18 -0
  377. package/dist/src/blocks/resource-list/resource-list.d.ts.map +1 -0
  378. package/dist/src/catalog/catalog.d.ts +75 -0
  379. package/dist/src/catalog/catalog.d.ts.map +1 -0
  380. package/dist/src/catalog/data.d.ts +44 -0
  381. package/dist/src/catalog/data.d.ts.map +1 -0
  382. package/dist/src/catalog/index.d.ts +39 -0
  383. package/dist/src/catalog/index.d.ts.map +1 -0
  384. package/dist/src/catalog/types.d.ts +226 -0
  385. package/dist/src/catalog/types.d.ts.map +1 -0
  386. package/dist/src/catalog/visibility.d.ts +37 -0
  387. package/dist/src/catalog/visibility.d.ts.map +1 -0
  388. package/dist/src/code/code-highlighted.d.ts +32 -0
  389. package/dist/src/code/code-highlighted.d.ts.map +1 -0
  390. package/dist/src/code/context.d.ts +16 -0
  391. package/dist/src/code/context.d.ts.map +1 -0
  392. package/dist/src/code/index.d.ts +32 -0
  393. package/dist/src/code/index.d.ts.map +1 -0
  394. package/dist/src/code/provider.d.ts +13 -0
  395. package/dist/src/code/provider.d.ts.map +1 -0
  396. package/dist/src/code/server.d.ts +95 -0
  397. package/dist/src/code/server.d.ts.map +1 -0
  398. package/dist/src/code/types.d.ts +130 -0
  399. package/dist/src/code/types.d.ts.map +1 -0
  400. package/dist/src/code/use-shiki-highlighter.d.ts +36 -0
  401. package/dist/src/code/use-shiki-highlighter.d.ts.map +1 -0
  402. package/dist/src/command-line/build-cli.d.ts +7 -0
  403. package/dist/src/command-line/build-cli.d.ts.map +1 -0
  404. package/dist/src/command-line/cli.d.ts +13 -0
  405. package/dist/src/command-line/cli.d.ts.map +1 -0
  406. package/dist/src/command-line/commands/add.d.ts +10 -0
  407. package/dist/src/command-line/commands/add.d.ts.map +1 -0
  408. package/dist/src/command-line/commands/ai.d.ts +10 -0
  409. package/dist/src/command-line/commands/ai.d.ts.map +1 -0
  410. package/dist/src/command-line/commands/blocks.d.ts +10 -0
  411. package/dist/src/command-line/commands/blocks.d.ts.map +1 -0
  412. package/dist/src/command-line/commands/doc.d.ts +14 -0
  413. package/dist/src/command-line/commands/doc.d.ts.map +1 -0
  414. package/dist/src/command-line/commands/init.d.ts +18 -0
  415. package/dist/src/command-line/commands/init.d.ts.map +1 -0
  416. package/dist/src/command-line/commands/ls.d.ts +10 -0
  417. package/dist/src/command-line/commands/ls.d.ts.map +1 -0
  418. package/dist/src/command-line/commands/migrate.d.ts +10 -0
  419. package/dist/src/command-line/commands/migrate.d.ts.map +1 -0
  420. package/dist/src/command-line/utils/config.d.ts +42 -0
  421. package/dist/src/command-line/utils/config.d.ts.map +1 -0
  422. package/dist/src/command-line/utils/transformer.d.ts +21 -0
  423. package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
  424. package/dist/src/components/autocomplete/autocomplete.d.ts +181 -0
  425. package/dist/src/components/autocomplete/autocomplete.d.ts.map +1 -0
  426. package/dist/src/components/autocomplete/index.d.ts +3 -0
  427. package/dist/src/components/autocomplete/index.d.ts.map +1 -0
  428. package/dist/src/components/badge/badge.d.ts +180 -0
  429. package/dist/src/components/badge/badge.d.ts.map +1 -0
  430. package/dist/src/components/badge/index.d.ts +2 -0
  431. package/dist/src/components/badge/index.d.ts.map +1 -0
  432. package/dist/src/components/banner/banner.d.ts +106 -0
  433. package/dist/src/components/banner/banner.d.ts.map +1 -0
  434. package/dist/src/components/banner/index.d.ts +2 -0
  435. package/dist/src/components/banner/index.d.ts.map +1 -0
  436. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +78 -0
  437. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  438. package/dist/src/components/breadcrumbs/index.d.ts +2 -0
  439. package/dist/src/components/breadcrumbs/index.d.ts.map +1 -0
  440. package/dist/src/components/button/button.d.ts +214 -0
  441. package/dist/src/components/button/button.d.ts.map +1 -0
  442. package/dist/src/components/button/index.d.ts +2 -0
  443. package/dist/src/components/button/index.d.ts.map +1 -0
  444. package/dist/src/components/chart/Color.d.ts +91 -0
  445. package/dist/src/components/chart/Color.d.ts.map +1 -0
  446. package/dist/src/components/chart/EChart.d.ts +159 -0
  447. package/dist/src/components/chart/EChart.d.ts.map +1 -0
  448. package/dist/src/components/chart/Legend.d.ts +51 -0
  449. package/dist/src/components/chart/Legend.d.ts.map +1 -0
  450. package/dist/src/components/chart/SankeyChart.d.ts +98 -0
  451. package/dist/src/components/chart/SankeyChart.d.ts.map +1 -0
  452. package/dist/src/components/chart/TimeseriesChart.d.ts +181 -0
  453. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -0
  454. package/dist/src/components/chart/index.d.ts +6 -0
  455. package/dist/src/components/chart/index.d.ts.map +1 -0
  456. package/dist/src/components/checkbox/checkbox.d.ts +197 -0
  457. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -0
  458. package/dist/src/components/checkbox/index.d.ts +2 -0
  459. package/dist/src/components/checkbox/index.d.ts.map +1 -0
  460. package/dist/src/components/clipboard-text/clipboard-text.d.ts +88 -0
  461. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -0
  462. package/dist/src/components/clipboard-text/index.d.ts +2 -0
  463. package/dist/src/components/clipboard-text/index.d.ts.map +1 -0
  464. package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
  465. package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
  466. package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
  467. package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
  468. package/dist/src/components/code/code.d.ts +189 -0
  469. package/dist/src/components/code/code.d.ts.map +1 -0
  470. package/dist/src/components/code/index.d.ts +4 -0
  471. package/dist/src/components/code/index.d.ts.map +1 -0
  472. package/dist/src/components/collapsible/collapsible.d.ts +109 -0
  473. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -0
  474. package/dist/src/components/collapsible/index.d.ts +2 -0
  475. package/dist/src/components/collapsible/index.d.ts.map +1 -0
  476. package/dist/src/components/combobox/combobox.d.ts +246 -0
  477. package/dist/src/components/combobox/combobox.d.ts.map +1 -0
  478. package/dist/src/components/combobox/index.d.ts +3 -0
  479. package/dist/src/components/combobox/index.d.ts.map +1 -0
  480. package/dist/src/components/command-palette/command-palette.d.ts +258 -0
  481. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -0
  482. package/dist/src/components/command-palette/index.d.ts +3 -0
  483. package/dist/src/components/command-palette/index.d.ts.map +1 -0
  484. package/dist/src/components/command-palette/types.d.ts +168 -0
  485. package/dist/src/components/command-palette/types.d.ts.map +1 -0
  486. package/dist/src/components/date-picker/date-picker.d.ts +65 -0
  487. package/dist/src/components/date-picker/date-picker.d.ts.map +1 -0
  488. package/dist/src/components/date-picker/index.d.ts +4 -0
  489. package/dist/src/components/date-picker/index.d.ts.map +1 -0
  490. package/dist/src/components/date-range-picker/date-range-picker.d.ts +125 -0
  491. package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -0
  492. package/dist/src/components/date-range-picker/index.d.ts +5 -0
  493. package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
  494. package/dist/src/components/dialog/dialog.d.ts +242 -0
  495. package/dist/src/components/dialog/dialog.d.ts.map +1 -0
  496. package/dist/src/components/dialog/index.d.ts +2 -0
  497. package/dist/src/components/dialog/index.d.ts.map +1 -0
  498. package/dist/src/components/dropdown/dropdown.d.ts +116 -0
  499. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -0
  500. package/dist/src/components/dropdown/index.d.ts +2 -0
  501. package/dist/src/components/dropdown/index.d.ts.map +1 -0
  502. package/dist/src/components/empty/empty.d.ts +69 -0
  503. package/dist/src/components/empty/empty.d.ts.map +1 -0
  504. package/dist/src/components/empty/index.d.ts +2 -0
  505. package/dist/src/components/empty/index.d.ts.map +1 -0
  506. package/dist/src/components/field/field.d.ts +89 -0
  507. package/dist/src/components/field/field.d.ts.map +1 -0
  508. package/dist/src/components/field/index.d.ts +2 -0
  509. package/dist/src/components/field/index.d.ts.map +1 -0
  510. package/dist/src/components/flow/connectors.d.ts +41 -0
  511. package/dist/src/components/flow/connectors.d.ts.map +1 -0
  512. package/dist/src/components/flow/diagram.d.ts +96 -0
  513. package/dist/src/components/flow/diagram.d.ts.map +1 -0
  514. package/dist/src/components/flow/index.d.ts +26 -0
  515. package/dist/src/components/flow/index.d.ts.map +1 -0
  516. package/dist/src/components/flow/node.d.ts +61 -0
  517. package/dist/src/components/flow/node.d.ts.map +1 -0
  518. package/dist/src/components/flow/parallel.d.ts +13 -0
  519. package/dist/src/components/flow/parallel.d.ts.map +1 -0
  520. package/dist/src/components/flow/use-children.d.ts +87 -0
  521. package/dist/src/components/flow/use-children.d.ts.map +1 -0
  522. package/dist/src/components/grid/grid.d.ts +135 -0
  523. package/dist/src/components/grid/grid.d.ts.map +1 -0
  524. package/dist/src/components/grid/index.d.ts +2 -0
  525. package/dist/src/components/grid/index.d.ts.map +1 -0
  526. package/dist/src/components/input/index.d.ts +19 -0
  527. package/dist/src/components/input/index.d.ts.map +1 -0
  528. package/dist/src/components/input/input-area.d.ts +65 -0
  529. package/dist/src/components/input/input-area.d.ts.map +1 -0
  530. package/dist/src/components/input/input.d.ts +175 -0
  531. package/dist/src/components/input/input.d.ts.map +1 -0
  532. package/dist/src/components/input-group/context.d.ts +96 -0
  533. package/dist/src/components/input-group/context.d.ts.map +1 -0
  534. package/dist/src/components/input-group/index.d.ts +2 -0
  535. package/dist/src/components/input-group/index.d.ts.map +1 -0
  536. package/dist/src/components/input-group/input-group-addon.d.ts +15 -0
  537. package/dist/src/components/input-group/input-group-addon.d.ts.map +1 -0
  538. package/dist/src/components/input-group/input-group-button.d.ts +36 -0
  539. package/dist/src/components/input-group/input-group-button.d.ts.map +1 -0
  540. package/dist/src/components/input-group/input-group-input.d.ts +9 -0
  541. package/dist/src/components/input-group/input-group-input.d.ts.map +1 -0
  542. package/dist/src/components/input-group/input-group-suffix.d.ts +13 -0
  543. package/dist/src/components/input-group/input-group-suffix.d.ts.map +1 -0
  544. package/dist/src/components/input-group/input-group.d.ts +43 -0
  545. package/dist/src/components/input-group/input-group.d.ts.map +1 -0
  546. package/dist/src/components/label/index.d.ts +2 -0
  547. package/dist/src/components/label/index.d.ts.map +1 -0
  548. package/dist/src/components/label/label.d.ts +67 -0
  549. package/dist/src/components/label/label.d.ts.map +1 -0
  550. package/dist/src/components/layer-card/index.d.ts +2 -0
  551. package/dist/src/components/layer-card/index.d.ts.map +1 -0
  552. package/dist/src/components/layer-card/layer-card.d.ts +60 -0
  553. package/dist/src/components/layer-card/layer-card.d.ts.map +1 -0
  554. package/dist/src/components/link/index.d.ts +2 -0
  555. package/dist/src/components/link/index.d.ts.map +1 -0
  556. package/dist/src/components/link/link.d.ts +66 -0
  557. package/dist/src/components/link/link.d.ts.map +1 -0
  558. package/dist/src/components/loader/index.d.ts +3 -0
  559. package/dist/src/components/loader/index.d.ts.map +1 -0
  560. package/dist/src/components/loader/loader.d.ts +70 -0
  561. package/dist/src/components/loader/loader.d.ts.map +1 -0
  562. package/dist/src/components/loader/skeleton-line.d.ts +11 -0
  563. package/dist/src/components/loader/skeleton-line.d.ts.map +1 -0
  564. package/dist/src/components/menubar/index.d.ts +3 -0
  565. package/dist/src/components/menubar/index.d.ts.map +1 -0
  566. package/dist/src/components/menubar/menubar.d.ts +66 -0
  567. package/dist/src/components/menubar/menubar.d.ts.map +1 -0
  568. package/dist/src/components/menubar/use-menu-navigation.d.ts +8 -0
  569. package/dist/src/components/menubar/use-menu-navigation.d.ts.map +1 -0
  570. package/dist/src/components/meter/index.d.ts +2 -0
  571. package/dist/src/components/meter/index.d.ts.map +1 -0
  572. package/dist/src/components/meter/meter.d.ts +44 -0
  573. package/dist/src/components/meter/meter.d.ts.map +1 -0
  574. package/dist/src/components/pagination/index.d.ts +2 -0
  575. package/dist/src/components/pagination/index.d.ts.map +1 -0
  576. package/dist/src/components/pagination/pagination.d.ts +241 -0
  577. package/dist/src/components/pagination/pagination.d.ts.map +1 -0
  578. package/dist/src/components/popover/index.d.ts +3 -0
  579. package/dist/src/components/popover/index.d.ts.map +1 -0
  580. package/dist/src/components/popover/popover.d.ts +178 -0
  581. package/dist/src/components/popover/popover.d.ts.map +1 -0
  582. package/dist/src/components/radio/index.d.ts +2 -0
  583. package/dist/src/components/radio/index.d.ts.map +1 -0
  584. package/dist/src/components/radio/radio.d.ts +277 -0
  585. package/dist/src/components/radio/radio.d.ts.map +1 -0
  586. package/dist/src/components/radio/radio.type-spec.d.ts +12 -0
  587. package/dist/src/components/radio/radio.type-spec.d.ts.map +1 -0
  588. package/dist/src/components/select/index.d.ts +2 -0
  589. package/dist/src/components/select/index.d.ts.map +1 -0
  590. package/dist/src/components/select/select.d.ts +288 -0
  591. package/dist/src/components/select/select.d.ts.map +1 -0
  592. package/dist/src/components/sensitive-input/index.d.ts +2 -0
  593. package/dist/src/components/sensitive-input/index.d.ts.map +1 -0
  594. package/dist/src/components/sensitive-input/sensitive-input.d.ts +94 -0
  595. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -0
  596. package/dist/src/components/sidebar/index.d.ts +2 -0
  597. package/dist/src/components/sidebar/index.d.ts.map +1 -0
  598. package/dist/src/components/sidebar/sidebar.d.ts +581 -0
  599. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
  600. package/dist/src/components/surface/index.d.ts +5 -0
  601. package/dist/src/components/surface/index.d.ts.map +1 -0
  602. package/dist/src/components/surface/surface.d.ts +64 -0
  603. package/dist/src/components/surface/surface.d.ts.map +1 -0
  604. package/dist/src/components/switch/index.d.ts +2 -0
  605. package/dist/src/components/switch/index.d.ts.map +1 -0
  606. package/dist/src/components/switch/switch.d.ts +197 -0
  607. package/dist/src/components/switch/switch.d.ts.map +1 -0
  608. package/dist/src/components/table/index.d.ts +2 -0
  609. package/dist/src/components/table/index.d.ts.map +1 -0
  610. package/dist/src/components/table/table.d.ts +138 -0
  611. package/dist/src/components/table/table.d.ts.map +1 -0
  612. package/dist/src/components/table-of-contents/index.d.ts +2 -0
  613. package/dist/src/components/table-of-contents/index.d.ts.map +1 -0
  614. package/dist/src/components/table-of-contents/table-of-contents.d.ts +72 -0
  615. package/dist/src/components/table-of-contents/table-of-contents.d.ts.map +1 -0
  616. package/dist/src/components/tabs/index.d.ts +3 -0
  617. package/dist/src/components/tabs/index.d.ts.map +1 -0
  618. package/dist/src/components/tabs/tabs.d.ts +116 -0
  619. package/dist/src/components/tabs/tabs.d.ts.map +1 -0
  620. package/dist/src/components/text/index.d.ts +2 -0
  621. package/dist/src/components/text/index.d.ts.map +1 -0
  622. package/dist/src/components/text/text.d.ts +214 -0
  623. package/dist/src/components/text/text.d.ts.map +1 -0
  624. package/dist/src/components/text/text.type-spec.d.ts +44 -0
  625. package/dist/src/components/text/text.type-spec.d.ts.map +1 -0
  626. package/dist/src/components/toast/index.d.ts +5 -0
  627. package/dist/src/components/toast/index.d.ts.map +1 -0
  628. package/dist/src/components/toast/toast.d.ts +197 -0
  629. package/dist/src/components/toast/toast.d.ts.map +1 -0
  630. package/dist/src/components/tooltip/index.d.ts +2 -0
  631. package/dist/src/components/tooltip/index.d.ts.map +1 -0
  632. package/dist/src/components/tooltip/tooltip.d.ts +108 -0
  633. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
  634. package/dist/src/index.d.ts +84 -0
  635. package/dist/src/index.d.ts.map +1 -0
  636. package/dist/src/primitives/accordion.d.ts +13 -0
  637. package/dist/src/primitives/accordion.d.ts.map +1 -0
  638. package/dist/src/primitives/alert-dialog.d.ts +13 -0
  639. package/dist/src/primitives/alert-dialog.d.ts.map +1 -0
  640. package/dist/src/primitives/autocomplete.d.ts +13 -0
  641. package/dist/src/primitives/autocomplete.d.ts.map +1 -0
  642. package/dist/src/primitives/avatar.d.ts +13 -0
  643. package/dist/src/primitives/avatar.d.ts.map +1 -0
  644. package/dist/src/primitives/button.d.ts +13 -0
  645. package/dist/src/primitives/button.d.ts.map +1 -0
  646. package/dist/src/primitives/checkbox-group.d.ts +13 -0
  647. package/dist/src/primitives/checkbox-group.d.ts.map +1 -0
  648. package/dist/src/primitives/checkbox.d.ts +13 -0
  649. package/dist/src/primitives/checkbox.d.ts.map +1 -0
  650. package/dist/src/primitives/collapsible.d.ts +13 -0
  651. package/dist/src/primitives/collapsible.d.ts.map +1 -0
  652. package/dist/src/primitives/combobox.d.ts +13 -0
  653. package/dist/src/primitives/combobox.d.ts.map +1 -0
  654. package/dist/src/primitives/context-menu.d.ts +13 -0
  655. package/dist/src/primitives/context-menu.d.ts.map +1 -0
  656. package/dist/src/primitives/csp-provider.d.ts +13 -0
  657. package/dist/src/primitives/csp-provider.d.ts.map +1 -0
  658. package/dist/src/primitives/dialog.d.ts +13 -0
  659. package/dist/src/primitives/dialog.d.ts.map +1 -0
  660. package/dist/src/primitives/direction-provider.d.ts +13 -0
  661. package/dist/src/primitives/direction-provider.d.ts.map +1 -0
  662. package/dist/src/primitives/drawer.d.ts +13 -0
  663. package/dist/src/primitives/drawer.d.ts.map +1 -0
  664. package/dist/src/primitives/field.d.ts +13 -0
  665. package/dist/src/primitives/field.d.ts.map +1 -0
  666. package/dist/src/primitives/fieldset.d.ts +13 -0
  667. package/dist/src/primitives/fieldset.d.ts.map +1 -0
  668. package/dist/src/primitives/form.d.ts +13 -0
  669. package/dist/src/primitives/form.d.ts.map +1 -0
  670. package/dist/src/primitives/index.d.ts +55 -0
  671. package/dist/src/primitives/index.d.ts.map +1 -0
  672. package/dist/src/primitives/input.d.ts +13 -0
  673. package/dist/src/primitives/input.d.ts.map +1 -0
  674. package/dist/src/primitives/menu.d.ts +13 -0
  675. package/dist/src/primitives/menu.d.ts.map +1 -0
  676. package/dist/src/primitives/menubar.d.ts +13 -0
  677. package/dist/src/primitives/menubar.d.ts.map +1 -0
  678. package/dist/src/primitives/meter.d.ts +13 -0
  679. package/dist/src/primitives/meter.d.ts.map +1 -0
  680. package/dist/src/primitives/navigation-menu.d.ts +13 -0
  681. package/dist/src/primitives/navigation-menu.d.ts.map +1 -0
  682. package/dist/src/primitives/number-field.d.ts +13 -0
  683. package/dist/src/primitives/number-field.d.ts.map +1 -0
  684. package/dist/src/primitives/otp-field.d.ts +13 -0
  685. package/dist/src/primitives/otp-field.d.ts.map +1 -0
  686. package/dist/src/primitives/popover.d.ts +13 -0
  687. package/dist/src/primitives/popover.d.ts.map +1 -0
  688. package/dist/src/primitives/preview-card.d.ts +13 -0
  689. package/dist/src/primitives/preview-card.d.ts.map +1 -0
  690. package/dist/src/primitives/progress.d.ts +13 -0
  691. package/dist/src/primitives/progress.d.ts.map +1 -0
  692. package/dist/src/primitives/radio-group.d.ts +13 -0
  693. package/dist/src/primitives/radio-group.d.ts.map +1 -0
  694. package/dist/src/primitives/radio.d.ts +13 -0
  695. package/dist/src/primitives/radio.d.ts.map +1 -0
  696. package/dist/src/primitives/scroll-area.d.ts +13 -0
  697. package/dist/src/primitives/scroll-area.d.ts.map +1 -0
  698. package/dist/src/primitives/select.d.ts +13 -0
  699. package/dist/src/primitives/select.d.ts.map +1 -0
  700. package/dist/src/primitives/separator.d.ts +13 -0
  701. package/dist/src/primitives/separator.d.ts.map +1 -0
  702. package/dist/src/primitives/slider.d.ts +13 -0
  703. package/dist/src/primitives/slider.d.ts.map +1 -0
  704. package/dist/src/primitives/switch.d.ts +13 -0
  705. package/dist/src/primitives/switch.d.ts.map +1 -0
  706. package/dist/src/primitives/tabs.d.ts +13 -0
  707. package/dist/src/primitives/tabs.d.ts.map +1 -0
  708. package/dist/src/primitives/toast.d.ts +13 -0
  709. package/dist/src/primitives/toast.d.ts.map +1 -0
  710. package/dist/src/primitives/toggle-group.d.ts +13 -0
  711. package/dist/src/primitives/toggle-group.d.ts.map +1 -0
  712. package/dist/src/primitives/toggle.d.ts +13 -0
  713. package/dist/src/primitives/toggle.d.ts.map +1 -0
  714. package/dist/src/primitives/toolbar.d.ts +13 -0
  715. package/dist/src/primitives/toolbar.d.ts.map +1 -0
  716. package/dist/src/primitives/tooltip.d.ts +13 -0
  717. package/dist/src/primitives/tooltip.d.ts.map +1 -0
  718. package/dist/src/registry/index.d.ts +8 -0
  719. package/dist/src/registry/index.d.ts.map +1 -0
  720. package/dist/src/registry/types.d.ts +191 -0
  721. package/dist/src/registry/types.d.ts.map +1 -0
  722. package/dist/src/utils/cn.d.ts +4 -0
  723. package/dist/src/utils/cn.d.ts.map +1 -0
  724. package/dist/src/utils/index.d.ts +4 -0
  725. package/dist/src/utils/index.d.ts.map +1 -0
  726. package/dist/src/utils/link-provider.d.ts +66 -0
  727. package/dist/src/utils/link-provider.d.ts.map +1 -0
  728. package/dist/src/utils/portal-provider.d.ts +56 -0
  729. package/dist/src/utils/portal-provider.d.ts.map +1 -0
  730. package/dist/src/utils/prop-examples.d.ts +36 -0
  731. package/dist/src/utils/prop-examples.d.ts.map +1 -0
  732. package/dist/src/utils/resolve-variant.d.ts +27 -0
  733. package/dist/src/utils/resolve-variant.d.ts.map +1 -0
  734. package/dist/styles/reki-binding.css +303 -0
  735. package/dist/styles/reki-standalone.css +2 -0
  736. package/dist/styles/reki.css +700 -0
  737. package/dist/styles/theme-fedramp.css +39 -0
  738. package/dist/styles/theme-reki.css +412 -0
  739. package/dist/utils.js +12 -0
  740. package/dist/utils.js.map +1 -0
  741. package/package.json +511 -0
  742. package/scripts/component-registry/cache.ts +123 -0
  743. package/scripts/component-registry/discovery.ts +469 -0
  744. package/scripts/component-registry/example-cleanup.ts +168 -0
  745. package/scripts/component-registry/index.test.ts +987 -0
  746. package/scripts/component-registry/index.ts +970 -0
  747. package/scripts/component-registry/markdown-generator.ts +222 -0
  748. package/scripts/component-registry/metadata.ts +956 -0
  749. package/scripts/component-registry/props-filter.ts +310 -0
  750. package/scripts/component-registry/schema-generator.ts +331 -0
  751. package/scripts/component-registry/sub-components.ts +380 -0
  752. package/scripts/component-registry/types.ts +158 -0
  753. package/scripts/component-registry/utils.ts +280 -0
  754. package/scripts/component-registry/variant-parser.ts +261 -0
  755. package/scripts/css-build.ts +105 -0
  756. package/scripts/generate-primitives.ts +183 -0
  757. package/scripts/theme-generator/config.ts +653 -0
  758. package/scripts/theme-generator/generate-css.test.ts +30 -0
  759. package/scripts/theme-generator/generate-css.ts +351 -0
  760. package/scripts/theme-generator/index.ts +159 -0
  761. package/scripts/theme-generator/migrate.ts +560 -0
  762. package/scripts/theme-generator/types.ts +92 -0
package/ai/schemas.ts ADDED
@@ -0,0 +1,955 @@
1
+ /**
2
+ * Auto-generated Zod schemas for Reki components
3
+ * DO NOT EDIT - Generated by scripts/component-registry/index.ts
4
+ *
5
+ * These schemas enable runtime validation of AI-generated UI trees.
6
+ */
7
+
8
+ import { z } from "zod";
9
+
10
+ // SafeParseReturnType was removed in Zod v4, but we still want stable typing.
11
+ export type SafeParseResult<T> =
12
+ | { success: true; data: T; error?: never }
13
+ | { success: false; error: z.ZodError<any>; data?: never };
14
+
15
+ // =============================================================================
16
+ // Dynamic Value Schema (for data binding)
17
+ // =============================================================================
18
+
19
+ /**
20
+ * A value that can either be a literal or a reference to the data model.
21
+ * Example: "Hello" or { path: "/user/name" }
22
+ */
23
+ export const DynamicValueSchema = z.union([
24
+ z.string(),
25
+ z.number(),
26
+ z.boolean(),
27
+ z.null(),
28
+ z.object({ path: z.string() }),
29
+ ]);
30
+
31
+ export type DynamicValue<T = unknown> = T | { path: string };
32
+
33
+ // =============================================================================
34
+ // Visibility Condition Schemas
35
+ // =============================================================================
36
+
37
+ /**
38
+ * Visibility conditions for conditional rendering.
39
+ * Components can be shown/hidden based on data, auth, or logic expressions.
40
+ */
41
+
42
+ // Forward declaration for recursive types
43
+ // Note: Numeric comparisons use DynamicValue (not DynamicValue<number>) for Zod compatibility
44
+ export type LogicExpression =
45
+ | { and: LogicExpression[] }
46
+ | { or: LogicExpression[] }
47
+ | { not: LogicExpression }
48
+ | { path: string }
49
+ | { eq: [DynamicValue, DynamicValue] }
50
+ | { neq: [DynamicValue, DynamicValue] }
51
+ | { gt: [DynamicValue, DynamicValue] }
52
+ | { gte: [DynamicValue, DynamicValue] }
53
+ | { lt: [DynamicValue, DynamicValue] }
54
+ | { lte: [DynamicValue, DynamicValue] };
55
+
56
+ // Lazy schema for recursive logic expressions
57
+ const LogicExpressionSchema: z.ZodType<LogicExpression> = z.lazy(() =>
58
+ z.union([
59
+ z.object({ and: z.array(LogicExpressionSchema) }),
60
+ z.object({ or: z.array(LogicExpressionSchema) }),
61
+ z.object({ not: LogicExpressionSchema }),
62
+ z.object({ path: z.string() }),
63
+ z.object({ eq: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
64
+ z.object({ neq: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
65
+ z.object({ gt: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
66
+ z.object({ gte: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
67
+ z.object({ lt: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
68
+ z.object({ lte: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
69
+ ])
70
+ );
71
+
72
+ export const VisibilityConditionSchema = z.union([
73
+ z.boolean(),
74
+ z.object({ path: z.string() }),
75
+ z.object({ auth: z.enum(["signedIn", "signedOut"]) }),
76
+ LogicExpressionSchema,
77
+ ]);
78
+
79
+ export type VisibilityCondition = z.infer<typeof VisibilityConditionSchema>;
80
+
81
+ // =============================================================================
82
+ // Action Schemas
83
+ // =============================================================================
84
+
85
+ /**
86
+ * Action confirmation dialog configuration
87
+ */
88
+ export const ActionConfirmSchema = z.object({
89
+ title: z.string(),
90
+ message: z.string(),
91
+ variant: z.enum(["default", "danger"]).optional(),
92
+ confirmLabel: z.string().optional(),
93
+ cancelLabel: z.string().optional(),
94
+ });
95
+
96
+ /**
97
+ * Action definition that AI can declare
98
+ */
99
+ export const ActionSchema = z.object({
100
+ name: z.string(),
101
+ params: z.record(z.string(), DynamicValueSchema).optional(),
102
+ confirm: ActionConfirmSchema.optional(),
103
+ onSuccess: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
104
+ onError: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
105
+ });
106
+
107
+ export type Action = z.infer<typeof ActionSchema>;
108
+
109
+ // =============================================================================
110
+ // Component Props Schemas
111
+ // =============================================================================
112
+
113
+ export const AutocompletePropsSchema = z.object({
114
+ items: z.array(z.unknown()), // Array of items to display in the dropdown
115
+ value: z.array(z.unknown()).optional(), // The controlled input value
116
+ open: z.boolean().optional(), // Whether the popup is open (controlled)
117
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Autocomplete content (input group, popup content)
118
+ className: z.string().optional(), // Additional CSS classes
119
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content (enables Field wrapper)
120
+ required: z.boolean().optional(), // Whether the field is required
121
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label
122
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the field
123
+ error: z.unknown().optional(), // Error message or validation error object
124
+ });
125
+
126
+ export const BadgePropsSchema = z.object({
127
+ variant: z.enum(["primary", "secondary", "error", "warning", "success", "destructive", "info", "beta", "outline", "red", "green", "neutral", "orange", "purple", "teal", "teal-subtle", "blue"]).optional(), // Color variant of the badge. Recommended semantic variants: - `"primary"` — Primary badge - `"secondary"` — Secondary badge - `"error"` — Error badge - `"warning"` — Warning badge - `"success"` — Success badge - `"info"` — Info badge Additional token variants: - `"red"`, `"orange"`, `"green"`, `"teal"`, `"blue"`, `"purple"`, `"neutral"` - `"teal-subtle"`, `"neutral-subtle"` - `"inverted"` - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features
128
+ appearance: z.enum(["filled", "dot"]).optional(), // Visual appearance of the badge. - `"filled"` — Filled background using the variant color (default) - `"dot"` — Outlined badge with a colored circle dot. Only `success`, `warning`, `error`, and `neutral` variants show a dot; other variants render the badge without a dot.
129
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
130
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the badge.
131
+ });
132
+
133
+ export const BannerPropsSchema = z.object({
134
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
135
+ id: z.string().optional(),
136
+ lang: z.string().optional(),
137
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`).
138
+ title: z.string().optional(), // Primary heading text for the banner. Use for i18n string injection.
139
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Secondary description text displayed below the title. Use for i18n string injection.
140
+ action: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Action slot rendered at the trailing end of the banner (e.g. a CTA button or link). Only used in structured mode (with `title` or `description`).
141
+ text: z.string().optional(),
142
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
143
+ variant: z.enum(["default", "alert", "error", "secondary"]).optional(), // Visual style of the banner. - `"default"` — Informational blue banner for general messages - `"alert"` — Warning yellow banner for cautionary messages - `"error"` — Error red banner for critical issues - `"secondary"` — Neutral banner for secondary messages
144
+ });
145
+
146
+ export const BreadcrumbsPropsSchema = z.object({
147
+ size: z.enum(["sm", "base"]).optional(), // Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size
148
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
149
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
150
+ });
151
+
152
+ export const ButtonPropsSchema = z.object({
153
+ shape: z.enum(["base", "square", "circle"]).optional(),
154
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(),
155
+ variant: z.enum(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
156
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
157
+ className: z.string().optional(),
158
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
159
+ loading: z.boolean().optional(), // Shows a loading spinner and disables interaction.
160
+ title: z.string().optional(),
161
+ id: z.string().optional(),
162
+ lang: z.string().optional(),
163
+ disabled: z.boolean().optional(),
164
+ name: z.string().optional(),
165
+ type: z.enum(["submit", "reset", "button"]).optional(),
166
+ value: z.unknown().optional(),
167
+ });
168
+
169
+ export const CheckboxPropsSchema = z.object({
170
+ variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
171
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
172
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
173
+ controlFirst: z.boolean().optional(), // When true (default), checkbox appears before label. When false, label appears before checkbox.
174
+ checked: z.boolean().optional(), // Whether the checkbox is checked (controlled)
175
+ indeterminate: z.boolean().optional(), // Whether the checkbox is in indeterminate state
176
+ disabled: z.boolean().optional(), // Whether the checkbox is disabled
177
+ name: z.string().optional(), // Name for form submission
178
+ required: z.boolean().optional(), // Whether the field is required
179
+ className: z.string().optional(), // Additional class name
180
+ });
181
+
182
+ export const ClipboardTextPropsSchema = z.object({
183
+ size: z.enum(["sm", "base", "lg"]).optional(), // Size of the clipboard text field. - `"sm"` — Small clipboard text for compact UIs - `"base"` — Default clipboard text size - `"lg"` — Large clipboard text for prominent display
184
+ text: z.string(), // The text to display and copy to clipboard.
185
+ textToCopy: z.string().optional(), // If provided, this text will be copied to clipboard instead of the `text` prop.
186
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
187
+ tooltip: z.unknown().optional(), // Tooltip config. Shows tooltip on hover, anchored toast on click.
188
+ labels: z.unknown().optional(), // Accessible labels for i18n.
189
+ });
190
+
191
+ export const CloudflareLogoPropsSchema = z.object({
192
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
193
+ className: z.string().optional(),
194
+ height: z.unknown().optional(),
195
+ id: z.string().optional(),
196
+ lang: z.string().optional(),
197
+ media: z.string().optional(),
198
+ method: z.string().optional(),
199
+ name: z.string().optional(),
200
+ target: z.string().optional(),
201
+ type: z.string().optional(),
202
+ width: z.unknown().optional(),
203
+ accentHeight: z.unknown().optional(),
204
+ accumulate: z.enum(["none", "sum"]).optional(),
205
+ additive: z.enum(["replace", "sum"]).optional(),
206
+ alignmentBaseline: z.enum(["auto", "baseline", "before-edge", "text-before-edge", "middle", "central", "after-edge", "text-after-edge", "ideographic", "alphabetic", "hanging", "mathematical", "inherit"]).optional(),
207
+ allowReorder: z.enum(["no", "yes"]).optional(),
208
+ alphabetic: z.unknown().optional(),
209
+ amplitude: z.unknown().optional(),
210
+ arabicForm: z.enum(["initial", "medial", "terminal", "isolated"]).optional(),
211
+ ascent: z.unknown().optional(),
212
+ attributeName: z.string().optional(),
213
+ attributeType: z.string().optional(),
214
+ autoReverse: z.unknown().optional(),
215
+ azimuth: z.unknown().optional(),
216
+ baseFrequency: z.unknown().optional(),
217
+ baselineShift: z.unknown().optional(),
218
+ baseProfile: z.unknown().optional(),
219
+ bbox: z.unknown().optional(),
220
+ begin: z.unknown().optional(),
221
+ bias: z.unknown().optional(),
222
+ by: z.unknown().optional(),
223
+ calcMode: z.unknown().optional(),
224
+ capHeight: z.unknown().optional(),
225
+ clip: z.unknown().optional(),
226
+ clipPath: z.string().optional(),
227
+ clipPathUnits: z.unknown().optional(),
228
+ clipRule: z.unknown().optional(),
229
+ colorInterpolation: z.unknown().optional(),
230
+ colorInterpolationFilters: z.enum(["auto", "sRGB", "linearRGB", "inherit"]).optional(),
231
+ colorProfile: z.unknown().optional(),
232
+ colorRendering: z.unknown().optional(),
233
+ contentScriptType: z.unknown().optional(),
234
+ contentStyleType: z.unknown().optional(),
235
+ cursor: z.unknown().optional(),
236
+ cx: z.unknown().optional(),
237
+ cy: z.unknown().optional(),
238
+ d: z.string().optional(),
239
+ decelerate: z.unknown().optional(),
240
+ descent: z.unknown().optional(),
241
+ diffuseConstant: z.unknown().optional(),
242
+ direction: z.unknown().optional(),
243
+ display: z.unknown().optional(),
244
+ divisor: z.unknown().optional(),
245
+ dominantBaseline: z.enum(["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge", "inherit"]).optional(),
246
+ dur: z.unknown().optional(),
247
+ dx: z.unknown().optional(),
248
+ dy: z.unknown().optional(),
249
+ edgeMode: z.unknown().optional(),
250
+ elevation: z.unknown().optional(),
251
+ enableBackground: z.unknown().optional(),
252
+ end: z.unknown().optional(),
253
+ exponent: z.unknown().optional(),
254
+ externalResourcesRequired: z.unknown().optional(),
255
+ fill: z.string().optional(),
256
+ fillOpacity: z.unknown().optional(),
257
+ fillRule: z.enum(["nonzero", "evenodd", "inherit"]).optional(),
258
+ filter: z.string().optional(),
259
+ filterRes: z.unknown().optional(),
260
+ filterUnits: z.unknown().optional(),
261
+ floodColor: z.unknown().optional(),
262
+ floodOpacity: z.unknown().optional(),
263
+ focusable: z.unknown().optional(),
264
+ fontFamily: z.string().optional(),
265
+ fontSize: z.unknown().optional(),
266
+ fontSizeAdjust: z.unknown().optional(),
267
+ fontStretch: z.unknown().optional(),
268
+ fontStyle: z.unknown().optional(),
269
+ fontVariant: z.unknown().optional(),
270
+ fontWeight: z.unknown().optional(),
271
+ format: z.unknown().optional(),
272
+ fr: z.unknown().optional(),
273
+ from: z.unknown().optional(),
274
+ fx: z.unknown().optional(),
275
+ fy: z.unknown().optional(),
276
+ g1: z.unknown().optional(),
277
+ g2: z.unknown().optional(),
278
+ glyphName: z.unknown().optional(),
279
+ glyphOrientationHorizontal: z.unknown().optional(),
280
+ glyphOrientationVertical: z.unknown().optional(),
281
+ glyphRef: z.unknown().optional(),
282
+ gradientTransform: z.string().optional(),
283
+ gradientUnits: z.string().optional(),
284
+ hanging: z.unknown().optional(),
285
+ horizAdvX: z.unknown().optional(),
286
+ horizOriginX: z.unknown().optional(),
287
+ href: z.string().optional(),
288
+ ideographic: z.unknown().optional(),
289
+ imageRendering: z.unknown().optional(),
290
+ in2: z.unknown().optional(),
291
+ in: z.string().optional(),
292
+ intercept: z.unknown().optional(),
293
+ k1: z.unknown().optional(),
294
+ k2: z.unknown().optional(),
295
+ k3: z.unknown().optional(),
296
+ k4: z.unknown().optional(),
297
+ k: z.unknown().optional(),
298
+ kernelMatrix: z.unknown().optional(),
299
+ kernelUnitLength: z.unknown().optional(),
300
+ kerning: z.unknown().optional(),
301
+ keyPoints: z.unknown().optional(),
302
+ keySplines: z.unknown().optional(),
303
+ keyTimes: z.unknown().optional(),
304
+ lengthAdjust: z.unknown().optional(),
305
+ letterSpacing: z.unknown().optional(),
306
+ lightingColor: z.unknown().optional(),
307
+ limitingConeAngle: z.unknown().optional(),
308
+ local: z.unknown().optional(),
309
+ markerEnd: z.string().optional(),
310
+ markerHeight: z.unknown().optional(),
311
+ markerMid: z.string().optional(),
312
+ markerStart: z.string().optional(),
313
+ markerUnits: z.unknown().optional(),
314
+ markerWidth: z.unknown().optional(),
315
+ mask: z.string().optional(),
316
+ maskContentUnits: z.unknown().optional(),
317
+ maskUnits: z.unknown().optional(),
318
+ mathematical: z.unknown().optional(),
319
+ mode: z.unknown().optional(),
320
+ numOctaves: z.unknown().optional(),
321
+ offset: z.unknown().optional(),
322
+ opacity: z.unknown().optional(),
323
+ operator: z.unknown().optional(),
324
+ order: z.unknown().optional(),
325
+ orient: z.unknown().optional(),
326
+ orientation: z.unknown().optional(),
327
+ origin: z.unknown().optional(),
328
+ overflow: z.unknown().optional(),
329
+ overlinePosition: z.unknown().optional(),
330
+ overlineThickness: z.unknown().optional(),
331
+ paintOrder: z.unknown().optional(),
332
+ panose1: z.unknown().optional(),
333
+ path: z.string().optional(),
334
+ pathLength: z.unknown().optional(),
335
+ patternContentUnits: z.string().optional(),
336
+ patternTransform: z.unknown().optional(),
337
+ patternUnits: z.string().optional(),
338
+ pointerEvents: z.unknown().optional(),
339
+ points: z.string().optional(),
340
+ pointsAtX: z.unknown().optional(),
341
+ pointsAtY: z.unknown().optional(),
342
+ pointsAtZ: z.unknown().optional(),
343
+ preserveAlpha: z.unknown().optional(),
344
+ preserveAspectRatio: z.string().optional(),
345
+ primitiveUnits: z.unknown().optional(),
346
+ r: z.unknown().optional(),
347
+ radius: z.unknown().optional(),
348
+ refX: z.unknown().optional(),
349
+ refY: z.unknown().optional(),
350
+ renderingIntent: z.unknown().optional(),
351
+ repeatCount: z.unknown().optional(),
352
+ repeatDur: z.unknown().optional(),
353
+ requiredExtensions: z.unknown().optional(),
354
+ requiredFeatures: z.unknown().optional(),
355
+ restart: z.unknown().optional(),
356
+ result: z.string().optional(),
357
+ rotate: z.unknown().optional(),
358
+ rx: z.unknown().optional(),
359
+ ry: z.unknown().optional(),
360
+ scale: z.unknown().optional(),
361
+ seed: z.unknown().optional(),
362
+ shapeRendering: z.unknown().optional(),
363
+ slope: z.unknown().optional(),
364
+ spacing: z.unknown().optional(),
365
+ specularConstant: z.unknown().optional(),
366
+ specularExponent: z.unknown().optional(),
367
+ speed: z.unknown().optional(),
368
+ spreadMethod: z.string().optional(),
369
+ startOffset: z.unknown().optional(),
370
+ stdDeviation: z.unknown().optional(),
371
+ stemh: z.unknown().optional(),
372
+ stemv: z.unknown().optional(),
373
+ stitchTiles: z.unknown().optional(),
374
+ stopColor: z.string().optional(),
375
+ stopOpacity: z.unknown().optional(),
376
+ strikethroughPosition: z.unknown().optional(),
377
+ strikethroughThickness: z.unknown().optional(),
378
+ string: z.unknown().optional(),
379
+ stroke: z.string().optional(),
380
+ strokeDasharray: z.unknown().optional(),
381
+ strokeDashoffset: z.unknown().optional(),
382
+ strokeLinecap: z.enum(["butt", "round", "square", "inherit"]).optional(),
383
+ strokeLinejoin: z.enum(["miter", "round", "bevel", "inherit"]).optional(),
384
+ strokeMiterlimit: z.unknown().optional(),
385
+ strokeOpacity: z.unknown().optional(),
386
+ strokeWidth: z.unknown().optional(),
387
+ surfaceScale: z.unknown().optional(),
388
+ systemLanguage: z.unknown().optional(),
389
+ tableValues: z.unknown().optional(),
390
+ targetX: z.unknown().optional(),
391
+ targetY: z.unknown().optional(),
392
+ textAnchor: z.enum(["start", "middle", "end", "inherit"]).optional(),
393
+ textDecoration: z.unknown().optional(),
394
+ textLength: z.unknown().optional(),
395
+ textRendering: z.unknown().optional(),
396
+ to: z.unknown().optional(),
397
+ transform: z.string().optional(),
398
+ u1: z.unknown().optional(),
399
+ u2: z.unknown().optional(),
400
+ underlinePosition: z.unknown().optional(),
401
+ underlineThickness: z.unknown().optional(),
402
+ unicode: z.unknown().optional(),
403
+ unicodeBidi: z.unknown().optional(),
404
+ unicodeRange: z.unknown().optional(),
405
+ unitsPerEm: z.unknown().optional(),
406
+ vAlphabetic: z.unknown().optional(),
407
+ values: z.string().optional(),
408
+ vectorEffect: z.unknown().optional(),
409
+ version: z.string().optional(),
410
+ vertAdvY: z.unknown().optional(),
411
+ vertOriginX: z.unknown().optional(),
412
+ vertOriginY: z.unknown().optional(),
413
+ vHanging: z.unknown().optional(),
414
+ vIdeographic: z.unknown().optional(),
415
+ viewBox: z.string().optional(),
416
+ viewTarget: z.unknown().optional(),
417
+ visibility: z.unknown().optional(),
418
+ vMathematical: z.unknown().optional(),
419
+ widths: z.unknown().optional(),
420
+ wordSpacing: z.unknown().optional(),
421
+ writingMode: z.unknown().optional(),
422
+ x1: z.unknown().optional(),
423
+ x2: z.unknown().optional(),
424
+ x: z.unknown().optional(),
425
+ xChannelSelector: z.string().optional(),
426
+ xHeight: z.unknown().optional(),
427
+ xlinkActuate: z.string().optional(),
428
+ xlinkArcrole: z.string().optional(),
429
+ xlinkHref: z.string().optional(),
430
+ xlinkRole: z.string().optional(),
431
+ xlinkShow: z.string().optional(),
432
+ xlinkTitle: z.string().optional(),
433
+ xlinkType: z.string().optional(),
434
+ xmlBase: z.string().optional(),
435
+ xmlLang: z.string().optional(),
436
+ xmlns: z.string().optional(),
437
+ xmlnsXlink: z.string().optional(),
438
+ xmlSpace: z.string().optional(),
439
+ y1: z.unknown().optional(),
440
+ y2: z.unknown().optional(),
441
+ y: z.unknown().optional(),
442
+ yChannelSelector: z.string().optional(),
443
+ z: z.unknown().optional(),
444
+ zoomAndPan: z.string().optional(),
445
+ variant: z.enum(["glyph", "full"]).optional(), // Logo variant - `glyph`: Cloud icon only - `full`: Cloud icon with "CLOUDFLARE" wordmark below
446
+ });
447
+
448
+ export const CodePropsSchema = z.object({
449
+ lang: z.enum(["ts", "tsx", "jsonc", "bash", "css"]).optional(), // Language hint for the code content. - `"ts"` — TypeScript code - `"tsx"` — TypeScript JSX code - `"jsonc"` — JSON with comments - `"bash"` — Shell/Bash commands - `"css"` — CSS styles
450
+ code: z.string(), // The code string to display.
451
+ values: z.unknown().optional(), // Template values for `{{key}}` interpolation. Values with `highlight: true` are visually emphasized.
452
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
453
+ });
454
+
455
+ export const CollapsiblePropsSchema = z.object({
456
+ className: z.string().optional(), // Additional CSS classes
457
+ onOpenChange: z.unknown().optional(), // Callback when collapsed state changes
458
+ });
459
+
460
+ export const ComboboxPropsSchema = z.object({
461
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size of the combobox trigger. Matches Input component sizes. - `"xs"` — Extra small for compact UIs (h-5 / 20px) - `"sm"` — Small for secondary fields (h-6.5 / 26px) - `"base"` — Default size (h-9 / 36px) - `"lg"` — Large for prominent fields (h-10 / 40px)
462
+ inputSide: z.enum(["right", "top"]).optional(), // Position of the text input relative to chips in multi-select mode. - `"right"` — Input inline to the right of chips - `"top"` — Input above chips
463
+ items: z.array(z.unknown()), // Array of items to display in the dropdown
464
+ value: z.array(z.unknown()).optional(), // Currently selected value(s)
465
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Combobox content (trigger, content, items)
466
+ className: z.string().optional(), // Additional CSS classes
467
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the combobox (enables Field wrapper) - can be a string or any React node
468
+ required: z.boolean().optional(), // Whether the combobox is required
469
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
470
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the combobox
471
+ error: z.unknown().optional(), // Error message or validation error object
472
+ onValueChange: z.unknown().optional(), // Callback when selection changes
473
+ multiple: z.boolean().optional(), // Allow multiple selections
474
+ isItemEqualToValue: z.unknown().optional(), // Custom equality function for comparing items
475
+ });
476
+
477
+ export const CommandPalettePropsSchema = z.object({
478
+ open: z.boolean(), // Whether the dialog is open
479
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child content - typically one or more Panel components
480
+ container: z.unknown().optional(), // Container element for the portal. Use this to render the command palette inside a Shadow DOM or custom container. Overrides `RekiPortalProvider` context.
481
+ });
482
+
483
+ export const DatePickerPropsSchema = z.object({
484
+ className: z.string().optional(), // Additional CSS classes
485
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
486
+ });
487
+
488
+ export const DateRangePickerPropsSchema = z.object({
489
+ size: z.enum(["sm", "base", "lg"]).optional(), // Calendar size. - `"sm"` — Compact calendar for tight spaces - `"base"` — Default calendar size - `"lg"` — Large calendar for prominent date selection
490
+ variant: z.enum(["default", "subtle"]).optional(), // Visual variant. - `"default"` — Standard appearance with overlay background - `"subtle"` — Minimal background
491
+ timezone: z.string().optional(), // Display timezone string shown in the footer.
492
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
493
+ onStartDateChange: z.unknown().optional(), // Callback when start date changes
494
+ onEndDateChange: z.unknown().optional(), // Callback when end date changes
495
+ });
496
+
497
+ export const DialogPropsSchema = z.object({
498
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
499
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Dialog content (typically Title, Description, Close, and action buttons).
500
+ container: z.unknown().optional(), // Container element for the portal. Use this to render the dialog inside a Shadow DOM or custom container. Overrides `RekiPortalProvider` context.
501
+ size: z.enum(["base", "sm", "lg", "xl"]).optional(), // Dialog width. - `"sm"` — Small (min 288px) for simple confirmations - `"base"` — Default (min 384px) - `"lg"` — Large (min 512px) for complex content - `"xl"` — Extra large (min 768px) for detailed views
502
+ });
503
+
504
+ export const DropdownMenuPropsSchema = z.object({
505
+ variant: z.enum(["default", "danger"]).optional(), // Visual style of the dropdown item. - `"default"` — Standard item appearance - `"danger"` — Destructive action with red text
506
+ });
507
+
508
+ export const EmptyPropsSchema = z.object({
509
+ size: z.enum(["sm", "base", "lg"]).optional(), // Size of the empty state container. - `"sm"` — Compact empty state for smaller containers - `"base"` — Default empty state size - `"lg"` — Large empty state for prominent placement
510
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
511
+ title: z.string(), // Primary heading text for the empty state.
512
+ description: z.string().optional(), // Secondary description text displayed below the title.
513
+ commandLine: z.string().optional(), // Shell command displayed in a copyable code block.
514
+ contents: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Additional content (buttons, links) rendered below the description.
515
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
516
+ });
517
+
518
+ export const FieldPropsSchema = z.object({
519
+ controlFirst: z.boolean().optional(), // When `true`, places the control before the label (for checkbox/switch layouts).
520
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The form control element(s) to wrap (Input, Select, Checkbox, etc.).
521
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
522
+ required: z.boolean().optional(), // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
523
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
524
+ error: z.unknown().optional(), // Validation error with a message and a browser `ValidityState` match key.
525
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the control (hidden when `error` is present).
526
+ hideLabel: z.boolean().optional(), // When `true`, Field renders layout, description, and error but skips the `<label>` element. Use when the child component provides its own accessible label (e.g. Select uses Base UI's `Select.Label` to avoid hover/focus coupling from native `<label>`).
527
+ });
528
+
529
+ export const GridPropsSchema = z.object({
530
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Grid items to render.
531
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
532
+ id: z.string().optional(),
533
+ lang: z.string().optional(),
534
+ title: z.string().optional(),
535
+ mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with `"4up"` variant).
536
+ gap: z.enum(["none", "sm", "base", "lg"]).optional(), // Gap size between grid items. - `"none"` — No gap - `"sm"` — 12px gap - `"base"` — Responsive gap (8px → 24px → 32px) - `"lg"` — 32px gap
537
+ variant: z.enum(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional(), // Responsive column layout variant. - `"2up"` — 1 col → 2 cols at md - `"side-by-side"` — Always 2 cols - `"2-1"` — 66%/33% split at md - `"1-2"` — 33%/66% split at md - `"3up"` — 1 → 2 → 3 cols - `"4up"` — 1 → 2 → 3 → 4 cols - `"6up"` — 2 → 3 → 4 → 6 cols - `"1-2-4up"` — 1 → 2 → 4 cols
538
+ });
539
+
540
+ export const InputPropsSchema = z.object({
541
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper) - can be a string or any React node
542
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
543
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
544
+ error: z.unknown().optional(), // Error message or validation error object
545
+ passwordManagerIgnore: z.boolean().optional(), // Suppress browser extension password manager overlays on non-credential inputs.
546
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Input size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default size - `"lg"` — Large for prominent fields
547
+ variant: z.enum(["default", "error"]).optional(), // Visual variant. - `"default"` — Standard input - `"error"` — Error state for validation failures
548
+ });
549
+
550
+ export const InputAreaPropsSchema = z.object({});
551
+
552
+ export const InputGroupPropsSchema = z.object({
553
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
554
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the control (hidden when `error` is present).
555
+ error: z.unknown().optional(), // Validation error with a message and a browser `ValidityState` match key.
556
+ required: z.boolean().optional(), // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
557
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
558
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
559
+ className: z.string().optional(),
560
+ id: z.string().optional(),
561
+ lang: z.string().optional(),
562
+ title: z.string().optional(),
563
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(),
564
+ disabled: z.boolean().optional(),
565
+ });
566
+
567
+ export const LabelPropsSchema = z.object({
568
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
569
+ showOptional: z.boolean().optional(), // When `true`, shows gray "(optional)" text after the label.
570
+ tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
571
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
572
+ htmlFor: z.string().optional(), // The id of the form element this label is associated with
573
+ asContent: z.boolean().optional(), // When true, only renders the inline content (indicators, tooltip) without the outer label element with font styling. Useful when composed inside another label element that already provides the text styling.
574
+ });
575
+
576
+ export const LayerCardPropsSchema = z.object({
577
+ render: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
578
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
579
+ className: z.string().optional(),
580
+ id: z.string().optional(),
581
+ lang: z.string().optional(),
582
+ title: z.string().optional(),
583
+ });
584
+
585
+ export const LinkPropsSchema = z.object({
586
+ variant: z.enum(["inline", "current", "plain"]).optional(), // Visual style of the link. - `"inline"` — Inline text link that flows with content - `"current"` — Link that inherits color from parent text - `"plain"` — Link without underline decoration
587
+ to: z.string().optional(),
588
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
589
+ className: z.string().optional(),
590
+ id: z.string().optional(),
591
+ lang: z.string().optional(),
592
+ title: z.string().optional(),
593
+ download: z.unknown().optional(),
594
+ href: z.string().optional(),
595
+ hrefLang: z.string().optional(),
596
+ media: z.string().optional(),
597
+ ping: z.string().optional(),
598
+ target: z.unknown().optional(),
599
+ type: z.string().optional(),
600
+ referrerPolicy: z.enum(["", "no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "same-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"]).optional(),
601
+ render: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
602
+ });
603
+
604
+ export const LoaderPropsSchema = z.object({
605
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
606
+ size: z.enum(["sm", "base", "lg"]).optional(), // Size of the spinner. Use a preset name or a custom pixel number. - `"sm"` — 16px, for inline use - `"base"` — 24px, default size - `"lg"` — 32px, for prominent loading states
607
+ });
608
+
609
+ export const MenuBarPropsSchema = z.object({
610
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
611
+ isActive: z.unknown().optional(), // The currently active option value — matched against option index or `id`.
612
+ options: z.array(z.unknown()), // Array of menu option configurations.
613
+ optionIds: z.boolean().optional(), // When true, each option's `id` field is used for matching instead of its array index.
614
+ });
615
+
616
+ export const MeterPropsSchema = z.object({
617
+ customValue: z.string().optional(), // Custom formatted value text (e.g. "750 / 1,000") displayed instead of percentage.
618
+ label: z.string(), // Label text displayed above the meter track.
619
+ showValue: z.boolean().optional(), // Whether to display the percentage value next to the label.
620
+ trackClassName: z.string().optional(), // Additional CSS classes for the track (background bar).
621
+ indicatorClassName: z.string().optional(), // Additional CSS classes for the indicator (filled bar).
622
+ value: z.number().optional(), // Current value of the meter
623
+ max: z.number().optional(), // Maximum value of the meter (default: 100)
624
+ min: z.number().optional(), // Minimum value of the meter (default: 0)
625
+ });
626
+
627
+ export const PaginationPropsSchema = z.object({
628
+ setPage: z.unknown(), // Callback when page changes
629
+ page: z.number().optional(), // Current page number (1-indexed).
630
+ perPage: z.number().optional(), // Number of items displayed per page.
631
+ totalCount: z.number().optional(), // Total number of items across all pages.
632
+ className: z.string().optional(), // Additional CSS classes for the container
633
+ labels: z.unknown().optional(), // Labels for internationalization of aria-labels. All labels have English defaults. For visible text like "Showing X of Y", use render props on sub-components: - `Pagination.Info` children for the info text - `Pagination.PageSize` label prop for the "Per page:" text
634
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Compound component children for custom layouts. Use Pagination.Info, Pagination.PageSize, Pagination.Controls, and Pagination.Separator.
635
+ controls: z.enum(["full", "simple"]).optional(),
636
+ text: z.unknown().optional(),
637
+ });
638
+
639
+ export const PopoverPropsSchema = z.object({
640
+ side: z.enum(["top", "bottom", "left", "right"]).optional(), // Which side of the trigger the popover appears on. - `"top"` — Above the trigger - `"bottom"` — Below the trigger - `"left"` — Left of the trigger - `"right"` — Right of the trigger
641
+ });
642
+
643
+ export const RadioPropsSchema = z.object({
644
+ variant: z.enum(["default", "error"]).optional(),
645
+ appearance: z.enum(["default", "card"]).optional(),
646
+ className: z.string().optional(), // Additional CSS classes
647
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
648
+ value: z.unknown().optional(), // The controlled value of the selected radio item.
649
+ defaultValue: z.unknown().optional(), // The uncontrolled initial value of the selected radio item.
650
+ onValueChange: z.unknown().optional(), // Callback fired when the selected value changes. The second argument carries native event details about the interaction.
651
+ });
652
+
653
+ export const SelectPropsSchema = z.object({
654
+ className: z.string().optional(), // Additional CSS classes merged via `cn()`.
655
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size of the select trigger. Matches Input component sizes.
656
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the select. When provided, enables the Field wrapper with a visible label above the select. For accessibility without a visible label, use `aria-label` instead.
657
+ hideLabel: z.boolean().optional(),
658
+ placeholder: z.string().optional(), // Placeholder text shown when no value is selected.
659
+ loading: z.boolean().optional(), // When `true`, shows a skeleton loader in place of the selected value.
660
+ disabled: z.boolean().optional(), // Whether the select is disabled.
661
+ required: z.boolean().optional(), // Whether the select is required. When `false`, shows "(optional)" text.
662
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
663
+ value: z.unknown().optional(), // Currently selected value (controlled mode).
664
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // `Select.Option` elements to render in the dropdown.
665
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the select.
666
+ error: z.unknown().optional(), // Error message string or validation error object with `match` key.
667
+ onValueChange: z.unknown().optional(), // Callback when selection changes
668
+ defaultValue: z.unknown().optional(), // Initial value for uncontrolled mode
669
+ renderValue: z.unknown().optional(), // A function that returns a ReactNode to format the selected value in the trigger. Required when using object values. Use `placeholder` for the empty state.
670
+ items: z.unknown().optional(), // Data structure of items rendered in the popup. Accepts a plain object map (`{ key: "Label" }`) or an array of `{ label, value }` for object/complex values.
671
+ isItemEqualToValue: z.unknown().optional(), // Custom equality function for comparing items. Required when value is an object, since object identity (`===`) won't match across renders.
672
+ });
673
+
674
+ export const SensitiveInputPropsSchema = z.object({
675
+ alt: z.string().optional(),
676
+ autoComplete: z.unknown().optional(),
677
+ checked: z.boolean().optional(),
678
+ disabled: z.boolean().optional(),
679
+ height: z.unknown().optional(),
680
+ list: z.string().optional(),
681
+ name: z.string().optional(),
682
+ placeholder: z.string().optional(),
683
+ readOnly: z.boolean().optional(),
684
+ required: z.boolean().optional(),
685
+ width: z.unknown().optional(),
686
+ className: z.string().optional(),
687
+ id: z.string().optional(),
688
+ lang: z.string().optional(),
689
+ title: z.string().optional(),
690
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
691
+ value: z.string().optional(), // Controlled value
692
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size of the input. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default input size - `"lg"` — Large for prominent fields
693
+ variant: z.enum(["default", "error"]).optional(), // Style variant of the input. - `"default"` — Default input appearance - `"error"` — Error state for validation failures
694
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
695
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
696
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
697
+ error: z.unknown().optional(), // Error message or validation error object
698
+ });
699
+
700
+ export const SidebarPropsSchema = z.object({
701
+ defaultOpen: z.boolean().optional(), // Initial open state when uncontrolled.
702
+ open: z.boolean().optional(), // Controlled open state.
703
+ variant: z.enum(["sidebar", "floating", "inset"]).optional(), // Sidebar layout variant.
704
+ side: z.enum(["left", "right"]).optional(), // Which side the sidebar is on.
705
+ collapsible: z.enum(["icon", "offcanvas", "none"]).optional(),
706
+ resizable: z.boolean().optional(), // Enable drag-to-resize on the sidebar edge.
707
+ defaultWidth: z.number().optional(), // Initial width in pixels when resizable.
708
+ minWidth: z.number().optional(), // Minimum width in pixels when resizing.
709
+ maxWidth: z.number().optional(), // Maximum width in pixels when resizing.
710
+ contained: z.boolean().optional(), // When true, the collapsed sidebar uses absolute positioning instead of fixed, keeping it scoped inside a bounded parent. Useful for demos and embedded sidebars.
711
+ peekable: z.boolean().optional(), // When true, hovering or focusing the collapsed sidebar temporarily expands it. The `state` will be `"peeking"` during the peek. Moving away collapses it back.
712
+ animationDuration: z.number().optional(), // Duration of sidebar expand/collapse animation in milliseconds.
713
+ mobileBreakpoint: z.number().optional(), // Viewport width (in px) below which the sidebar renders as a mobile dialog sheet instead of the desktop aside rail.
714
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content — typically `<Sidebar>` + main content.
715
+ className: z.string().optional(), // Additional CSS classes for the wrapper div.
716
+ });
717
+
718
+ export const SurfacePropsSchema = z.object({
719
+ as: z.unknown().optional(),
720
+ render: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
721
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
722
+ className: z.string().optional(),
723
+ id: z.string().optional(),
724
+ lang: z.string().optional(),
725
+ title: z.string().optional(),
726
+ });
727
+
728
+ export const SwitchPropsSchema = z.object({
729
+ variant: z.enum(["default", "neutral"]).optional(), // Visual variant: "default" (pill, brand color) or "neutral" (squircle, monochrome)
730
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes.
731
+ labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
732
+ required: z.boolean().optional(), // Whether the switch is required. When explicitly false, shows "(optional)" text after the label.
733
+ controlFirst: z.boolean().optional(), // When true (default), switch appears before label. When false, label appears before switch.
734
+ size: z.enum(["sm", "base", "lg"]).optional(),
735
+ checked: z.boolean().optional(),
736
+ disabled: z.boolean().optional(),
737
+ transitioning: z.boolean().optional(),
738
+ name: z.string().optional(),
739
+ type: z.enum(["submit", "reset", "button"]).optional(),
740
+ value: z.unknown().optional(),
741
+ className: z.string().optional(),
742
+ id: z.string().optional(),
743
+ lang: z.string().optional(),
744
+ title: z.string().optional(),
745
+ onClick: z.unknown(), // Callback when switch is clicked
746
+ });
747
+
748
+ export const TablePropsSchema = z.object({
749
+ layout: z.enum(["auto", "fixed"]).optional(),
750
+ variant: z.enum(["default", "selected"]).optional(),
751
+ sticky: z.enum(["left", "right"]).optional(),
752
+ className: z.string().optional(), // Additional CSS classes
753
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
754
+ });
755
+
756
+ export const TableOfContentsPropsSchema = z.object({
757
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
758
+ className: z.string().optional(),
759
+ id: z.string().optional(),
760
+ lang: z.string().optional(),
761
+ title: z.string().optional(),
762
+ });
763
+
764
+ export const TabsPropsSchema = z.object({
765
+ tabs: z.array(z.unknown()).optional(), // Array of tab items to render.
766
+ value: z.string().optional(), // Controlled value. When set, component becomes controlled.
767
+ selectedValue: z.string().optional(), // Default selected value for uncontrolled mode. Ignored when `value` is set.
768
+ activateOnFocus: z.boolean().optional(), // When `true`, tabs are activated immediately upon receiving focus via arrow keys. When `false` (default), tabs receive focus but require Enter/Space to activate.
769
+ className: z.string().optional(), // Additional CSS classes for the root element.
770
+ listClassName: z.string().optional(), // Additional CSS classes for the tab list element.
771
+ indicatorClassName: z.string().optional(), // Additional CSS classes for the indicator element.
772
+ variant: z.enum(["segmented", "underline"]).optional(), // Tab style. - `"segmented"` — Pill-shaped indicator on a filled track - `"underline"` — Underline indicator below tab text
773
+ size: z.enum(["base", "sm"]).optional(), // Tab size. - `"base"` — Default size (h-9, text-base) - `"sm"` — Compact size (h-6.5, text-xs) — matches Input size="sm"
774
+ onValueChange: z.unknown().optional(), // Callback when active tab changes
775
+ });
776
+
777
+ export const TextPropsSchema = z.object({
778
+ variant: z.enum(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(), // Text style variant. Determines color, font, and weight. - `"heading1"` — Large page title (30px, semibold) - `"heading2"` — Section title (24px, semibold) - `"heading3"` — Subsection title (18px, semibold) - `"body"` — Default body text - `"secondary"` — Muted text for secondary information - `"success"` — Success state text - `"error"` — Error state text - `"mono"` — Monospace text for code - `"mono-secondary"` — Muted monospace text
779
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Text size (only applies to body/secondary/success/error variants). - `"xs"` — 12px - `"sm"` — 14px - `"base"` — 16px - `"lg"` — 18px
780
+ bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants).
781
+ truncate: z.boolean().optional(), // Whether to truncate overflowing text with an ellipsis. Adds `truncate min-w-0` classes.
782
+ as: z.enum(["h1", "h2", "h3", "h4", "h5", "h6", "p", "span", "label", "dt", "dd", "li", "figcaption", "legend", "pre", "code", "em", "strong", "small", "abbr", "time"]).optional(), // The HTML element to render. Accepts headings (`"h1"`–`"h6"`), block text (`"p"`, `"pre"`), inline text (`"span"`, `"code"`, `"em"`, `"strong"`, `"small"`, `"abbr"`, `"time"`), form-related (`"label"`, `"legend"`), list/definition (`"dt"`, `"dd"`, `"li"`), and `"figcaption"`. - **Required** for heading variants (`"heading1"`, `"heading2"`, `"heading3"`) — pick the element that reflects this text's place in the document outline, or `"span"` for decorative heading-styled text that is not a section heading. - **Optional** for body variants (defaults to `"p"`) and monospace variants (defaults to `"span"`).
783
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Text content.
784
+ });
785
+
786
+ export const ToastyPropsSchema = z.object({
787
+ variant: z.enum(["default", "success", "error", "warning", "info"]).optional(),
788
+ className: z.string().optional(), // Additional CSS classes
789
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
790
+ });
791
+
792
+ export const TooltipPropsSchema = z.object({
793
+ side: z.enum(["top", "bottom", "left", "right"]).optional(),
794
+ className: z.string().optional(), // Additional CSS classes
795
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
796
+ content: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]), // Content to display in the tooltip
797
+ });
798
+
799
+ // =============================================================================
800
+ // Component Type Union
801
+ // =============================================================================
802
+
803
+ /**
804
+ * All valid component type names
805
+ */
806
+ export type RekiComponentType = "Autocomplete" | "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "CloudflareLogo" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DatePicker" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Grid" | "Input" | "InputArea" | "InputGroup" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "Radio" | "Select" | "SensitiveInput" | "Sidebar" | "Surface" | "Switch" | "Table" | "TableOfContents" | "Tabs" | "Text" | "Toasty" | "Tooltip";
807
+
808
+ export const RekiComponentTypeSchema = z.enum([
809
+ "Autocomplete",
810
+ "Badge",
811
+ "Banner",
812
+ "Breadcrumbs",
813
+ "Button",
814
+ "Checkbox",
815
+ "ClipboardText",
816
+ "CloudflareLogo",
817
+ "Code",
818
+ "Collapsible",
819
+ "Combobox",
820
+ "CommandPalette",
821
+ "DatePicker",
822
+ "DateRangePicker",
823
+ "Dialog",
824
+ "DropdownMenu",
825
+ "Empty",
826
+ "Field",
827
+ "Grid",
828
+ "Input",
829
+ "InputArea",
830
+ "InputGroup",
831
+ "Label",
832
+ "LayerCard",
833
+ "Link",
834
+ "Loader",
835
+ "MenuBar",
836
+ "Meter",
837
+ "Pagination",
838
+ "Popover",
839
+ "Radio",
840
+ "Select",
841
+ "SensitiveInput",
842
+ "Sidebar",
843
+ "Surface",
844
+ "Switch",
845
+ "Table",
846
+ "TableOfContents",
847
+ "Tabs",
848
+ "Text",
849
+ "Toasty",
850
+ "Tooltip",
851
+ ]);
852
+
853
+ /**
854
+ * Map of component type to its props schema
855
+ */
856
+ export const ComponentPropsSchemas = {
857
+ Autocomplete: AutocompletePropsSchema,
858
+ Badge: BadgePropsSchema,
859
+ Banner: BannerPropsSchema,
860
+ Breadcrumbs: BreadcrumbsPropsSchema,
861
+ Button: ButtonPropsSchema,
862
+ Checkbox: CheckboxPropsSchema,
863
+ ClipboardText: ClipboardTextPropsSchema,
864
+ CloudflareLogo: CloudflareLogoPropsSchema,
865
+ Code: CodePropsSchema,
866
+ Collapsible: CollapsiblePropsSchema,
867
+ Combobox: ComboboxPropsSchema,
868
+ CommandPalette: CommandPalettePropsSchema,
869
+ DatePicker: DatePickerPropsSchema,
870
+ DateRangePicker: DateRangePickerPropsSchema,
871
+ Dialog: DialogPropsSchema,
872
+ DropdownMenu: DropdownMenuPropsSchema,
873
+ Empty: EmptyPropsSchema,
874
+ Field: FieldPropsSchema,
875
+ Grid: GridPropsSchema,
876
+ Input: InputPropsSchema,
877
+ InputArea: InputAreaPropsSchema,
878
+ InputGroup: InputGroupPropsSchema,
879
+ Label: LabelPropsSchema,
880
+ LayerCard: LayerCardPropsSchema,
881
+ Link: LinkPropsSchema,
882
+ Loader: LoaderPropsSchema,
883
+ MenuBar: MenuBarPropsSchema,
884
+ Meter: MeterPropsSchema,
885
+ Pagination: PaginationPropsSchema,
886
+ Popover: PopoverPropsSchema,
887
+ Radio: RadioPropsSchema,
888
+ Select: SelectPropsSchema,
889
+ SensitiveInput: SensitiveInputPropsSchema,
890
+ Sidebar: SidebarPropsSchema,
891
+ Surface: SurfacePropsSchema,
892
+ Switch: SwitchPropsSchema,
893
+ Table: TablePropsSchema,
894
+ TableOfContents: TableOfContentsPropsSchema,
895
+ Tabs: TabsPropsSchema,
896
+ Text: TextPropsSchema,
897
+ Toasty: ToastyPropsSchema,
898
+ Tooltip: TooltipPropsSchema,
899
+ } as const;
900
+
901
+ // =============================================================================
902
+ // UI Element & Tree Schemas
903
+ // =============================================================================
904
+
905
+ /**
906
+ * Base UI element structure
907
+ */
908
+ export const UIElementBaseSchema = z.object({
909
+ key: z.string(),
910
+ type: RekiComponentTypeSchema,
911
+ props: z.record(z.string(), z.unknown()),
912
+ children: z.array(z.string()).optional(),
913
+ parentKey: z.string().nullable().optional(),
914
+ visible: VisibilityConditionSchema.optional(),
915
+ action: ActionSchema.optional(),
916
+ });
917
+
918
+ export type UIElement = z.infer<typeof UIElementBaseSchema>;
919
+
920
+ /**
921
+ * Flat UI tree structure (optimized for LLM generation)
922
+ */
923
+ export const UITreeSchema = z.object({
924
+ root: z.string(),
925
+ elements: z.record(z.string(), UIElementBaseSchema),
926
+ });
927
+
928
+ export type UITree = z.infer<typeof UITreeSchema>;
929
+
930
+ // =============================================================================
931
+ // Validation Helpers
932
+ // =============================================================================
933
+
934
+ /**
935
+ * Validate an element's props against its component schema
936
+ */
937
+ export function validateElementProps(element: UIElement): SafeParseResult<unknown> {
938
+ const schema = ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];
939
+ if (!schema) {
940
+ return { success: false, error: new z.ZodError([{ code: 'custom', message: `Unknown component type: ${element.type}`, path: ['type'] }]) };
941
+ }
942
+ return schema.safeParse(element.props);
943
+ }
944
+
945
+ /**
946
+ * Validate a complete UI tree
947
+ */
948
+ export function validateUITree(tree: unknown): SafeParseResult<UITree> {
949
+ return UITreeSchema.safeParse(tree);
950
+ }
951
+
952
+ /**
953
+ * List of all component names (for catalog generation)
954
+ */
955
+ export const REKI_COMPONENT_NAMES = ["Autocomplete", "Badge", "Banner", "Breadcrumbs", "Button", "Checkbox", "ClipboardText", "CloudflareLogo", "Code", "Collapsible", "Combobox", "CommandPalette", "DatePicker", "DateRangePicker", "Dialog", "DropdownMenu", "Empty", "Field", "Grid", "Input", "InputArea", "InputGroup", "Label", "LayerCard", "Link", "Loader", "MenuBar", "Meter", "Pagination", "Popover", "Radio", "Select", "SensitiveInput", "Sidebar", "Surface", "Switch", "Table", "TableOfContents", "Tabs", "Text", "Toasty", "Tooltip"] as const;