@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.
- package/CHANGELOG.md +1892 -0
- package/README.md +525 -0
- package/ai/USAGE.md +201 -0
- package/ai/component-registry.json +6707 -0
- package/ai/component-registry.md +8346 -0
- package/ai/schemas.ts +955 -0
- package/bin/reki.js +36 -0
- package/dist/.build-complete +1 -0
- package/dist/ai/schemas.d.ts +2514 -0
- package/dist/ai/schemas.d.ts.map +1 -0
- package/dist/ai/schemas.js +3985 -0
- package/dist/ai/schemas.js.map +1 -0
- package/dist/blocks-source/delete-resource/delete-resource.tsx +213 -0
- package/dist/blocks-source/page-header/page-header.tsx +99 -0
- package/dist/blocks-source/resource-list/resource-list.test.tsx +28 -0
- package/dist/blocks-source/resource-list/resource-list.tsx +69 -0
- package/dist/catalog.js +229 -0
- package/dist/catalog.js.map +1 -0
- package/dist/chunks/SankeyChart-jwwpwps4npqzbrvn.js +890 -0
- package/dist/chunks/SankeyChart-jwwpwps4npqzbrvn.js.map +1 -0
- package/dist/chunks/autocomplete-f4vetako14h2aqsw.js +193 -0
- package/dist/chunks/autocomplete-f4vetako14h2aqsw.js.map +1 -0
- package/dist/chunks/badge-pc33c5ir7muabgfh.js +163 -0
- package/dist/chunks/badge-pc33c5ir7muabgfh.js.map +1 -0
- package/dist/chunks/banner-kis9h1yq636liunc.js +120 -0
- package/dist/chunks/banner-kis9h1yq636liunc.js.map +1 -0
- package/dist/chunks/bash-g5z23u7me5rx7bzt.js +15 -0
- package/dist/chunks/bash-g5z23u7me5rx7bzt.js.map +1 -0
- package/dist/chunks/breadcrumbs-d6149hyct4puz3x4.js +169 -0
- package/dist/chunks/breadcrumbs-d6149hyct4puz3x4.js.map +1 -0
- package/dist/chunks/button-nc5p1h28cwes0tjw.js +237 -0
- package/dist/chunks/button-nc5p1h28cwes0tjw.js.map +1 -0
- package/dist/chunks/checkbox-g2661n3eodgoispq.js +216 -0
- package/dist/chunks/checkbox-g2661n3eodgoispq.js.map +1 -0
- package/dist/chunks/clipboard-text-g3659lejx2d7i93e.js +191 -0
- package/dist/chunks/clipboard-text-g3659lejx2d7i93e.js.map +1 -0
- package/dist/chunks/cloudflare-logo-k0f07zztsda8m4ca.js +175 -0
- package/dist/chunks/cloudflare-logo-k0f07zztsda8m4ca.js.map +1 -0
- package/dist/chunks/cn-ct4n7r74mh8y0f48.js +26 -0
- package/dist/chunks/cn-ct4n7r74mh8y0f48.js.map +1 -0
- package/dist/chunks/code-fm5rpi47v6cj9o8o.js +61 -0
- package/dist/chunks/code-fm5rpi47v6cj9o8o.js.map +1 -0
- package/dist/chunks/collapsible-ndvmgo29s5iqfcor.js +76 -0
- package/dist/chunks/collapsible-ndvmgo29s5iqfcor.js.map +1 -0
- package/dist/chunks/combobox-i38w67netm8ukw4f.js +408 -0
- package/dist/chunks/combobox-i38w67netm8ukw4f.js.map +1 -0
- package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js +403 -0
- package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js.map +1 -0
- package/dist/chunks/core-oowp00biqxe3hvjc.js +5806 -0
- package/dist/chunks/core-oowp00biqxe3hvjc.js.map +1 -0
- package/dist/chunks/css-d1mi3wy1sl3fzekh.js +8 -0
- package/dist/chunks/css-d1mi3wy1sl3fzekh.js.map +1 -0
- package/dist/chunks/date-picker-81mc3zrsmobm3ydm.js +2921 -0
- package/dist/chunks/date-picker-81mc3zrsmobm3ydm.js.map +1 -0
- package/dist/chunks/date-range-picker-c8ttrfaos9mb1w5n.js +408 -0
- package/dist/chunks/date-range-picker-c8ttrfaos9mb1w5n.js.map +1 -0
- package/dist/chunks/dialog-m4go8xof25fospqo.js +134 -0
- package/dist/chunks/dialog-m4go8xof25fospqo.js.map +1 -0
- package/dist/chunks/diff-cpj1h9lg0bw716mj.js +8 -0
- package/dist/chunks/diff-cpj1h9lg0bw716mj.js.map +1 -0
- package/dist/chunks/dropdown-j5uht8mn4z7xc9fc.js +313 -0
- package/dist/chunks/dropdown-j5uht8mn4z7xc9fc.js.map +1 -0
- package/dist/chunks/empty-kazxr0248zjemw6n.js +94 -0
- package/dist/chunks/empty-kazxr0248zjemw6n.js.map +1 -0
- package/dist/chunks/engine-javascript-iqcmg6wi2pjun29k.js +2637 -0
- package/dist/chunks/engine-javascript-iqcmg6wi2pjun29k.js.map +1 -0
- package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js +295 -0
- package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js.map +1 -0
- package/dist/chunks/field-fe5m8z3vbpvtctbe.js +77 -0
- package/dist/chunks/field-fe5m8z3vbpvtctbe.js.map +1 -0
- package/dist/chunks/github-light-ulev8flhimfg79ob.js +6 -0
- package/dist/chunks/github-light-ulev8flhimfg79ob.js.map +1 -0
- package/dist/chunks/graphql-ft2h47erta7isqn4.js +16 -0
- package/dist/chunks/graphql-ft2h47erta7isqn4.js.map +1 -0
- package/dist/chunks/grid-enlbb88vucgeq1np.js +128 -0
- package/dist/chunks/grid-enlbb88vucgeq1np.js.map +1 -0
- package/dist/chunks/hcl-hcu7d6ja6t540ijn.js +8 -0
- package/dist/chunks/hcl-hcu7d6ja6t540ijn.js.map +1 -0
- package/dist/chunks/html-kl304jmqj4jxj777.js +12 -0
- package/dist/chunks/html-kl304jmqj4jxj777.js.map +1 -0
- package/dist/chunks/input-area-ciw85g3fno06t4tw.js +78 -0
- package/dist/chunks/input-area-ciw85g3fno06t4tw.js.map +1 -0
- package/dist/chunks/input-group-mo7tq7jr19hmgor5.js +505 -0
- package/dist/chunks/input-group-mo7tq7jr19hmgor5.js.map +1 -0
- package/dist/chunks/input-i5nefqk213n4z7pr.js +130 -0
- package/dist/chunks/input-i5nefqk213n4z7pr.js.map +1 -0
- package/dist/chunks/javascript-hhx3avh9uv2o27ay.js +8 -0
- package/dist/chunks/javascript-hhx3avh9uv2o27ay.js.map +1 -0
- package/dist/chunks/json-jovp9qemdkp5cziz.js +8 -0
- package/dist/chunks/json-jovp9qemdkp5cziz.js.map +1 -0
- package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js +8 -0
- package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js.map +1 -0
- package/dist/chunks/jsx-ij885l2li2lzfoss.js +8 -0
- package/dist/chunks/jsx-ij885l2li2lzfoss.js.map +1 -0
- package/dist/chunks/label-fcho4757rbdess0c.js +68 -0
- package/dist/chunks/label-fcho4757rbdess0c.js.map +1 -0
- package/dist/chunks/layer-card-kzu48dhzxm3e9p4u.js +47 -0
- package/dist/chunks/layer-card-kzu48dhzxm3e9p4u.js.map +1 -0
- package/dist/chunks/link-j2gu5dr3nr4i4yf0.js +95 -0
- package/dist/chunks/link-j2gu5dr3nr4i4yf0.js.map +1 -0
- package/dist/chunks/link-provider-bgljdgs4hs438h0u.js +22 -0
- package/dist/chunks/link-provider-bgljdgs4hs438h0u.js.map +1 -0
- package/dist/chunks/loader-cxzp72mn53lzbv9c.js +109 -0
- package/dist/chunks/loader-cxzp72mn53lzbv9c.js.map +1 -0
- package/dist/chunks/markdown-n2vyyq7l68fy32wc.js +8 -0
- package/dist/chunks/markdown-n2vyyq7l68fy32wc.js.map +1 -0
- package/dist/chunks/menubar-ir5gbjmsizsddz7g.js +98 -0
- package/dist/chunks/menubar-ir5gbjmsizsddz7g.js.map +1 -0
- package/dist/chunks/meter-o5yd7ctjf80vvyjx.js +51 -0
- package/dist/chunks/meter-o5yd7ctjf80vvyjx.js.map +1 -0
- package/dist/chunks/pagination-bryw6rohfr7mm3km.js +266 -0
- package/dist/chunks/pagination-bryw6rohfr7mm3km.js.map +1 -0
- package/dist/chunks/popover-elxcmvv7mu7m7uk4.js +181 -0
- package/dist/chunks/popover-elxcmvv7mu7m7uk4.js.map +1 -0
- package/dist/chunks/portal-provider-off76og7tjyz96ys.js +18 -0
- package/dist/chunks/portal-provider-off76og7tjyz96ys.js.map +1 -0
- package/dist/chunks/python-gg755pb8oe9ra1d1.js +8 -0
- package/dist/chunks/python-gg755pb8oe9ra1d1.js.map +1 -0
- package/dist/chunks/radio-newyq331uk4lltr6.js +226 -0
- package/dist/chunks/radio-newyq331uk4lltr6.js.map +1 -0
- package/dist/chunks/resolve-variant-t8jcltsizeg29ege.js +11 -0
- package/dist/chunks/resolve-variant-t8jcltsizeg29ege.js.map +1 -0
- package/dist/chunks/select-h5480mbro0ypxu0b.js +237 -0
- package/dist/chunks/select-h5480mbro0ypxu0b.js.map +1 -0
- package/dist/chunks/sensitive-input-lqugq6uvx0lkpu0u.js +273 -0
- package/dist/chunks/sensitive-input-lqugq6uvx0lkpu0u.js.map +1 -0
- package/dist/chunks/sidebar-noz668nhdu2gso12.js +1144 -0
- package/dist/chunks/sidebar-noz668nhdu2gso12.js.map +1 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js +33 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js.map +1 -0
- package/dist/chunks/sql-ovukp5mrfunfk5tv.js +8 -0
- package/dist/chunks/sql-ovukp5mrfunfk5tv.js.map +1 -0
- package/dist/chunks/surface-cyxme7mlr49l33f8.js +29 -0
- package/dist/chunks/surface-cyxme7mlr49l33f8.js.map +1 -0
- package/dist/chunks/switch-bigo96fyjlh7ivbi.js +256 -0
- package/dist/chunks/switch-bigo96fyjlh7ivbi.js.map +1 -0
- package/dist/chunks/table-mwcmwp6a80zvyrxw.js +208 -0
- package/dist/chunks/table-mwcmwp6a80zvyrxw.js.map +1 -0
- package/dist/chunks/table-of-contents-gkuvkr2w6lbhi7wt.js +106 -0
- package/dist/chunks/table-of-contents-gkuvkr2w6lbhi7wt.js.map +1 -0
- package/dist/chunks/tabs-e4pcjkw94kpe35x0.js +177 -0
- package/dist/chunks/tabs-e4pcjkw94kpe35x0.js.map +1 -0
- package/dist/chunks/text-oxsrbmjmfq99ue85.js +103 -0
- package/dist/chunks/text-oxsrbmjmfq99ue85.js.map +1 -0
- package/dist/chunks/toast-ivr4097bstjcjotf.js +370 -0
- package/dist/chunks/toast-ivr4097bstjcjotf.js.map +1 -0
- package/dist/chunks/toml-nczb2z9n0o23o3ci.js +8 -0
- package/dist/chunks/toml-nczb2z9n0o23o3ci.js.map +1 -0
- package/dist/chunks/tooltip-ncaia8n1lavkyw8n.js +103 -0
- package/dist/chunks/tooltip-ncaia8n1lavkyw8n.js.map +1 -0
- package/dist/chunks/tsx-ehy8lrzet6v54zur.js +8 -0
- package/dist/chunks/tsx-ehy8lrzet6v54zur.js.map +1 -0
- package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js +8 -0
- package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js.map +1 -0
- package/dist/chunks/vendor-base-ui-bgl9g5nkvqy3tn36.js +24690 -0
- package/dist/chunks/vendor-base-ui-bgl9g5nkvqy3tn36.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-dn8xswn8036udsqq.js +1311 -0
- package/dist/chunks/vendor-floating-ui-dn8xswn8036udsqq.js.map +1 -0
- package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js +2775 -0
- package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js.map +1 -0
- package/dist/chunks/vendor-utils-m5h2xu7s2rs3pgk5.js +217 -0
- package/dist/chunks/vendor-utils-m5h2xu7s2rs3pgk5.js.map +1 -0
- package/dist/chunks/vesper-ebfu9ns65f2v830s.js +6 -0
- package/dist/chunks/vesper-ebfu9ns65f2v830s.js.map +1 -0
- package/dist/chunks/wasm-oj22f8usru9h7dzg.js +9 -0
- package/dist/chunks/wasm-oj22f8usru9h7dzg.js.map +1 -0
- package/dist/chunks/yaml-e2v22lr79tss2brj.js +8 -0
- package/dist/chunks/yaml-e2v22lr79tss2brj.js.map +1 -0
- package/dist/code/server.js +88 -0
- package/dist/code/server.js.map +1 -0
- package/dist/code.js +256 -0
- package/dist/code.js.map +1 -0
- package/dist/command-line/cli.js +850 -0
- package/dist/command-line/commands/add.js +282 -0
- package/dist/command-line/commands/ai.js +22 -0
- package/dist/command-line/commands/blocks.js +61 -0
- package/dist/command-line/commands/doc.js +167 -0
- package/dist/command-line/commands/init.js +95 -0
- package/dist/command-line/commands/ls.js +53 -0
- package/dist/components/autocomplete.js +9 -0
- package/dist/components/autocomplete.js.map +1 -0
- package/dist/components/badge.js +7 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/banner.js +7 -0
- package/dist/components/banner.js.map +1 -0
- package/dist/components/breadcrumbs.js +9 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/components/button.js +9 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/chart.js +10 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.js +8 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/clipboard-text.js +6 -0
- package/dist/components/clipboard-text.js.map +1 -0
- package/dist/components/cloudflare-logo.js +10 -0
- package/dist/components/cloudflare-logo.js.map +1 -0
- package/dist/components/code.js +7 -0
- package/dist/components/code.js.map +1 -0
- package/dist/components/collapsible.js +6 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +6 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command-palette.js +8 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/date-picker.js +6 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/date-range-picker.js +6 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/dialog.js +11 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown.js +6 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/empty.js +9 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.js +10 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/flow.js +5831 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/components/grid.js +11 -0
- package/dist/components/grid.js.map +1 -0
- package/dist/components/input-group.js +8 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input.js +14 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.js +10 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layer-card.js +6 -0
- package/dist/components/layer-card.js.map +1 -0
- package/dist/components/link.js +9 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/loader.js +8 -0
- package/dist/components/loader.js.map +1 -0
- package/dist/components/menubar.js +7 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/meter.js +6 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/pagination.js +6 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.js +14 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/radio.js +10 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/select.js +6 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/sensitive-input.js +8 -0
- package/dist/components/sensitive-input.js.map +1 -0
- package/dist/components/sidebar.js +34 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/surface.js +6 -0
- package/dist/components/surface.js.map +1 -0
- package/dist/components/switch.js +8 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table-of-contents.js +8 -0
- package/dist/components/table-of-contents.js.map +1 -0
- package/dist/components/table.js +8 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.js +6 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text.js +6 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/toast.js +11 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.js +7 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/index.js +344 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives/accordion.js +6 -0
- package/dist/primitives/accordion.js.map +1 -0
- package/dist/primitives/alert-dialog.js +6 -0
- package/dist/primitives/alert-dialog.js.map +1 -0
- package/dist/primitives/autocomplete.js +6 -0
- package/dist/primitives/autocomplete.js.map +1 -0
- package/dist/primitives/avatar.js +6 -0
- package/dist/primitives/avatar.js.map +1 -0
- package/dist/primitives/button.js +6 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/checkbox-group.js +6 -0
- package/dist/primitives/checkbox-group.js.map +1 -0
- package/dist/primitives/checkbox.js +6 -0
- package/dist/primitives/checkbox.js.map +1 -0
- package/dist/primitives/collapsible.js +6 -0
- package/dist/primitives/collapsible.js.map +1 -0
- package/dist/primitives/combobox.js +6 -0
- package/dist/primitives/combobox.js.map +1 -0
- package/dist/primitives/context-menu.js +6 -0
- package/dist/primitives/context-menu.js.map +1 -0
- package/dist/primitives/csp-provider.js +6 -0
- package/dist/primitives/csp-provider.js.map +1 -0
- package/dist/primitives/dialog.js +6 -0
- package/dist/primitives/dialog.js.map +1 -0
- package/dist/primitives/direction-provider.js +7 -0
- package/dist/primitives/direction-provider.js.map +1 -0
- package/dist/primitives/drawer.js +6 -0
- package/dist/primitives/drawer.js.map +1 -0
- package/dist/primitives/field.js +6 -0
- package/dist/primitives/field.js.map +1 -0
- package/dist/primitives/fieldset.js +6 -0
- package/dist/primitives/fieldset.js.map +1 -0
- package/dist/primitives/form.js +6 -0
- package/dist/primitives/form.js.map +1 -0
- package/dist/primitives/input.js +6 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/menu.js +6 -0
- package/dist/primitives/menu.js.map +1 -0
- package/dist/primitives/menubar.js +6 -0
- package/dist/primitives/menubar.js.map +1 -0
- package/dist/primitives/meter.js +6 -0
- package/dist/primitives/meter.js.map +1 -0
- package/dist/primitives/navigation-menu.js +6 -0
- package/dist/primitives/navigation-menu.js.map +1 -0
- package/dist/primitives/number-field.js +6 -0
- package/dist/primitives/number-field.js.map +1 -0
- package/dist/primitives/otp-field.js +6 -0
- package/dist/primitives/otp-field.js.map +1 -0
- package/dist/primitives/popover.js +6 -0
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/preview-card.js +6 -0
- package/dist/primitives/preview-card.js.map +1 -0
- package/dist/primitives/progress.js +6 -0
- package/dist/primitives/progress.js.map +1 -0
- package/dist/primitives/radio-group.js +6 -0
- package/dist/primitives/radio-group.js.map +1 -0
- package/dist/primitives/radio.js +6 -0
- package/dist/primitives/radio.js.map +1 -0
- package/dist/primitives/scroll-area.js +6 -0
- package/dist/primitives/scroll-area.js.map +1 -0
- package/dist/primitives/select.js +6 -0
- package/dist/primitives/select.js.map +1 -0
- package/dist/primitives/separator.js +6 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/slider.js +6 -0
- package/dist/primitives/slider.js.map +1 -0
- package/dist/primitives/switch.js +6 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/tabs.js +6 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/toast.js +6 -0
- package/dist/primitives/toast.js.map +1 -0
- package/dist/primitives/toggle-group.js +6 -0
- package/dist/primitives/toggle-group.js.map +1 -0
- package/dist/primitives/toggle.js +6 -0
- package/dist/primitives/toggle.js.map +1 -0
- package/dist/primitives/toolbar.js +6 -0
- package/dist/primitives/toolbar.js.map +1 -0
- package/dist/primitives/tooltip.js +6 -0
- package/dist/primitives/tooltip.js.map +1 -0
- package/dist/primitives.js +46 -0
- package/dist/primitives.js.map +1 -0
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -0
- package/dist/scripts/theme-generator/config.d.ts +6 -0
- package/dist/scripts/theme-generator/config.d.ts.map +1 -0
- package/dist/scripts/theme-generator/config.js +629 -0
- package/dist/scripts/theme-generator/config.js.map +1 -0
- package/dist/scripts/theme-generator/generate-css.d.ts +31 -0
- package/dist/scripts/theme-generator/generate-css.d.ts.map +1 -0
- package/dist/scripts/theme-generator/index.d.ts +13 -0
- package/dist/scripts/theme-generator/index.d.ts.map +1 -0
- package/dist/scripts/theme-generator/migrate.d.ts +56 -0
- package/dist/scripts/theme-generator/migrate.d.ts.map +1 -0
- package/dist/scripts/theme-generator/types.d.ts +82 -0
- package/dist/scripts/theme-generator/types.d.ts.map +1 -0
- package/dist/scripts/theme-generator/types.js +2 -0
- package/dist/scripts/theme-generator/types.js.map +1 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts +46 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
- package/dist/src/blocks/delete-resource/index.d.ts +2 -0
- package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
- package/dist/src/blocks/page-header/index.d.ts +2 -0
- package/dist/src/blocks/page-header/index.d.ts.map +1 -0
- package/dist/src/blocks/page-header/page-header.d.ts +38 -0
- package/dist/src/blocks/page-header/page-header.d.ts.map +1 -0
- package/dist/src/blocks/resource-list/index.d.ts +2 -0
- package/dist/src/blocks/resource-list/index.d.ts.map +1 -0
- package/dist/src/blocks/resource-list/resource-list.d.ts +18 -0
- package/dist/src/blocks/resource-list/resource-list.d.ts.map +1 -0
- package/dist/src/catalog/catalog.d.ts +75 -0
- package/dist/src/catalog/catalog.d.ts.map +1 -0
- package/dist/src/catalog/data.d.ts +44 -0
- package/dist/src/catalog/data.d.ts.map +1 -0
- package/dist/src/catalog/index.d.ts +39 -0
- package/dist/src/catalog/index.d.ts.map +1 -0
- package/dist/src/catalog/types.d.ts +226 -0
- package/dist/src/catalog/types.d.ts.map +1 -0
- package/dist/src/catalog/visibility.d.ts +37 -0
- package/dist/src/catalog/visibility.d.ts.map +1 -0
- package/dist/src/code/code-highlighted.d.ts +32 -0
- package/dist/src/code/code-highlighted.d.ts.map +1 -0
- package/dist/src/code/context.d.ts +16 -0
- package/dist/src/code/context.d.ts.map +1 -0
- package/dist/src/code/index.d.ts +32 -0
- package/dist/src/code/index.d.ts.map +1 -0
- package/dist/src/code/provider.d.ts +13 -0
- package/dist/src/code/provider.d.ts.map +1 -0
- package/dist/src/code/server.d.ts +95 -0
- package/dist/src/code/server.d.ts.map +1 -0
- package/dist/src/code/types.d.ts +130 -0
- package/dist/src/code/types.d.ts.map +1 -0
- package/dist/src/code/use-shiki-highlighter.d.ts +36 -0
- package/dist/src/code/use-shiki-highlighter.d.ts.map +1 -0
- package/dist/src/command-line/build-cli.d.ts +7 -0
- package/dist/src/command-line/build-cli.d.ts.map +1 -0
- package/dist/src/command-line/cli.d.ts +13 -0
- package/dist/src/command-line/cli.d.ts.map +1 -0
- package/dist/src/command-line/commands/add.d.ts +10 -0
- package/dist/src/command-line/commands/add.d.ts.map +1 -0
- package/dist/src/command-line/commands/ai.d.ts +10 -0
- package/dist/src/command-line/commands/ai.d.ts.map +1 -0
- package/dist/src/command-line/commands/blocks.d.ts +10 -0
- package/dist/src/command-line/commands/blocks.d.ts.map +1 -0
- package/dist/src/command-line/commands/doc.d.ts +14 -0
- package/dist/src/command-line/commands/doc.d.ts.map +1 -0
- package/dist/src/command-line/commands/init.d.ts +18 -0
- package/dist/src/command-line/commands/init.d.ts.map +1 -0
- package/dist/src/command-line/commands/ls.d.ts +10 -0
- package/dist/src/command-line/commands/ls.d.ts.map +1 -0
- package/dist/src/command-line/commands/migrate.d.ts +10 -0
- package/dist/src/command-line/commands/migrate.d.ts.map +1 -0
- package/dist/src/command-line/utils/config.d.ts +42 -0
- package/dist/src/command-line/utils/config.d.ts.map +1 -0
- package/dist/src/command-line/utils/transformer.d.ts +21 -0
- package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
- package/dist/src/components/autocomplete/autocomplete.d.ts +181 -0
- package/dist/src/components/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/src/components/autocomplete/index.d.ts +3 -0
- package/dist/src/components/autocomplete/index.d.ts.map +1 -0
- package/dist/src/components/badge/badge.d.ts +180 -0
- package/dist/src/components/badge/badge.d.ts.map +1 -0
- package/dist/src/components/badge/index.d.ts +2 -0
- package/dist/src/components/badge/index.d.ts.map +1 -0
- package/dist/src/components/banner/banner.d.ts +106 -0
- package/dist/src/components/banner/banner.d.ts.map +1 -0
- package/dist/src/components/banner/index.d.ts +2 -0
- package/dist/src/components/banner/index.d.ts.map +1 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +78 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/src/components/breadcrumbs/index.d.ts +2 -0
- package/dist/src/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/src/components/button/button.d.ts +214 -0
- package/dist/src/components/button/button.d.ts.map +1 -0
- package/dist/src/components/button/index.d.ts +2 -0
- package/dist/src/components/button/index.d.ts.map +1 -0
- package/dist/src/components/chart/Color.d.ts +91 -0
- package/dist/src/components/chart/Color.d.ts.map +1 -0
- package/dist/src/components/chart/EChart.d.ts +159 -0
- package/dist/src/components/chart/EChart.d.ts.map +1 -0
- package/dist/src/components/chart/Legend.d.ts +51 -0
- package/dist/src/components/chart/Legend.d.ts.map +1 -0
- package/dist/src/components/chart/SankeyChart.d.ts +98 -0
- package/dist/src/components/chart/SankeyChart.d.ts.map +1 -0
- package/dist/src/components/chart/TimeseriesChart.d.ts +181 -0
- package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -0
- package/dist/src/components/chart/index.d.ts +6 -0
- package/dist/src/components/chart/index.d.ts.map +1 -0
- package/dist/src/components/checkbox/checkbox.d.ts +197 -0
- package/dist/src/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/src/components/checkbox/index.d.ts +2 -0
- package/dist/src/components/checkbox/index.d.ts.map +1 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts +88 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -0
- package/dist/src/components/clipboard-text/index.d.ts +2 -0
- package/dist/src/components/clipboard-text/index.d.ts.map +1 -0
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
- package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
- package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
- package/dist/src/components/code/code.d.ts +189 -0
- package/dist/src/components/code/code.d.ts.map +1 -0
- package/dist/src/components/code/index.d.ts +4 -0
- package/dist/src/components/code/index.d.ts.map +1 -0
- package/dist/src/components/collapsible/collapsible.d.ts +109 -0
- package/dist/src/components/collapsible/collapsible.d.ts.map +1 -0
- package/dist/src/components/collapsible/index.d.ts +2 -0
- package/dist/src/components/collapsible/index.d.ts.map +1 -0
- package/dist/src/components/combobox/combobox.d.ts +246 -0
- package/dist/src/components/combobox/combobox.d.ts.map +1 -0
- package/dist/src/components/combobox/index.d.ts +3 -0
- package/dist/src/components/combobox/index.d.ts.map +1 -0
- package/dist/src/components/command-palette/command-palette.d.ts +258 -0
- package/dist/src/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/src/components/command-palette/index.d.ts +3 -0
- package/dist/src/components/command-palette/index.d.ts.map +1 -0
- package/dist/src/components/command-palette/types.d.ts +168 -0
- package/dist/src/components/command-palette/types.d.ts.map +1 -0
- package/dist/src/components/date-picker/date-picker.d.ts +65 -0
- package/dist/src/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/src/components/date-picker/index.d.ts +4 -0
- package/dist/src/components/date-picker/index.d.ts.map +1 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts +125 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -0
- package/dist/src/components/date-range-picker/index.d.ts +5 -0
- package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/src/components/dialog/dialog.d.ts +242 -0
- package/dist/src/components/dialog/dialog.d.ts.map +1 -0
- package/dist/src/components/dialog/index.d.ts +2 -0
- package/dist/src/components/dialog/index.d.ts.map +1 -0
- package/dist/src/components/dropdown/dropdown.d.ts +116 -0
- package/dist/src/components/dropdown/dropdown.d.ts.map +1 -0
- package/dist/src/components/dropdown/index.d.ts +2 -0
- package/dist/src/components/dropdown/index.d.ts.map +1 -0
- package/dist/src/components/empty/empty.d.ts +69 -0
- package/dist/src/components/empty/empty.d.ts.map +1 -0
- package/dist/src/components/empty/index.d.ts +2 -0
- package/dist/src/components/empty/index.d.ts.map +1 -0
- package/dist/src/components/field/field.d.ts +89 -0
- package/dist/src/components/field/field.d.ts.map +1 -0
- package/dist/src/components/field/index.d.ts +2 -0
- package/dist/src/components/field/index.d.ts.map +1 -0
- package/dist/src/components/flow/connectors.d.ts +41 -0
- package/dist/src/components/flow/connectors.d.ts.map +1 -0
- package/dist/src/components/flow/diagram.d.ts +96 -0
- package/dist/src/components/flow/diagram.d.ts.map +1 -0
- package/dist/src/components/flow/index.d.ts +26 -0
- package/dist/src/components/flow/index.d.ts.map +1 -0
- package/dist/src/components/flow/node.d.ts +61 -0
- package/dist/src/components/flow/node.d.ts.map +1 -0
- package/dist/src/components/flow/parallel.d.ts +13 -0
- package/dist/src/components/flow/parallel.d.ts.map +1 -0
- package/dist/src/components/flow/use-children.d.ts +87 -0
- package/dist/src/components/flow/use-children.d.ts.map +1 -0
- package/dist/src/components/grid/grid.d.ts +135 -0
- package/dist/src/components/grid/grid.d.ts.map +1 -0
- package/dist/src/components/grid/index.d.ts +2 -0
- package/dist/src/components/grid/index.d.ts.map +1 -0
- package/dist/src/components/input/index.d.ts +19 -0
- package/dist/src/components/input/index.d.ts.map +1 -0
- package/dist/src/components/input/input-area.d.ts +65 -0
- package/dist/src/components/input/input-area.d.ts.map +1 -0
- package/dist/src/components/input/input.d.ts +175 -0
- package/dist/src/components/input/input.d.ts.map +1 -0
- package/dist/src/components/input-group/context.d.ts +96 -0
- package/dist/src/components/input-group/context.d.ts.map +1 -0
- package/dist/src/components/input-group/index.d.ts +2 -0
- package/dist/src/components/input-group/index.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-addon.d.ts +15 -0
- package/dist/src/components/input-group/input-group-addon.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-button.d.ts +36 -0
- package/dist/src/components/input-group/input-group-button.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-input.d.ts +9 -0
- package/dist/src/components/input-group/input-group-input.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-suffix.d.ts +13 -0
- package/dist/src/components/input-group/input-group-suffix.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group.d.ts +43 -0
- package/dist/src/components/input-group/input-group.d.ts.map +1 -0
- package/dist/src/components/label/index.d.ts +2 -0
- package/dist/src/components/label/index.d.ts.map +1 -0
- package/dist/src/components/label/label.d.ts +67 -0
- package/dist/src/components/label/label.d.ts.map +1 -0
- package/dist/src/components/layer-card/index.d.ts +2 -0
- package/dist/src/components/layer-card/index.d.ts.map +1 -0
- package/dist/src/components/layer-card/layer-card.d.ts +60 -0
- package/dist/src/components/layer-card/layer-card.d.ts.map +1 -0
- package/dist/src/components/link/index.d.ts +2 -0
- package/dist/src/components/link/index.d.ts.map +1 -0
- package/dist/src/components/link/link.d.ts +66 -0
- package/dist/src/components/link/link.d.ts.map +1 -0
- package/dist/src/components/loader/index.d.ts +3 -0
- package/dist/src/components/loader/index.d.ts.map +1 -0
- package/dist/src/components/loader/loader.d.ts +70 -0
- package/dist/src/components/loader/loader.d.ts.map +1 -0
- package/dist/src/components/loader/skeleton-line.d.ts +11 -0
- package/dist/src/components/loader/skeleton-line.d.ts.map +1 -0
- package/dist/src/components/menubar/index.d.ts +3 -0
- package/dist/src/components/menubar/index.d.ts.map +1 -0
- package/dist/src/components/menubar/menubar.d.ts +66 -0
- package/dist/src/components/menubar/menubar.d.ts.map +1 -0
- package/dist/src/components/menubar/use-menu-navigation.d.ts +8 -0
- package/dist/src/components/menubar/use-menu-navigation.d.ts.map +1 -0
- package/dist/src/components/meter/index.d.ts +2 -0
- package/dist/src/components/meter/index.d.ts.map +1 -0
- package/dist/src/components/meter/meter.d.ts +44 -0
- package/dist/src/components/meter/meter.d.ts.map +1 -0
- package/dist/src/components/pagination/index.d.ts +2 -0
- package/dist/src/components/pagination/index.d.ts.map +1 -0
- package/dist/src/components/pagination/pagination.d.ts +241 -0
- package/dist/src/components/pagination/pagination.d.ts.map +1 -0
- package/dist/src/components/popover/index.d.ts +3 -0
- package/dist/src/components/popover/index.d.ts.map +1 -0
- package/dist/src/components/popover/popover.d.ts +178 -0
- package/dist/src/components/popover/popover.d.ts.map +1 -0
- package/dist/src/components/radio/index.d.ts +2 -0
- package/dist/src/components/radio/index.d.ts.map +1 -0
- package/dist/src/components/radio/radio.d.ts +277 -0
- package/dist/src/components/radio/radio.d.ts.map +1 -0
- package/dist/src/components/radio/radio.type-spec.d.ts +12 -0
- package/dist/src/components/radio/radio.type-spec.d.ts.map +1 -0
- package/dist/src/components/select/index.d.ts +2 -0
- package/dist/src/components/select/index.d.ts.map +1 -0
- package/dist/src/components/select/select.d.ts +288 -0
- package/dist/src/components/select/select.d.ts.map +1 -0
- package/dist/src/components/sensitive-input/index.d.ts +2 -0
- package/dist/src/components/sensitive-input/index.d.ts.map +1 -0
- package/dist/src/components/sensitive-input/sensitive-input.d.ts +94 -0
- package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -0
- package/dist/src/components/sidebar/index.d.ts +2 -0
- package/dist/src/components/sidebar/index.d.ts.map +1 -0
- package/dist/src/components/sidebar/sidebar.d.ts +581 -0
- package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/src/components/surface/index.d.ts +5 -0
- package/dist/src/components/surface/index.d.ts.map +1 -0
- package/dist/src/components/surface/surface.d.ts +64 -0
- package/dist/src/components/surface/surface.d.ts.map +1 -0
- package/dist/src/components/switch/index.d.ts +2 -0
- package/dist/src/components/switch/index.d.ts.map +1 -0
- package/dist/src/components/switch/switch.d.ts +197 -0
- package/dist/src/components/switch/switch.d.ts.map +1 -0
- package/dist/src/components/table/index.d.ts +2 -0
- package/dist/src/components/table/index.d.ts.map +1 -0
- package/dist/src/components/table/table.d.ts +138 -0
- package/dist/src/components/table/table.d.ts.map +1 -0
- package/dist/src/components/table-of-contents/index.d.ts +2 -0
- package/dist/src/components/table-of-contents/index.d.ts.map +1 -0
- package/dist/src/components/table-of-contents/table-of-contents.d.ts +72 -0
- package/dist/src/components/table-of-contents/table-of-contents.d.ts.map +1 -0
- package/dist/src/components/tabs/index.d.ts +3 -0
- package/dist/src/components/tabs/index.d.ts.map +1 -0
- package/dist/src/components/tabs/tabs.d.ts +116 -0
- package/dist/src/components/tabs/tabs.d.ts.map +1 -0
- package/dist/src/components/text/index.d.ts +2 -0
- package/dist/src/components/text/index.d.ts.map +1 -0
- package/dist/src/components/text/text.d.ts +214 -0
- package/dist/src/components/text/text.d.ts.map +1 -0
- package/dist/src/components/text/text.type-spec.d.ts +44 -0
- package/dist/src/components/text/text.type-spec.d.ts.map +1 -0
- package/dist/src/components/toast/index.d.ts +5 -0
- package/dist/src/components/toast/index.d.ts.map +1 -0
- package/dist/src/components/toast/toast.d.ts +197 -0
- package/dist/src/components/toast/toast.d.ts.map +1 -0
- package/dist/src/components/tooltip/index.d.ts +2 -0
- package/dist/src/components/tooltip/index.d.ts.map +1 -0
- package/dist/src/components/tooltip/tooltip.d.ts +108 -0
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/src/index.d.ts +84 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/primitives/accordion.d.ts +13 -0
- package/dist/src/primitives/accordion.d.ts.map +1 -0
- package/dist/src/primitives/alert-dialog.d.ts +13 -0
- package/dist/src/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/src/primitives/autocomplete.d.ts +13 -0
- package/dist/src/primitives/autocomplete.d.ts.map +1 -0
- package/dist/src/primitives/avatar.d.ts +13 -0
- package/dist/src/primitives/avatar.d.ts.map +1 -0
- package/dist/src/primitives/button.d.ts +13 -0
- package/dist/src/primitives/button.d.ts.map +1 -0
- package/dist/src/primitives/checkbox-group.d.ts +13 -0
- package/dist/src/primitives/checkbox-group.d.ts.map +1 -0
- package/dist/src/primitives/checkbox.d.ts +13 -0
- package/dist/src/primitives/checkbox.d.ts.map +1 -0
- package/dist/src/primitives/collapsible.d.ts +13 -0
- package/dist/src/primitives/collapsible.d.ts.map +1 -0
- package/dist/src/primitives/combobox.d.ts +13 -0
- package/dist/src/primitives/combobox.d.ts.map +1 -0
- package/dist/src/primitives/context-menu.d.ts +13 -0
- package/dist/src/primitives/context-menu.d.ts.map +1 -0
- package/dist/src/primitives/csp-provider.d.ts +13 -0
- package/dist/src/primitives/csp-provider.d.ts.map +1 -0
- package/dist/src/primitives/dialog.d.ts +13 -0
- package/dist/src/primitives/dialog.d.ts.map +1 -0
- package/dist/src/primitives/direction-provider.d.ts +13 -0
- package/dist/src/primitives/direction-provider.d.ts.map +1 -0
- package/dist/src/primitives/drawer.d.ts +13 -0
- package/dist/src/primitives/drawer.d.ts.map +1 -0
- package/dist/src/primitives/field.d.ts +13 -0
- package/dist/src/primitives/field.d.ts.map +1 -0
- package/dist/src/primitives/fieldset.d.ts +13 -0
- package/dist/src/primitives/fieldset.d.ts.map +1 -0
- package/dist/src/primitives/form.d.ts +13 -0
- package/dist/src/primitives/form.d.ts.map +1 -0
- package/dist/src/primitives/index.d.ts +55 -0
- package/dist/src/primitives/index.d.ts.map +1 -0
- package/dist/src/primitives/input.d.ts +13 -0
- package/dist/src/primitives/input.d.ts.map +1 -0
- package/dist/src/primitives/menu.d.ts +13 -0
- package/dist/src/primitives/menu.d.ts.map +1 -0
- package/dist/src/primitives/menubar.d.ts +13 -0
- package/dist/src/primitives/menubar.d.ts.map +1 -0
- package/dist/src/primitives/meter.d.ts +13 -0
- package/dist/src/primitives/meter.d.ts.map +1 -0
- package/dist/src/primitives/navigation-menu.d.ts +13 -0
- package/dist/src/primitives/navigation-menu.d.ts.map +1 -0
- package/dist/src/primitives/number-field.d.ts +13 -0
- package/dist/src/primitives/number-field.d.ts.map +1 -0
- package/dist/src/primitives/otp-field.d.ts +13 -0
- package/dist/src/primitives/otp-field.d.ts.map +1 -0
- package/dist/src/primitives/popover.d.ts +13 -0
- package/dist/src/primitives/popover.d.ts.map +1 -0
- package/dist/src/primitives/preview-card.d.ts +13 -0
- package/dist/src/primitives/preview-card.d.ts.map +1 -0
- package/dist/src/primitives/progress.d.ts +13 -0
- package/dist/src/primitives/progress.d.ts.map +1 -0
- package/dist/src/primitives/radio-group.d.ts +13 -0
- package/dist/src/primitives/radio-group.d.ts.map +1 -0
- package/dist/src/primitives/radio.d.ts +13 -0
- package/dist/src/primitives/radio.d.ts.map +1 -0
- package/dist/src/primitives/scroll-area.d.ts +13 -0
- package/dist/src/primitives/scroll-area.d.ts.map +1 -0
- package/dist/src/primitives/select.d.ts +13 -0
- package/dist/src/primitives/select.d.ts.map +1 -0
- package/dist/src/primitives/separator.d.ts +13 -0
- package/dist/src/primitives/separator.d.ts.map +1 -0
- package/dist/src/primitives/slider.d.ts +13 -0
- package/dist/src/primitives/slider.d.ts.map +1 -0
- package/dist/src/primitives/switch.d.ts +13 -0
- package/dist/src/primitives/switch.d.ts.map +1 -0
- package/dist/src/primitives/tabs.d.ts +13 -0
- package/dist/src/primitives/tabs.d.ts.map +1 -0
- package/dist/src/primitives/toast.d.ts +13 -0
- package/dist/src/primitives/toast.d.ts.map +1 -0
- package/dist/src/primitives/toggle-group.d.ts +13 -0
- package/dist/src/primitives/toggle-group.d.ts.map +1 -0
- package/dist/src/primitives/toggle.d.ts +13 -0
- package/dist/src/primitives/toggle.d.ts.map +1 -0
- package/dist/src/primitives/toolbar.d.ts +13 -0
- package/dist/src/primitives/toolbar.d.ts.map +1 -0
- package/dist/src/primitives/tooltip.d.ts +13 -0
- package/dist/src/primitives/tooltip.d.ts.map +1 -0
- package/dist/src/registry/index.d.ts +8 -0
- package/dist/src/registry/index.d.ts.map +1 -0
- package/dist/src/registry/types.d.ts +191 -0
- package/dist/src/registry/types.d.ts.map +1 -0
- package/dist/src/utils/cn.d.ts +4 -0
- package/dist/src/utils/cn.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +4 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/link-provider.d.ts +66 -0
- package/dist/src/utils/link-provider.d.ts.map +1 -0
- package/dist/src/utils/portal-provider.d.ts +56 -0
- package/dist/src/utils/portal-provider.d.ts.map +1 -0
- package/dist/src/utils/prop-examples.d.ts +36 -0
- package/dist/src/utils/prop-examples.d.ts.map +1 -0
- package/dist/src/utils/resolve-variant.d.ts +27 -0
- package/dist/src/utils/resolve-variant.d.ts.map +1 -0
- package/dist/styles/reki-binding.css +303 -0
- package/dist/styles/reki-standalone.css +2 -0
- package/dist/styles/reki.css +700 -0
- package/dist/styles/theme-fedramp.css +39 -0
- package/dist/styles/theme-reki.css +412 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/package.json +511 -0
- package/scripts/component-registry/cache.ts +123 -0
- package/scripts/component-registry/discovery.ts +469 -0
- package/scripts/component-registry/example-cleanup.ts +168 -0
- package/scripts/component-registry/index.test.ts +987 -0
- package/scripts/component-registry/index.ts +970 -0
- package/scripts/component-registry/markdown-generator.ts +222 -0
- package/scripts/component-registry/metadata.ts +956 -0
- package/scripts/component-registry/props-filter.ts +310 -0
- package/scripts/component-registry/schema-generator.ts +331 -0
- package/scripts/component-registry/sub-components.ts +380 -0
- package/scripts/component-registry/types.ts +158 -0
- package/scripts/component-registry/utils.ts +280 -0
- package/scripts/component-registry/variant-parser.ts +261 -0
- package/scripts/css-build.ts +105 -0
- package/scripts/generate-primitives.ts +183 -0
- package/scripts/theme-generator/config.ts +653 -0
- package/scripts/theme-generator/generate-css.test.ts +30 -0
- package/scripts/theme-generator/generate-css.ts +351 -0
- package/scripts/theme-generator/index.ts +159 -0
- package/scripts/theme-generator/migrate.ts +560 -0
- 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;
|