@cloudflare/kumo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/CHANGELOG.md +510 -0
  2. package/LICENSE +21 -0
  3. package/README.md +521 -0
  4. package/ai/component-registry.json +3754 -0
  5. package/ai/component-registry.md +4022 -0
  6. package/ai/schemas.ts +594 -0
  7. package/dist/badge-Dc99vsfo.js +51 -0
  8. package/dist/badge-Dc99vsfo.js.map +1 -0
  9. package/dist/banner-4fkH6Sbt.js +51 -0
  10. package/dist/banner-4fkH6Sbt.js.map +1 -0
  11. package/dist/breadcrumbs-B5SY2CWj.js +132 -0
  12. package/dist/breadcrumbs-B5SY2CWj.js.map +1 -0
  13. package/dist/button-E2-hZMZE.js +191 -0
  14. package/dist/button-E2-hZMZE.js.map +1 -0
  15. package/dist/catalog.js +229 -0
  16. package/dist/catalog.js.map +1 -0
  17. package/dist/checkbox-BexIU_lZ.js +224 -0
  18. package/dist/checkbox-BexIU_lZ.js.map +1 -0
  19. package/dist/clipboard-text-BFHWMjmr.js +108 -0
  20. package/dist/clipboard-text-BFHWMjmr.js.map +1 -0
  21. package/dist/cn-Bhsu1vx2.js +26 -0
  22. package/dist/cn-Bhsu1vx2.js.map +1 -0
  23. package/dist/code-T2wPDiM0.js +60 -0
  24. package/dist/code-T2wPDiM0.js.map +1 -0
  25. package/dist/collapsible-OBNkTO48.js +56 -0
  26. package/dist/collapsible-OBNkTO48.js.map +1 -0
  27. package/dist/combobox-Dld0kS0U.js +228 -0
  28. package/dist/combobox-Dld0kS0U.js.map +1 -0
  29. package/dist/command-line/cli.js +764 -0
  30. package/dist/command-line/commands/add.js +220 -0
  31. package/dist/command-line/commands/blocks.js +61 -0
  32. package/dist/command-line/commands/doc.js +167 -0
  33. package/dist/command-line/commands/init.js +95 -0
  34. package/dist/command-line/commands/ls.js +53 -0
  35. package/dist/command-palette-BgQ680BG.js +393 -0
  36. package/dist/command-palette-BgQ680BG.js.map +1 -0
  37. package/dist/components/badge.js +7 -0
  38. package/dist/components/badge.js.map +1 -0
  39. package/dist/components/banner.js +7 -0
  40. package/dist/components/banner.js.map +1 -0
  41. package/dist/components/breadcrumbs.js +9 -0
  42. package/dist/components/breadcrumbs.js.map +1 -0
  43. package/dist/components/button.js +9 -0
  44. package/dist/components/button.js.map +1 -0
  45. package/dist/components/checkbox.js +8 -0
  46. package/dist/components/checkbox.js.map +1 -0
  47. package/dist/components/clipboard-text.js +6 -0
  48. package/dist/components/clipboard-text.js.map +1 -0
  49. package/dist/components/code.js +7 -0
  50. package/dist/components/code.js.map +1 -0
  51. package/dist/components/collapsible.js +6 -0
  52. package/dist/components/collapsible.js.map +1 -0
  53. package/dist/components/combobox.js +6 -0
  54. package/dist/components/combobox.js.map +1 -0
  55. package/dist/components/command-palette.js +8 -0
  56. package/dist/components/command-palette.js.map +1 -0
  57. package/dist/components/date-range-picker.js +6 -0
  58. package/dist/components/date-range-picker.js.map +1 -0
  59. package/dist/components/dialog.js +11 -0
  60. package/dist/components/dialog.js.map +1 -0
  61. package/dist/components/dropdown.js +6 -0
  62. package/dist/components/dropdown.js.map +1 -0
  63. package/dist/components/empty.js +9 -0
  64. package/dist/components/empty.js.map +1 -0
  65. package/dist/components/field.js +9 -0
  66. package/dist/components/field.js.map +1 -0
  67. package/dist/components/grid.js +11 -0
  68. package/dist/components/grid.js.map +1 -0
  69. package/dist/components/input.js +11 -0
  70. package/dist/components/input.js.map +1 -0
  71. package/dist/components/label.js +10 -0
  72. package/dist/components/label.js.map +1 -0
  73. package/dist/components/layer-card.js +6 -0
  74. package/dist/components/layer-card.js.map +1 -0
  75. package/dist/components/link.js +9 -0
  76. package/dist/components/link.js.map +1 -0
  77. package/dist/components/loader.js +8 -0
  78. package/dist/components/loader.js.map +1 -0
  79. package/dist/components/menubar.js +7 -0
  80. package/dist/components/menubar.js.map +1 -0
  81. package/dist/components/meter.js +6 -0
  82. package/dist/components/meter.js.map +1 -0
  83. package/dist/components/pagination.js +6 -0
  84. package/dist/components/pagination.js.map +1 -0
  85. package/dist/components/popover.js +14 -0
  86. package/dist/components/popover.js.map +1 -0
  87. package/dist/components/radio.js +10 -0
  88. package/dist/components/radio.js.map +1 -0
  89. package/dist/components/select.js +6 -0
  90. package/dist/components/select.js.map +1 -0
  91. package/dist/components/sensitive-input.js +8 -0
  92. package/dist/components/sensitive-input.js.map +1 -0
  93. package/dist/components/surface.js +6 -0
  94. package/dist/components/surface.js.map +1 -0
  95. package/dist/components/switch.js +8 -0
  96. package/dist/components/switch.js.map +1 -0
  97. package/dist/components/table.js +8 -0
  98. package/dist/components/table.js.map +1 -0
  99. package/dist/components/tabs.js +6 -0
  100. package/dist/components/tabs.js.map +1 -0
  101. package/dist/components/text.js +6 -0
  102. package/dist/components/text.js.map +1 -0
  103. package/dist/components/toast.js +8 -0
  104. package/dist/components/toast.js.map +1 -0
  105. package/dist/components/tooltip.js +7 -0
  106. package/dist/components/tooltip.js.map +1 -0
  107. package/dist/date-range-picker-CbKEQ9pi.js +408 -0
  108. package/dist/date-range-picker-CbKEQ9pi.js.map +1 -0
  109. package/dist/dialog-B1TaN0oR.js +77 -0
  110. package/dist/dialog-B1TaN0oR.js.map +1 -0
  111. package/dist/dropdown-D0rhYKeG.js +263 -0
  112. package/dist/dropdown-D0rhYKeG.js.map +1 -0
  113. package/dist/empty-DzCqjea-.js +93 -0
  114. package/dist/empty-DzCqjea-.js.map +1 -0
  115. package/dist/field-V3J0Ql_V.js +71 -0
  116. package/dist/field-V3J0Ql_V.js.map +1 -0
  117. package/dist/grid-DKajRHh8.js +127 -0
  118. package/dist/grid-DKajRHh8.js.map +1 -0
  119. package/dist/index.js +125 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/input-Dqvc2AB_.js +109 -0
  122. package/dist/input-Dqvc2AB_.js.map +1 -0
  123. package/dist/input-area-B9qajxvZ.js +57 -0
  124. package/dist/input-area-B9qajxvZ.js.map +1 -0
  125. package/dist/input-group-Bl6tgD5-.js +111 -0
  126. package/dist/input-group-Bl6tgD5-.js.map +1 -0
  127. package/dist/label-87HQArUG.js +50 -0
  128. package/dist/label-87HQArUG.js.map +1 -0
  129. package/dist/layer-card-C8j5Hkkj.js +44 -0
  130. package/dist/layer-card-C8j5Hkkj.js.map +1 -0
  131. package/dist/link-6TIZ4JIw.js +73 -0
  132. package/dist/link-6TIZ4JIw.js.map +1 -0
  133. package/dist/link-provider-DPBGo-0n.js +22 -0
  134. package/dist/link-provider-DPBGo-0n.js.map +1 -0
  135. package/dist/loader-DHGMYlC6.js +105 -0
  136. package/dist/loader-DHGMYlC6.js.map +1 -0
  137. package/dist/menubar-DLwLRFB1.js +92 -0
  138. package/dist/menubar-DLwLRFB1.js.map +1 -0
  139. package/dist/meter-DKUuvXxS.js +51 -0
  140. package/dist/meter-DKUuvXxS.js.map +1 -0
  141. package/dist/pagination-C4HQqodz.js +99 -0
  142. package/dist/pagination-C4HQqodz.js.map +1 -0
  143. package/dist/popover-DhdIqrP7.js +178 -0
  144. package/dist/popover-DhdIqrP7.js.map +1 -0
  145. package/dist/primitives/accordion.js +6 -0
  146. package/dist/primitives/accordion.js.map +1 -0
  147. package/dist/primitives/alert-dialog.js +6 -0
  148. package/dist/primitives/alert-dialog.js.map +1 -0
  149. package/dist/primitives/autocomplete.js +6 -0
  150. package/dist/primitives/autocomplete.js.map +1 -0
  151. package/dist/primitives/avatar.js +6 -0
  152. package/dist/primitives/avatar.js.map +1 -0
  153. package/dist/primitives/button.js +6 -0
  154. package/dist/primitives/button.js.map +1 -0
  155. package/dist/primitives/checkbox-group.js +6 -0
  156. package/dist/primitives/checkbox-group.js.map +1 -0
  157. package/dist/primitives/checkbox.js +6 -0
  158. package/dist/primitives/checkbox.js.map +1 -0
  159. package/dist/primitives/collapsible.js +6 -0
  160. package/dist/primitives/collapsible.js.map +1 -0
  161. package/dist/primitives/combobox.js +6 -0
  162. package/dist/primitives/combobox.js.map +1 -0
  163. package/dist/primitives/context-menu.js +6 -0
  164. package/dist/primitives/context-menu.js.map +1 -0
  165. package/dist/primitives/dialog.js +6 -0
  166. package/dist/primitives/dialog.js.map +1 -0
  167. package/dist/primitives/direction-provider.js +7 -0
  168. package/dist/primitives/direction-provider.js.map +1 -0
  169. package/dist/primitives/field.js +6 -0
  170. package/dist/primitives/field.js.map +1 -0
  171. package/dist/primitives/fieldset.js +6 -0
  172. package/dist/primitives/fieldset.js.map +1 -0
  173. package/dist/primitives/form.js +6 -0
  174. package/dist/primitives/form.js.map +1 -0
  175. package/dist/primitives/input.js +6 -0
  176. package/dist/primitives/input.js.map +1 -0
  177. package/dist/primitives/menu.js +6 -0
  178. package/dist/primitives/menu.js.map +1 -0
  179. package/dist/primitives/menubar.js +6 -0
  180. package/dist/primitives/menubar.js.map +1 -0
  181. package/dist/primitives/meter.js +6 -0
  182. package/dist/primitives/meter.js.map +1 -0
  183. package/dist/primitives/navigation-menu.js +6 -0
  184. package/dist/primitives/navigation-menu.js.map +1 -0
  185. package/dist/primitives/number-field.js +6 -0
  186. package/dist/primitives/number-field.js.map +1 -0
  187. package/dist/primitives/popover.js +6 -0
  188. package/dist/primitives/popover.js.map +1 -0
  189. package/dist/primitives/preview-card.js +6 -0
  190. package/dist/primitives/preview-card.js.map +1 -0
  191. package/dist/primitives/progress.js +6 -0
  192. package/dist/primitives/progress.js.map +1 -0
  193. package/dist/primitives/radio-group.js +6 -0
  194. package/dist/primitives/radio-group.js.map +1 -0
  195. package/dist/primitives/radio.js +6 -0
  196. package/dist/primitives/radio.js.map +1 -0
  197. package/dist/primitives/scroll-area.js +6 -0
  198. package/dist/primitives/scroll-area.js.map +1 -0
  199. package/dist/primitives/select.js +6 -0
  200. package/dist/primitives/select.js.map +1 -0
  201. package/dist/primitives/separator.js +6 -0
  202. package/dist/primitives/separator.js.map +1 -0
  203. package/dist/primitives/slider.js +6 -0
  204. package/dist/primitives/slider.js.map +1 -0
  205. package/dist/primitives/switch.js +6 -0
  206. package/dist/primitives/switch.js.map +1 -0
  207. package/dist/primitives/tabs.js +6 -0
  208. package/dist/primitives/tabs.js.map +1 -0
  209. package/dist/primitives/toast.js +6 -0
  210. package/dist/primitives/toast.js.map +1 -0
  211. package/dist/primitives/toggle-group.js +6 -0
  212. package/dist/primitives/toggle-group.js.map +1 -0
  213. package/dist/primitives/toggle.js +6 -0
  214. package/dist/primitives/toggle.js.map +1 -0
  215. package/dist/primitives/toolbar.js +6 -0
  216. package/dist/primitives/toolbar.js.map +1 -0
  217. package/dist/primitives/tooltip.js +6 -0
  218. package/dist/primitives/tooltip.js.map +1 -0
  219. package/dist/primitives.js +43 -0
  220. package/dist/primitives.js.map +1 -0
  221. package/dist/radio-BVAG7hNp.js +125 -0
  222. package/dist/radio-BVAG7hNp.js.map +1 -0
  223. package/dist/registry.js +2 -0
  224. package/dist/registry.js.map +1 -0
  225. package/dist/schemas-BSdA0fz-.js +3210 -0
  226. package/dist/schemas-BSdA0fz-.js.map +1 -0
  227. package/dist/select-B5Vb3zou.js +122 -0
  228. package/dist/select-B5Vb3zou.js.map +1 -0
  229. package/dist/sensitive-input-D5HCV04N.js +258 -0
  230. package/dist/sensitive-input-D5HCV04N.js.map +1 -0
  231. package/dist/skeleton-line-CtpS1u1J.js +28 -0
  232. package/dist/skeleton-line-CtpS1u1J.js.map +1 -0
  233. package/dist/src/blocks/page-header/index.d.ts +2 -0
  234. package/dist/src/blocks/page-header/index.d.ts.map +1 -0
  235. package/dist/src/blocks/page-header/page-header.d.ts +38 -0
  236. package/dist/src/blocks/page-header/page-header.d.ts.map +1 -0
  237. package/dist/src/blocks/resource-list/index.d.ts +2 -0
  238. package/dist/src/blocks/resource-list/index.d.ts.map +1 -0
  239. package/dist/src/blocks/resource-list/resource-list.d.ts +18 -0
  240. package/dist/src/blocks/resource-list/resource-list.d.ts.map +1 -0
  241. package/dist/src/catalog/catalog.d.ts +75 -0
  242. package/dist/src/catalog/catalog.d.ts.map +1 -0
  243. package/dist/src/catalog/data.d.ts +44 -0
  244. package/dist/src/catalog/data.d.ts.map +1 -0
  245. package/dist/src/catalog/index.d.ts +39 -0
  246. package/dist/src/catalog/index.d.ts.map +1 -0
  247. package/dist/src/catalog/types.d.ts +226 -0
  248. package/dist/src/catalog/types.d.ts.map +1 -0
  249. package/dist/src/catalog/visibility.d.ts +37 -0
  250. package/dist/src/catalog/visibility.d.ts.map +1 -0
  251. package/dist/src/command-line/build-cli.d.ts +7 -0
  252. package/dist/src/command-line/build-cli.d.ts.map +1 -0
  253. package/dist/src/command-line/cli.d.ts +13 -0
  254. package/dist/src/command-line/cli.d.ts.map +1 -0
  255. package/dist/src/command-line/commands/add.d.ts +10 -0
  256. package/dist/src/command-line/commands/add.d.ts.map +1 -0
  257. package/dist/src/command-line/commands/blocks.d.ts +10 -0
  258. package/dist/src/command-line/commands/blocks.d.ts.map +1 -0
  259. package/dist/src/command-line/commands/doc.d.ts +14 -0
  260. package/dist/src/command-line/commands/doc.d.ts.map +1 -0
  261. package/dist/src/command-line/commands/init.d.ts +18 -0
  262. package/dist/src/command-line/commands/init.d.ts.map +1 -0
  263. package/dist/src/command-line/commands/ls.d.ts +10 -0
  264. package/dist/src/command-line/commands/ls.d.ts.map +1 -0
  265. package/dist/src/command-line/commands/migrate.d.ts +10 -0
  266. package/dist/src/command-line/commands/migrate.d.ts.map +1 -0
  267. package/dist/src/command-line/utils/config.d.ts +42 -0
  268. package/dist/src/command-line/utils/config.d.ts.map +1 -0
  269. package/dist/src/command-line/utils/transformer.d.ts +17 -0
  270. package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
  271. package/dist/src/components/badge/badge.d.ts +46 -0
  272. package/dist/src/components/badge/badge.d.ts.map +1 -0
  273. package/dist/src/components/badge/index.d.ts +2 -0
  274. package/dist/src/components/badge/index.d.ts.map +1 -0
  275. package/dist/src/components/banner/banner.d.ts +45 -0
  276. package/dist/src/components/banner/banner.d.ts.map +1 -0
  277. package/dist/src/components/banner/index.d.ts +2 -0
  278. package/dist/src/components/banner/index.d.ts.map +1 -0
  279. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +43 -0
  280. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  281. package/dist/src/components/breadcrumbs/index.d.ts +2 -0
  282. package/dist/src/components/breadcrumbs/index.d.ts.map +1 -0
  283. package/dist/src/components/button/button.d.ts +118 -0
  284. package/dist/src/components/button/button.d.ts.map +1 -0
  285. package/dist/src/components/button/index.d.ts +2 -0
  286. package/dist/src/components/button/index.d.ts.map +1 -0
  287. package/dist/src/components/checkbox/checkbox.d.ts +167 -0
  288. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -0
  289. package/dist/src/components/checkbox/index.d.ts +2 -0
  290. package/dist/src/components/checkbox/index.d.ts.map +1 -0
  291. package/dist/src/components/clipboard-text/clipboard-text.d.ts +38 -0
  292. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -0
  293. package/dist/src/components/clipboard-text/index.d.ts +2 -0
  294. package/dist/src/components/clipboard-text/index.d.ts.map +1 -0
  295. package/dist/src/components/code/code.d.ts +138 -0
  296. package/dist/src/components/code/code.d.ts.map +1 -0
  297. package/dist/src/components/code/index.d.ts +4 -0
  298. package/dist/src/components/code/index.d.ts.map +1 -0
  299. package/dist/src/components/collapsible/collapsible.d.ts +62 -0
  300. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -0
  301. package/dist/src/components/collapsible/index.d.ts +2 -0
  302. package/dist/src/components/collapsible/index.d.ts.map +1 -0
  303. package/dist/src/components/combobox/combobox.d.ts +124 -0
  304. package/dist/src/components/combobox/combobox.d.ts.map +1 -0
  305. package/dist/src/components/combobox/index.d.ts +2 -0
  306. package/dist/src/components/combobox/index.d.ts.map +1 -0
  307. package/dist/src/components/command-palette/command-palette.d.ts +225 -0
  308. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -0
  309. package/dist/src/components/command-palette/index.d.ts +3 -0
  310. package/dist/src/components/command-palette/index.d.ts.map +1 -0
  311. package/dist/src/components/command-palette/types.d.ts +149 -0
  312. package/dist/src/components/command-palette/types.d.ts.map +1 -0
  313. package/dist/src/components/date-range-picker/date-range-picker.d.ts +65 -0
  314. package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -0
  315. package/dist/src/components/date-range-picker/index.d.ts +2 -0
  316. package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
  317. package/dist/src/components/dialog/dialog.d.ts +121 -0
  318. package/dist/src/components/dialog/dialog.d.ts.map +1 -0
  319. package/dist/src/components/dialog/index.d.ts +2 -0
  320. package/dist/src/components/dialog/index.d.ts.map +1 -0
  321. package/dist/src/components/dropdown/dropdown.d.ts +58 -0
  322. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -0
  323. package/dist/src/components/dropdown/index.d.ts +2 -0
  324. package/dist/src/components/dropdown/index.d.ts.map +1 -0
  325. package/dist/src/components/empty/empty.d.ts +34 -0
  326. package/dist/src/components/empty/empty.d.ts.map +1 -0
  327. package/dist/src/components/empty/index.d.ts +2 -0
  328. package/dist/src/components/empty/index.d.ts.map +1 -0
  329. package/dist/src/components/field/field.d.ts +38 -0
  330. package/dist/src/components/field/field.d.ts.map +1 -0
  331. package/dist/src/components/field/index.d.ts +2 -0
  332. package/dist/src/components/field/index.d.ts.map +1 -0
  333. package/dist/src/components/grid/grid.d.ts +107 -0
  334. package/dist/src/components/grid/grid.d.ts.map +1 -0
  335. package/dist/src/components/grid/index.d.ts +2 -0
  336. package/dist/src/components/grid/index.d.ts.map +1 -0
  337. package/dist/src/components/input/index.d.ts +4 -0
  338. package/dist/src/components/input/index.d.ts.map +1 -0
  339. package/dist/src/components/input/input-area.d.ts +46 -0
  340. package/dist/src/components/input/input-area.d.ts.map +1 -0
  341. package/dist/src/components/input/input-group.d.ts +39 -0
  342. package/dist/src/components/input/input-group.d.ts.map +1 -0
  343. package/dist/src/components/input/input.d.ts +157 -0
  344. package/dist/src/components/input/input.d.ts.map +1 -0
  345. package/dist/src/components/label/index.d.ts +2 -0
  346. package/dist/src/components/label/index.d.ts.map +1 -0
  347. package/dist/src/components/label/label.d.ts +54 -0
  348. package/dist/src/components/label/label.d.ts.map +1 -0
  349. package/dist/src/components/layer-card/index.d.ts +2 -0
  350. package/dist/src/components/layer-card/index.d.ts.map +1 -0
  351. package/dist/src/components/layer-card/layer-card.d.ts +16 -0
  352. package/dist/src/components/layer-card/layer-card.d.ts.map +1 -0
  353. package/dist/src/components/link/index.d.ts +2 -0
  354. package/dist/src/components/link/index.d.ts.map +1 -0
  355. package/dist/src/components/link/link.d.ts +35 -0
  356. package/dist/src/components/link/link.d.ts.map +1 -0
  357. package/dist/src/components/loader/index.d.ts +3 -0
  358. package/dist/src/components/loader/index.d.ts.map +1 -0
  359. package/dist/src/components/loader/loader.d.ts +30 -0
  360. package/dist/src/components/loader/loader.d.ts.map +1 -0
  361. package/dist/src/components/loader/skeleton-line.d.ts +10 -0
  362. package/dist/src/components/loader/skeleton-line.d.ts.map +1 -0
  363. package/dist/src/components/menubar/index.d.ts +3 -0
  364. package/dist/src/components/menubar/index.d.ts.map +1 -0
  365. package/dist/src/components/menubar/menubar.d.ts +22 -0
  366. package/dist/src/components/menubar/menubar.d.ts.map +1 -0
  367. package/dist/src/components/menubar/use-menu-navigation.d.ts +8 -0
  368. package/dist/src/components/menubar/use-menu-navigation.d.ts.map +1 -0
  369. package/dist/src/components/meter/index.d.ts +2 -0
  370. package/dist/src/components/meter/index.d.ts.map +1 -0
  371. package/dist/src/components/meter/meter.d.ts +18 -0
  372. package/dist/src/components/meter/meter.d.ts.map +1 -0
  373. package/dist/src/components/pagination/index.d.ts +2 -0
  374. package/dist/src/components/pagination/index.d.ts.map +1 -0
  375. package/dist/src/components/pagination/pagination.d.ts +28 -0
  376. package/dist/src/components/pagination/pagination.d.ts.map +1 -0
  377. package/dist/src/components/popover/index.d.ts +3 -0
  378. package/dist/src/components/popover/index.d.ts.map +1 -0
  379. package/dist/src/components/popover/popover.d.ts +110 -0
  380. package/dist/src/components/popover/popover.d.ts.map +1 -0
  381. package/dist/src/components/radio/index.d.ts +2 -0
  382. package/dist/src/components/radio/index.d.ts.map +1 -0
  383. package/dist/src/components/radio/radio.d.ts +141 -0
  384. package/dist/src/components/radio/radio.d.ts.map +1 -0
  385. package/dist/src/components/select/index.d.ts +2 -0
  386. package/dist/src/components/select/index.d.ts.map +1 -0
  387. package/dist/src/components/select/select.d.ts +128 -0
  388. package/dist/src/components/select/select.d.ts.map +1 -0
  389. package/dist/src/components/sensitive-input/index.d.ts +2 -0
  390. package/dist/src/components/sensitive-input/index.d.ts.map +1 -0
  391. package/dist/src/components/sensitive-input/sensitive-input.d.ts +70 -0
  392. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -0
  393. package/dist/src/components/surface/index.d.ts +2 -0
  394. package/dist/src/components/surface/index.d.ts.map +1 -0
  395. package/dist/src/components/surface/surface.d.ts +48 -0
  396. package/dist/src/components/surface/surface.d.ts.map +1 -0
  397. package/dist/src/components/switch/index.d.ts +2 -0
  398. package/dist/src/components/switch/index.d.ts.map +1 -0
  399. package/dist/src/components/switch/switch.d.ts +155 -0
  400. package/dist/src/components/switch/switch.d.ts.map +1 -0
  401. package/dist/src/components/table/index.d.ts +2 -0
  402. package/dist/src/components/table/index.d.ts.map +1 -0
  403. package/dist/src/components/table/table.d.ts +54 -0
  404. package/dist/src/components/table/table.d.ts.map +1 -0
  405. package/dist/src/components/tabs/index.d.ts +3 -0
  406. package/dist/src/components/tabs/index.d.ts.map +1 -0
  407. package/dist/src/components/tabs/tabs.d.ts +64 -0
  408. package/dist/src/components/tabs/tabs.d.ts.map +1 -0
  409. package/dist/src/components/text/index.d.ts +2 -0
  410. package/dist/src/components/text/index.d.ts.map +1 -0
  411. package/dist/src/components/text/text.d.ts +153 -0
  412. package/dist/src/components/text/text.d.ts.map +1 -0
  413. package/dist/src/components/toast/index.d.ts +3 -0
  414. package/dist/src/components/toast/index.d.ts.map +1 -0
  415. package/dist/src/components/toast/toast.d.ts +66 -0
  416. package/dist/src/components/toast/toast.d.ts.map +1 -0
  417. package/dist/src/components/tooltip/index.d.ts +2 -0
  418. package/dist/src/components/tooltip/index.d.ts.map +1 -0
  419. package/dist/src/components/tooltip/tooltip.d.ts +43 -0
  420. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
  421. package/dist/src/index.d.ts +39 -0
  422. package/dist/src/index.d.ts.map +1 -0
  423. package/dist/src/primitives/accordion.d.ts +13 -0
  424. package/dist/src/primitives/accordion.d.ts.map +1 -0
  425. package/dist/src/primitives/alert-dialog.d.ts +13 -0
  426. package/dist/src/primitives/alert-dialog.d.ts.map +1 -0
  427. package/dist/src/primitives/autocomplete.d.ts +13 -0
  428. package/dist/src/primitives/autocomplete.d.ts.map +1 -0
  429. package/dist/src/primitives/avatar.d.ts +13 -0
  430. package/dist/src/primitives/avatar.d.ts.map +1 -0
  431. package/dist/src/primitives/button.d.ts +13 -0
  432. package/dist/src/primitives/button.d.ts.map +1 -0
  433. package/dist/src/primitives/checkbox-group.d.ts +13 -0
  434. package/dist/src/primitives/checkbox-group.d.ts.map +1 -0
  435. package/dist/src/primitives/checkbox.d.ts +13 -0
  436. package/dist/src/primitives/checkbox.d.ts.map +1 -0
  437. package/dist/src/primitives/collapsible.d.ts +13 -0
  438. package/dist/src/primitives/collapsible.d.ts.map +1 -0
  439. package/dist/src/primitives/combobox.d.ts +13 -0
  440. package/dist/src/primitives/combobox.d.ts.map +1 -0
  441. package/dist/src/primitives/context-menu.d.ts +13 -0
  442. package/dist/src/primitives/context-menu.d.ts.map +1 -0
  443. package/dist/src/primitives/dialog.d.ts +13 -0
  444. package/dist/src/primitives/dialog.d.ts.map +1 -0
  445. package/dist/src/primitives/direction-provider.d.ts +13 -0
  446. package/dist/src/primitives/direction-provider.d.ts.map +1 -0
  447. package/dist/src/primitives/field.d.ts +13 -0
  448. package/dist/src/primitives/field.d.ts.map +1 -0
  449. package/dist/src/primitives/fieldset.d.ts +13 -0
  450. package/dist/src/primitives/fieldset.d.ts.map +1 -0
  451. package/dist/src/primitives/form.d.ts +13 -0
  452. package/dist/src/primitives/form.d.ts.map +1 -0
  453. package/dist/src/primitives/index.d.ts +52 -0
  454. package/dist/src/primitives/index.d.ts.map +1 -0
  455. package/dist/src/primitives/input.d.ts +13 -0
  456. package/dist/src/primitives/input.d.ts.map +1 -0
  457. package/dist/src/primitives/menu.d.ts +13 -0
  458. package/dist/src/primitives/menu.d.ts.map +1 -0
  459. package/dist/src/primitives/menubar.d.ts +13 -0
  460. package/dist/src/primitives/menubar.d.ts.map +1 -0
  461. package/dist/src/primitives/meter.d.ts +13 -0
  462. package/dist/src/primitives/meter.d.ts.map +1 -0
  463. package/dist/src/primitives/navigation-menu.d.ts +13 -0
  464. package/dist/src/primitives/navigation-menu.d.ts.map +1 -0
  465. package/dist/src/primitives/number-field.d.ts +13 -0
  466. package/dist/src/primitives/number-field.d.ts.map +1 -0
  467. package/dist/src/primitives/popover.d.ts +13 -0
  468. package/dist/src/primitives/popover.d.ts.map +1 -0
  469. package/dist/src/primitives/preview-card.d.ts +13 -0
  470. package/dist/src/primitives/preview-card.d.ts.map +1 -0
  471. package/dist/src/primitives/progress.d.ts +13 -0
  472. package/dist/src/primitives/progress.d.ts.map +1 -0
  473. package/dist/src/primitives/radio-group.d.ts +13 -0
  474. package/dist/src/primitives/radio-group.d.ts.map +1 -0
  475. package/dist/src/primitives/radio.d.ts +13 -0
  476. package/dist/src/primitives/radio.d.ts.map +1 -0
  477. package/dist/src/primitives/scroll-area.d.ts +13 -0
  478. package/dist/src/primitives/scroll-area.d.ts.map +1 -0
  479. package/dist/src/primitives/select.d.ts +13 -0
  480. package/dist/src/primitives/select.d.ts.map +1 -0
  481. package/dist/src/primitives/separator.d.ts +13 -0
  482. package/dist/src/primitives/separator.d.ts.map +1 -0
  483. package/dist/src/primitives/slider.d.ts +13 -0
  484. package/dist/src/primitives/slider.d.ts.map +1 -0
  485. package/dist/src/primitives/switch.d.ts +13 -0
  486. package/dist/src/primitives/switch.d.ts.map +1 -0
  487. package/dist/src/primitives/tabs.d.ts +13 -0
  488. package/dist/src/primitives/tabs.d.ts.map +1 -0
  489. package/dist/src/primitives/toast.d.ts +13 -0
  490. package/dist/src/primitives/toast.d.ts.map +1 -0
  491. package/dist/src/primitives/toggle-group.d.ts +13 -0
  492. package/dist/src/primitives/toggle-group.d.ts.map +1 -0
  493. package/dist/src/primitives/toggle.d.ts +13 -0
  494. package/dist/src/primitives/toggle.d.ts.map +1 -0
  495. package/dist/src/primitives/toolbar.d.ts +13 -0
  496. package/dist/src/primitives/toolbar.d.ts.map +1 -0
  497. package/dist/src/primitives/tooltip.d.ts +13 -0
  498. package/dist/src/primitives/tooltip.d.ts.map +1 -0
  499. package/dist/src/registry/index.d.ts +8 -0
  500. package/dist/src/registry/index.d.ts.map +1 -0
  501. package/dist/src/registry/types.d.ts +191 -0
  502. package/dist/src/registry/types.d.ts.map +1 -0
  503. package/dist/src/utils/cn.d.ts +4 -0
  504. package/dist/src/utils/cn.d.ts.map +1 -0
  505. package/dist/src/utils/index.d.ts +3 -0
  506. package/dist/src/utils/index.d.ts.map +1 -0
  507. package/dist/src/utils/link-provider.d.ts +12 -0
  508. package/dist/src/utils/link-provider.d.ts.map +1 -0
  509. package/dist/src/utils/prop-examples.d.ts +36 -0
  510. package/dist/src/utils/prop-examples.d.ts.map +1 -0
  511. package/dist/styles/kumo-binding.css +190 -0
  512. package/dist/styles/kumo-standalone.css +2 -0
  513. package/dist/styles/kumo.css +55 -0
  514. package/dist/styles/theme-fedramp.css +20 -0
  515. package/dist/styles/theme-kumo.css +186 -0
  516. package/dist/surface-BIC6CXiz.js +21 -0
  517. package/dist/surface-BIC6CXiz.js.map +1 -0
  518. package/dist/switch-D4duMhJ0.js +257 -0
  519. package/dist/switch-D4duMhJ0.js.map +1 -0
  520. package/dist/table-KuvHGpL8.js +153 -0
  521. package/dist/table-KuvHGpL8.js.map +1 -0
  522. package/dist/tabs-lQup-IbT.js +85 -0
  523. package/dist/tabs-lQup-IbT.js.map +1 -0
  524. package/dist/text-BEhqwMfe.js +97 -0
  525. package/dist/text-BEhqwMfe.js.map +1 -0
  526. package/dist/toast-8YyyQuqZ.js +69 -0
  527. package/dist/toast-8YyyQuqZ.js.map +1 -0
  528. package/dist/tooltip-DJWsDTWJ.js +85 -0
  529. package/dist/tooltip-DJWsDTWJ.js.map +1 -0
  530. package/dist/utils.js +10 -0
  531. package/dist/utils.js.map +1 -0
  532. package/dist/vendor-base-ui-DWIDNgE1.js +20446 -0
  533. package/dist/vendor-base-ui-DWIDNgE1.js.map +1 -0
  534. package/dist/vendor-floating-ui-BgbEw62H.js +1286 -0
  535. package/dist/vendor-floating-ui-BgbEw62H.js.map +1 -0
  536. package/dist/vendor-styling-BQbxAbdS.js +2775 -0
  537. package/dist/vendor-styling-BQbxAbdS.js.map +1 -0
  538. package/dist/vendor-utils-DD8jNJwD.js +741 -0
  539. package/dist/vendor-utils-DD8jNJwD.js.map +1 -0
  540. package/package.json +444 -0
  541. package/scripts/component-registry/cache.ts +123 -0
  542. package/scripts/component-registry/discovery.ts +469 -0
  543. package/scripts/component-registry/example-cleanup.ts +168 -0
  544. package/scripts/component-registry/index.test.ts +680 -0
  545. package/scripts/component-registry/index.ts +874 -0
  546. package/scripts/component-registry/markdown-generator.ts +222 -0
  547. package/scripts/component-registry/metadata.ts +643 -0
  548. package/scripts/component-registry/props-filter.ts +310 -0
  549. package/scripts/component-registry/schema-generator.ts +326 -0
  550. package/scripts/component-registry/sub-components.ts +349 -0
  551. package/scripts/component-registry/types.ts +156 -0
  552. package/scripts/component-registry/utils.ts +280 -0
  553. package/scripts/component-registry/variant-parser.ts +261 -0
  554. package/scripts/css-build.ts +55 -0
  555. package/scripts/generate-primitives.ts +178 -0
  556. package/scripts/theme-generator/config.ts +392 -0
  557. package/scripts/theme-generator/generate-css.ts +250 -0
  558. package/scripts/theme-generator/index.ts +159 -0
  559. package/scripts/theme-generator/migrate.ts +560 -0
  560. package/scripts/theme-generator/types.ts +86 -0
package/ai/schemas.ts ADDED
@@ -0,0 +1,594 @@
1
+ /**
2
+ * Auto-generated Zod schemas for Kumo 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
+ // =============================================================================
11
+ // Dynamic Value Schema (for data binding)
12
+ // =============================================================================
13
+
14
+ /**
15
+ * A value that can either be a literal or a reference to the data model.
16
+ * Example: "Hello" or { path: "/user/name" }
17
+ */
18
+ export const DynamicValueSchema = z.union([
19
+ z.string(),
20
+ z.number(),
21
+ z.boolean(),
22
+ z.null(),
23
+ z.object({ path: z.string() }),
24
+ ]);
25
+
26
+ export type DynamicValue<T = unknown> = T | { path: string };
27
+
28
+ // =============================================================================
29
+ // Visibility Condition Schemas
30
+ // =============================================================================
31
+
32
+ /**
33
+ * Visibility conditions for conditional rendering.
34
+ * Components can be shown/hidden based on data, auth, or logic expressions.
35
+ */
36
+
37
+ // Forward declaration for recursive types
38
+ // Note: Numeric comparisons use DynamicValue (not DynamicValue<number>) for Zod compatibility
39
+ export type LogicExpression =
40
+ | { and: LogicExpression[] }
41
+ | { or: LogicExpression[] }
42
+ | { not: LogicExpression }
43
+ | { path: string }
44
+ | { eq: [DynamicValue, DynamicValue] }
45
+ | { neq: [DynamicValue, DynamicValue] }
46
+ | { gt: [DynamicValue, DynamicValue] }
47
+ | { gte: [DynamicValue, DynamicValue] }
48
+ | { lt: [DynamicValue, DynamicValue] }
49
+ | { lte: [DynamicValue, DynamicValue] };
50
+
51
+ // Lazy schema for recursive logic expressions
52
+ const LogicExpressionSchema: z.ZodType<LogicExpression> = z.lazy(() =>
53
+ z.union([
54
+ z.object({ and: z.array(LogicExpressionSchema) }),
55
+ z.object({ or: z.array(LogicExpressionSchema) }),
56
+ z.object({ not: LogicExpressionSchema }),
57
+ z.object({ path: z.string() }),
58
+ z.object({ eq: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
59
+ z.object({ neq: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
60
+ z.object({ gt: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
61
+ z.object({ gte: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
62
+ z.object({ lt: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
63
+ z.object({ lte: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
64
+ ])
65
+ );
66
+
67
+ export const VisibilityConditionSchema = z.union([
68
+ z.boolean(),
69
+ z.object({ path: z.string() }),
70
+ z.object({ auth: z.enum(["signedIn", "signedOut"]) }),
71
+ LogicExpressionSchema,
72
+ ]);
73
+
74
+ export type VisibilityCondition = z.infer<typeof VisibilityConditionSchema>;
75
+
76
+ // =============================================================================
77
+ // Action Schemas
78
+ // =============================================================================
79
+
80
+ /**
81
+ * Action confirmation dialog configuration
82
+ */
83
+ export const ActionConfirmSchema = z.object({
84
+ title: z.string(),
85
+ message: z.string(),
86
+ variant: z.enum(["default", "danger"]).optional(),
87
+ confirmLabel: z.string().optional(),
88
+ cancelLabel: z.string().optional(),
89
+ });
90
+
91
+ /**
92
+ * Action definition that AI can declare
93
+ */
94
+ export const ActionSchema = z.object({
95
+ name: z.string(),
96
+ params: z.record(z.string(), DynamicValueSchema).optional(),
97
+ confirm: ActionConfirmSchema.optional(),
98
+ onSuccess: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
99
+ onError: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
100
+ });
101
+
102
+ export type Action = z.infer<typeof ActionSchema>;
103
+
104
+ // =============================================================================
105
+ // Component Props Schemas
106
+ // =============================================================================
107
+
108
+ export const BadgePropsSchema = z.object({
109
+ variant: z.enum(["primary", "secondary", "destructive", "outline", "beta"]).optional(),
110
+ className: z.string().optional(),
111
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
112
+ });
113
+
114
+ export const BannerPropsSchema = z.object({
115
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
116
+ text: z.string().optional(),
117
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
118
+ variant: z.enum(["default", "alert", "error"]).optional(),
119
+ className: z.string().optional(),
120
+ });
121
+
122
+ export const BreadcrumbsPropsSchema = z.object({
123
+ size: z.enum(["sm", "base"]).optional(),
124
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
125
+ className: z.string().optional(),
126
+ });
127
+
128
+ export const ButtonPropsSchema = z.object({
129
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
130
+ className: z.string().optional(),
131
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
132
+ loading: z.boolean().optional(),
133
+ shape: z.enum(["base", "square", "circle"]).optional(),
134
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(),
135
+ variant: z.enum(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
136
+ id: z.string().optional(),
137
+ lang: z.string().optional(),
138
+ title: z.string().optional(),
139
+ disabled: z.boolean().optional(),
140
+ name: z.string().optional(),
141
+ type: z.enum(["submit", "reset", "button"]).optional(),
142
+ value: z.unknown().optional(),
143
+ });
144
+
145
+ export const CheckboxPropsSchema = z.object({
146
+ variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
147
+ 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
148
+ 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
149
+ controlFirst: z.boolean().optional(), // When true (default), checkbox appears before label. When false, label appears before checkbox.
150
+ checked: z.boolean().optional(), // Whether the checkbox is checked (controlled)
151
+ indeterminate: z.boolean().optional(), // Whether the checkbox is in indeterminate state
152
+ disabled: z.boolean().optional(), // Whether the checkbox is disabled
153
+ name: z.string().optional(), // Name for form submission
154
+ required: z.boolean().optional(), // Whether the field is required
155
+ className: z.string().optional(), // Additional class name
156
+ onValueChange: z.unknown().optional(), // Callback when checkbox value changes
157
+ });
158
+
159
+ export const ClipboardTextPropsSchema = z.object({
160
+ size: z.enum(["sm", "base", "lg"]).optional(),
161
+ text: z.string(), // The text to display and copy to clipboard
162
+ className: z.string().optional(), // Additional CSS classes
163
+ });
164
+
165
+ export const CodePropsSchema = z.object({
166
+ lang: z.enum(["ts", "tsx", "jsonc", "bash", "css"]).optional(),
167
+ code: z.string(), // The code content to display
168
+ values: z.unknown().optional(), // Template values for interpolation
169
+ className: z.string().optional(), // Additional CSS classes
170
+ });
171
+
172
+ export const CollapsiblePropsSchema = z.object({
173
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
174
+ label: z.string(), // Text label displayed in the trigger button
175
+ open: z.boolean().optional(), // Whether the collapsible content is visible
176
+ className: z.string().optional(), // Additional CSS classes for the content panel
177
+ onOpenChange: z.unknown().optional(), // Callback when collapsed state changes
178
+ });
179
+
180
+ export const ComboboxPropsSchema = z.object({
181
+ inputSide: z.enum(["right", "top"]).optional(),
182
+ items: z.array(z.unknown()), // Array of items to display in the dropdown
183
+ value: z.array(z.unknown()).optional(), // Currently selected value(s)
184
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Combobox content (trigger, content, items)
185
+ className: z.string().optional(), // Additional CSS classes
186
+ 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
187
+ required: z.boolean().optional(), // Whether the combobox is required
188
+ 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
189
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the combobox
190
+ error: z.unknown().optional(), // Error message or validation error object
191
+ onValueChange: z.unknown().optional(), // Callback when selection changes
192
+ multiple: z.boolean().optional(), // Allow multiple selections
193
+ isItemEqualToValue: z.unknown().optional(), // Custom equality function for comparing items
194
+ });
195
+
196
+ export const CommandPalettePropsSchema = z.object({
197
+ open: z.boolean(), // Whether the dialog is open
198
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child content - typically one or more Panel components
199
+ });
200
+
201
+ export const DateRangePickerPropsSchema = z.object({
202
+ size: z.enum(["sm", "base", "lg"]).optional(),
203
+ variant: z.enum(["default", "subtle"]).optional(),
204
+ timezone: z.string().optional(), // Display timezone (display only)
205
+ className: z.string().optional(), // Additional CSS classes
206
+ onStartDateChange: z.unknown().optional(), // Callback when start date changes
207
+ onEndDateChange: z.unknown().optional(), // Callback when end date changes
208
+ });
209
+
210
+ export const DialogPropsSchema = z.object({
211
+ className: z.string().optional(),
212
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
213
+ size: z.enum(["base", "sm", "lg", "xl"]).optional(),
214
+ });
215
+
216
+ export const DropdownMenuPropsSchema = z.object({
217
+ variant: z.enum(["default", "danger"]).optional(),
218
+ });
219
+
220
+ export const EmptyPropsSchema = z.object({
221
+ size: z.enum(["sm", "base", "lg"]).optional(),
222
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
223
+ title: z.string(),
224
+ description: z.string().optional(),
225
+ commandLine: z.string().optional(),
226
+ contents: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
227
+ className: z.string().optional(),
228
+ });
229
+
230
+ export const FieldPropsSchema = z.object({
231
+ controlFirst: z.boolean().optional(), // When true, places the control (checkbox/switch) before the label visually. When false (default), places the label before the control. Used to support different layout patterns (e.g., iOS-style toggles on the right).
232
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
233
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content - can be a string or any React node
234
+ required: z.boolean().optional(), // When explicitly false, shows gray "(optional)" text after the label. When true or undefined, no indicator is shown.
235
+ 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
236
+ error: z.unknown().optional(),
237
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
238
+ });
239
+
240
+ export const GridPropsSchema = z.object({
241
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child node(s) that can be nested inside component
242
+ className: z.string().optional(), // CSS class names that can be appended to the component
243
+ id: z.string().optional(),
244
+ lang: z.string().optional(),
245
+ title: z.string().optional(),
246
+ mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with 4up variant)
247
+ gap: z.enum(["none", "sm", "base", "lg"]).optional(), // Gap size between grid items
248
+ variant: z.enum(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional(), // Stylistic variations of the Grid layout
249
+ });
250
+
251
+ export const InputPropsSchema = z.object({
252
+ 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
253
+ 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
254
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
255
+ error: z.unknown().optional(), // Error message or validation error object
256
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(),
257
+ variant: z.enum(["default", "error"]).optional(),
258
+ });
259
+
260
+ export const InputAreaPropsSchema = z.object({});
261
+
262
+ export const LabelPropsSchema = z.object({
263
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content - can be a string or any React node
264
+ showOptional: z.boolean().optional(), // When true (and required is false), shows gray "(optional)" text after the label
265
+ tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
266
+ className: z.string().optional(), // Additional CSS classes
267
+ asContent: z.boolean().optional(), // When true, only renders the inline content (indicators, tooltip) without the outer span with font styling. Useful when composed inside another label element that already provides the text styling.
268
+ });
269
+
270
+ export const LayerCardPropsSchema = z.object({
271
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
272
+ className: z.string().optional(),
273
+ });
274
+
275
+ export const LinkPropsSchema = z.object({
276
+ variant: z.enum(["inline", "current", "plain"]).optional(),
277
+ to: z.string().optional(),
278
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
279
+ className: z.string().optional(),
280
+ id: z.string().optional(),
281
+ lang: z.string().optional(),
282
+ title: z.string().optional(),
283
+ download: z.unknown().optional(),
284
+ href: z.string().optional(),
285
+ hrefLang: z.string().optional(),
286
+ media: z.string().optional(),
287
+ ping: z.string().optional(),
288
+ target: z.unknown().optional(),
289
+ type: z.string().optional(),
290
+ 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(),
291
+ 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.
292
+ });
293
+
294
+ export const LoaderPropsSchema = z.object({
295
+ className: z.string().optional(),
296
+ size: z.enum(["sm", "base", "lg"]).optional(),
297
+ });
298
+
299
+ export const MenuBarPropsSchema = z.object({
300
+ className: z.string().optional(),
301
+ isActive: z.unknown().optional(),
302
+ options: z.array(z.unknown()),
303
+ optionIds: z.boolean().optional(),
304
+ });
305
+
306
+ export const MeterPropsSchema = z.object({
307
+ customValue: z.string().optional(),
308
+ label: z.string(),
309
+ showValue: z.boolean().optional(),
310
+ trackClassName: z.string().optional(),
311
+ indicatorClassName: z.string().optional(),
312
+ value: z.number().optional(), // Current value of the meter
313
+ max: z.number().optional(), // Maximum value of the meter (default: 100)
314
+ min: z.number().optional(), // Minimum value of the meter (default: 0)
315
+ });
316
+
317
+ export const PaginationPropsSchema = z.object({
318
+ controls: z.enum(["full", "simple"]).optional(),
319
+ setPage: z.unknown(), // Callback when page changes
320
+ page: z.number().optional(),
321
+ perPage: z.number().optional(),
322
+ totalCount: z.number().optional(),
323
+ });
324
+
325
+ export const PopoverPropsSchema = z.object({
326
+ side: z.enum(["top", "bottom", "left", "right"]).optional(),
327
+ });
328
+
329
+ export const RadioPropsSchema = z.object({
330
+ legend: z.string(), // Legend text for the group (required for accessibility)
331
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child Radio.Item components
332
+ orientation: z.enum(["vertical", "horizontal"]).optional(), // Layout direction of the radio items
333
+ error: z.string().optional(), // Error message for the group
334
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text for the group
335
+ value: z.string().optional(), // Value of the radio that should be selected (controlled)
336
+ disabled: z.boolean().optional(), // Whether all radios in the group are disabled
337
+ controlPosition: z.enum(["start", "end"]).optional(), // Position of radio control relative to label: "start" (default) puts radio before label, "end" puts label before radio
338
+ name: z.string().optional(), // Form submission name for the radio group
339
+ className: z.string().optional(), // Additional CSS classes
340
+ });
341
+
342
+ export const SelectPropsSchema = z.object({
343
+ className: z.string().optional(), // Additional CSS classes
344
+ label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the select (enables Field wrapper) - can be a string or any React node
345
+ hideLabel: z.boolean().optional(), // Whether to visually hide the label (still accessible to screen readers)
346
+ placeholder: z.string().optional(), // Placeholder text when no value is selected
347
+ loading: z.boolean().optional(), // Whether the select is in a loading state
348
+ disabled: z.boolean().optional(), // Whether the select is disabled
349
+ required: z.boolean().optional(), // Whether the select is required
350
+ 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
351
+ value: z.string().optional(), // The currently selected value
352
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements (Select.Option components)
353
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the select
354
+ error: z.unknown().optional(), // Error message or validation error object
355
+ onValueChange: z.unknown().optional(), // Callback when selection changes
356
+ defaultValue: z.string().optional(), // Initial value for uncontrolled mode
357
+ });
358
+
359
+ export const SensitiveInputPropsSchema = z.object({
360
+ alt: z.string().optional(),
361
+ autoComplete: z.unknown().optional(),
362
+ checked: z.boolean().optional(),
363
+ disabled: z.boolean().optional(),
364
+ height: z.unknown().optional(),
365
+ list: z.string().optional(),
366
+ name: z.string().optional(),
367
+ placeholder: z.string().optional(),
368
+ readOnly: z.boolean().optional(),
369
+ required: z.boolean().optional(),
370
+ width: z.unknown().optional(),
371
+ className: z.string().optional(),
372
+ id: z.string().optional(),
373
+ lang: z.string().optional(),
374
+ title: z.string().optional(),
375
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
376
+ value: z.string().optional(), // Controlled value
377
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size variant
378
+ variant: z.enum(["default", "error"]).optional(), // Style variant
379
+ 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
380
+ 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
381
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
382
+ error: z.unknown().optional(), // Error message or validation error object
383
+ });
384
+
385
+ export const SurfacePropsSchema = z.object({
386
+ as: z.unknown().optional(), // The element type to render as (default: "div")
387
+ className: z.string().optional(), // Additional CSS classes
388
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
389
+ });
390
+
391
+ export const SwitchPropsSchema = z.object({
392
+ variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
393
+ 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.
394
+ 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
395
+ required: z.boolean().optional(), // Whether the switch is required. When explicitly false, shows "(optional)" text after the label.
396
+ controlFirst: z.boolean().optional(), // When true (default), switch appears before label. When false, label appears before switch.
397
+ size: z.enum(["sm", "base", "lg"]).optional(),
398
+ checked: z.boolean().optional(),
399
+ disabled: z.boolean().optional(),
400
+ transitioning: z.boolean().optional(),
401
+ name: z.string().optional(),
402
+ type: z.enum(["submit", "reset", "button"]).optional(),
403
+ value: z.unknown().optional(),
404
+ className: z.string().optional(),
405
+ id: z.string().optional(),
406
+ lang: z.string().optional(),
407
+ title: z.string().optional(),
408
+ onClick: z.unknown(), // Callback when switch is clicked
409
+ });
410
+
411
+ export const TablePropsSchema = z.object({
412
+ layout: z.enum(["auto", "fixed"]).optional(),
413
+ variant: z.enum(["default", "selected"]).optional(),
414
+ className: z.string().optional(), // Additional CSS classes
415
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
416
+ });
417
+
418
+ export const TabsPropsSchema = z.object({
419
+ tabs: z.array(z.unknown()).optional(), // Array of tab items to render
420
+ value: z.string().optional(), // Controlled value. When set, component becomes controlled.
421
+ selectedValue: z.string().optional(), // Default selected value for uncontrolled mode. Ignored when `value` is set.
422
+ 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. Set to true for better keyboard UX in most cases.
423
+ className: z.string().optional(), // Additional class name for the root element
424
+ listClassName: z.string().optional(), // Additional class name for the tab list element
425
+ indicatorClassName: z.string().optional(), // Additional class name for the indicator element
426
+ variant: z.enum(["segmented", "underline"]).optional(),
427
+ onValueChange: z.unknown().optional(), // Callback when active tab changes
428
+ });
429
+
430
+ export const TextPropsSchema = z.object({
431
+ variant: z.enum(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(), // Text style variant
432
+ size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Text size (only applies to body/secondary/success/error variants)
433
+ bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants)
434
+ as: z.unknown().optional(), // The element type to render as
435
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child text content
436
+ });
437
+
438
+ export const ToastyPropsSchema = z.object({
439
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
440
+ });
441
+
442
+ export const TooltipPropsSchema = z.object({
443
+ align: z.enum(["start", "center", "end"]).optional(),
444
+ asChild: z.boolean().optional(),
445
+ className: z.string().optional(),
446
+ side: z.enum(["top", "bottom", "left", "right"]).optional(),
447
+ content: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]), // Content to display in the tooltip
448
+ });
449
+
450
+ // =============================================================================
451
+ // Component Type Union
452
+ // =============================================================================
453
+
454
+ /**
455
+ * All valid component type names
456
+ */
457
+ export type KumoComponentType = "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Grid" | "Input" | "InputArea" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "Radio" | "Select" | "SensitiveInput" | "Surface" | "Switch" | "Table" | "Tabs" | "Text" | "Toasty" | "Tooltip";
458
+
459
+ export const KumoComponentTypeSchema = z.enum([
460
+ "Badge",
461
+ "Banner",
462
+ "Breadcrumbs",
463
+ "Button",
464
+ "Checkbox",
465
+ "ClipboardText",
466
+ "Code",
467
+ "Collapsible",
468
+ "Combobox",
469
+ "CommandPalette",
470
+ "DateRangePicker",
471
+ "Dialog",
472
+ "DropdownMenu",
473
+ "Empty",
474
+ "Field",
475
+ "Grid",
476
+ "Input",
477
+ "InputArea",
478
+ "Label",
479
+ "LayerCard",
480
+ "Link",
481
+ "Loader",
482
+ "MenuBar",
483
+ "Meter",
484
+ "Pagination",
485
+ "Popover",
486
+ "Radio",
487
+ "Select",
488
+ "SensitiveInput",
489
+ "Surface",
490
+ "Switch",
491
+ "Table",
492
+ "Tabs",
493
+ "Text",
494
+ "Toasty",
495
+ "Tooltip",
496
+ ]);
497
+
498
+ /**
499
+ * Map of component type to its props schema
500
+ */
501
+ export const ComponentPropsSchemas = {
502
+ Badge: BadgePropsSchema,
503
+ Banner: BannerPropsSchema,
504
+ Breadcrumbs: BreadcrumbsPropsSchema,
505
+ Button: ButtonPropsSchema,
506
+ Checkbox: CheckboxPropsSchema,
507
+ ClipboardText: ClipboardTextPropsSchema,
508
+ Code: CodePropsSchema,
509
+ Collapsible: CollapsiblePropsSchema,
510
+ Combobox: ComboboxPropsSchema,
511
+ CommandPalette: CommandPalettePropsSchema,
512
+ DateRangePicker: DateRangePickerPropsSchema,
513
+ Dialog: DialogPropsSchema,
514
+ DropdownMenu: DropdownMenuPropsSchema,
515
+ Empty: EmptyPropsSchema,
516
+ Field: FieldPropsSchema,
517
+ Grid: GridPropsSchema,
518
+ Input: InputPropsSchema,
519
+ InputArea: InputAreaPropsSchema,
520
+ Label: LabelPropsSchema,
521
+ LayerCard: LayerCardPropsSchema,
522
+ Link: LinkPropsSchema,
523
+ Loader: LoaderPropsSchema,
524
+ MenuBar: MenuBarPropsSchema,
525
+ Meter: MeterPropsSchema,
526
+ Pagination: PaginationPropsSchema,
527
+ Popover: PopoverPropsSchema,
528
+ Radio: RadioPropsSchema,
529
+ Select: SelectPropsSchema,
530
+ SensitiveInput: SensitiveInputPropsSchema,
531
+ Surface: SurfacePropsSchema,
532
+ Switch: SwitchPropsSchema,
533
+ Table: TablePropsSchema,
534
+ Tabs: TabsPropsSchema,
535
+ Text: TextPropsSchema,
536
+ Toasty: ToastyPropsSchema,
537
+ Tooltip: TooltipPropsSchema,
538
+ } as const;
539
+
540
+ // =============================================================================
541
+ // UI Element & Tree Schemas
542
+ // =============================================================================
543
+
544
+ /**
545
+ * Base UI element structure
546
+ */
547
+ export const UIElementBaseSchema = z.object({
548
+ key: z.string(),
549
+ type: KumoComponentTypeSchema,
550
+ props: z.record(z.string(), z.unknown()),
551
+ children: z.array(z.string()).optional(),
552
+ parentKey: z.string().nullable().optional(),
553
+ visible: VisibilityConditionSchema.optional(),
554
+ action: ActionSchema.optional(),
555
+ });
556
+
557
+ export type UIElement = z.infer<typeof UIElementBaseSchema>;
558
+
559
+ /**
560
+ * Flat UI tree structure (optimized for LLM generation)
561
+ */
562
+ export const UITreeSchema = z.object({
563
+ root: z.string(),
564
+ elements: z.record(z.string(), UIElementBaseSchema),
565
+ });
566
+
567
+ export type UITree = z.infer<typeof UITreeSchema>;
568
+
569
+ // =============================================================================
570
+ // Validation Helpers
571
+ // =============================================================================
572
+
573
+ /**
574
+ * Validate an element's props against its component schema
575
+ */
576
+ export function validateElementProps(element: UIElement): z.SafeParseReturnType<unknown, unknown> {
577
+ const schema = ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];
578
+ if (!schema) {
579
+ return { success: false, error: new z.ZodError([{ code: 'custom', message: `Unknown component type: ${element.type}`, path: ['type'] }]) };
580
+ }
581
+ return schema.safeParse(element.props);
582
+ }
583
+
584
+ /**
585
+ * Validate a complete UI tree
586
+ */
587
+ export function validateUITree(tree: unknown): z.SafeParseReturnType<unknown, UITree> {
588
+ return UITreeSchema.safeParse(tree);
589
+ }
590
+
591
+ /**
592
+ * List of all component names (for catalog generation)
593
+ */
594
+ export const KUMO_COMPONENT_NAMES = ["Badge", "Banner", "Breadcrumbs", "Button", "Checkbox", "ClipboardText", "Code", "Collapsible", "Combobox", "CommandPalette", "DateRangePicker", "Dialog", "DropdownMenu", "Empty", "Field", "Grid", "Input", "InputArea", "Label", "LayerCard", "Link", "Loader", "MenuBar", "Meter", "Pagination", "Popover", "Radio", "Select", "SensitiveInput", "Surface", "Switch", "Table", "Tabs", "Text", "Toasty", "Tooltip"] as const;
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import { c as t } from "./cn-Bhsu1vx2.js";
4
+ const i = "inline-flex w-fit flex-none shrink-0 items-center justify-self-start rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap", o = {
5
+ variant: {
6
+ primary: {
7
+ classes: "bg-kumo-contrast text-kumo-inverse",
8
+ description: "Default high-emphasis badge for important labels"
9
+ },
10
+ secondary: {
11
+ classes: "bg-kumo-fill text-kumo-default",
12
+ description: "Subtle badge for secondary information"
13
+ },
14
+ destructive: {
15
+ classes: "bg-kumo-danger text-white",
16
+ description: "Error or danger state indicator"
17
+ },
18
+ outline: {
19
+ classes: "border border-kumo-fill bg-transparent text-kumo-default",
20
+ description: "Bordered badge with transparent background"
21
+ },
22
+ beta: {
23
+ classes: "border border-dashed border-kumo-brand bg-transparent text-kumo-link",
24
+ description: "Indicates beta or experimental features"
25
+ }
26
+ }
27
+ }, r = {
28
+ variant: "primary"
29
+ };
30
+ function d({
31
+ variant: e = r.variant
32
+ } = {}) {
33
+ return t(
34
+ // Base styles (exported as KUMO_BADGE_BASE_STYLES for Figma plugin)
35
+ i,
36
+ // Apply variant styles from KUMO_BADGE_VARIANTS
37
+ o.variant[e].classes
38
+ );
39
+ }
40
+ function u({
41
+ variant: e = r.variant,
42
+ className: a,
43
+ children: s
44
+ }) {
45
+ return /* @__PURE__ */ n("span", { className: t(d({ variant: e }), a), children: s });
46
+ }
47
+ export {
48
+ u as B,
49
+ i as K
50
+ };
51
+ //# sourceMappingURL=badge-Dc99vsfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-Dc99vsfo.js","sources":["../src/components/badge/badge.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/**\n * Base styles applied to all badge variants.\n * Used by badgeVariants() and consumed by Figma plugin for component generation.\n */\nexport const KUMO_BADGE_BASE_STYLES =\n \"inline-flex w-fit flex-none shrink-0 items-center justify-self-start rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap\";\n\nexport const KUMO_BADGE_VARIANTS = {\n variant: {\n primary: {\n classes: \"bg-kumo-contrast text-kumo-inverse\",\n description: \"Default high-emphasis badge for important labels\",\n },\n secondary: {\n classes: \"bg-kumo-fill text-kumo-default\",\n description: \"Subtle badge for secondary information\",\n },\n destructive: {\n classes: \"bg-kumo-danger text-white\",\n description: \"Error or danger state indicator\",\n },\n outline: {\n classes: \"border border-kumo-fill bg-transparent text-kumo-default\",\n description: \"Bordered badge with transparent background\",\n },\n beta: {\n classes: \"border border-dashed border-kumo-brand bg-transparent text-kumo-link\",\n description: \"Indicates beta or experimental features\",\n },\n },\n} as const;\n\nexport const KUMO_BADGE_DEFAULT_VARIANTS = {\n variant: \"primary\",\n} as const;\n\n// Derived types from KUMO_BADGE_VARIANTS\nexport type KumoBadgeVariant = keyof typeof KUMO_BADGE_VARIANTS.variant;\n\nexport interface KumoBadgeVariantsProps {\n variant?: KumoBadgeVariant;\n}\n\nexport function badgeVariants({\n variant = KUMO_BADGE_DEFAULT_VARIANTS.variant,\n}: KumoBadgeVariantsProps = {}) {\n return cn(\n // Base styles (exported as KUMO_BADGE_BASE_STYLES for Figma plugin)\n KUMO_BADGE_BASE_STYLES,\n // Apply variant styles from KUMO_BADGE_VARIANTS\n KUMO_BADGE_VARIANTS.variant[variant].classes,\n );\n}\n\n// Legacy type alias for backwards compatibility\nexport type BadgeVariant = KumoBadgeVariant;\n\nexport interface BadgeProps {\n variant?: KumoBadgeVariant;\n className?: string;\n children: ReactNode;\n}\n\nexport function Badge({\n variant = KUMO_BADGE_DEFAULT_VARIANTS.variant,\n className,\n children,\n}: BadgeProps) {\n return (\n <span className={cn(badgeVariants({ variant }), className)}>\n {children}\n </span>\n );\n}\n"],"names":["KUMO_BADGE_BASE_STYLES","KUMO_BADGE_VARIANTS","KUMO_BADGE_DEFAULT_VARIANTS","badgeVariants","variant","cn","Badge","className","children","jsx"],"mappings":";;;AAOO,MAAMA,IACX,uIAEWC,IAAsB;AAAA,EACjC,SAAS;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,WAAW;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,aAAa;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GAEaC,IAA8B;AAAA,EACzC,SAAS;AACX;AASO,SAASC,EAAc;AAAA,EAC5B,SAAAC,IAAUF,EAA4B;AACxC,IAA4B,IAAI;AAC9B,SAAOG;AAAA;AAAA,IAELL;AAAA;AAAA,IAEAC,EAAoB,QAAQG,CAAO,EAAE;AAAA,EAAA;AAEzC;AAWO,SAASE,EAAM;AAAA,EACpB,SAAAF,IAAUF,EAA4B;AAAA,EACtC,WAAAK;AAAA,EACA,UAAAC;AACF,GAAe;AACb,SACE,gBAAAC,EAAC,QAAA,EAAK,WAAWJ,EAAGF,EAAc,EAAE,SAAAC,GAAS,GAAGG,CAAS,GACtD,UAAAC,EAAA,CACH;AAEJ;"}