@object-ui/components 0.3.0 → 0.5.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 (423) hide show
  1. package/.turbo/turbo-build.log +47 -0
  2. package/CHANGELOG.md +10 -0
  3. package/README.md +32 -1
  4. package/README_SHADCN_SYNC.md +281 -0
  5. package/TESTING.md +335 -0
  6. package/dist/index.css +1 -1
  7. package/dist/index.js +45067 -34357
  8. package/dist/index.umd.cjs +54 -42
  9. package/dist/src/SchemaRenderer.d.ts +3 -0
  10. package/dist/src/{ui → custom}/button-group.d.ts +1 -1
  11. package/dist/src/custom/combobox.d.ts +22 -0
  12. package/dist/src/custom/date-picker.d.ts +15 -0
  13. package/dist/src/custom/field.d.ts +19 -0
  14. package/dist/src/{ui → custom}/filter-builder.d.ts +7 -0
  15. package/dist/src/custom/index.d.ts +12 -0
  16. package/dist/src/custom/input-group.d.ts +14 -0
  17. package/dist/src/{ui → custom}/item.d.ts +8 -1
  18. package/dist/src/{ui → custom}/kbd.d.ts +7 -0
  19. package/dist/src/custom/native-select.d.ts +12 -0
  20. package/dist/src/custom/sort-builder.d.ts +22 -0
  21. package/dist/src/custom/spinner.d.ts +10 -0
  22. package/dist/src/hooks/use-mobile.d.ts +7 -0
  23. package/dist/src/index.d.ts +5 -1
  24. package/dist/src/renderers/basic/button-group.d.ts +8 -0
  25. package/dist/src/renderers/basic/div.d.ts +7 -0
  26. package/dist/src/renderers/basic/html.d.ts +7 -0
  27. package/dist/src/renderers/basic/icon.d.ts +7 -0
  28. package/dist/src/renderers/basic/image.d.ts +7 -0
  29. package/dist/src/renderers/basic/navigation-menu.d.ts +8 -0
  30. package/dist/src/renderers/basic/pagination.d.ts +8 -0
  31. package/dist/src/renderers/basic/separator.d.ts +7 -0
  32. package/dist/src/renderers/basic/span.d.ts +7 -0
  33. package/dist/src/renderers/basic/text.d.ts +7 -0
  34. package/dist/src/renderers/complex/carousel.d.ts +7 -0
  35. package/dist/src/renderers/complex/data-table.d.ts +7 -0
  36. package/dist/src/renderers/complex/filter-builder.d.ts +7 -0
  37. package/dist/src/renderers/complex/resizable.d.ts +7 -0
  38. package/dist/src/renderers/complex/scroll-area.d.ts +7 -0
  39. package/dist/src/renderers/complex/table.d.ts +7 -0
  40. package/dist/src/renderers/data-display/alert.d.ts +7 -0
  41. package/dist/src/renderers/data-display/avatar.d.ts +7 -0
  42. package/dist/src/renderers/data-display/badge.d.ts +7 -0
  43. package/dist/src/renderers/data-display/breadcrumb.d.ts +8 -0
  44. package/dist/src/renderers/data-display/kbd.d.ts +8 -0
  45. package/dist/src/renderers/data-display/list.d.ts +7 -0
  46. package/dist/src/renderers/data-display/statistic.d.ts +7 -0
  47. package/dist/src/renderers/data-display/table.d.ts +8 -0
  48. package/dist/src/renderers/data-display/tree-view.d.ts +7 -0
  49. package/dist/src/renderers/disclosure/accordion.d.ts +7 -0
  50. package/dist/src/renderers/disclosure/collapsible.d.ts +7 -0
  51. package/dist/src/renderers/disclosure/toggle-group.d.ts +8 -0
  52. package/dist/src/renderers/feedback/empty.d.ts +8 -0
  53. package/dist/src/renderers/feedback/loading.d.ts +7 -0
  54. package/dist/src/renderers/feedback/progress.d.ts +7 -0
  55. package/dist/src/renderers/feedback/skeleton.d.ts +7 -0
  56. package/dist/src/renderers/feedback/sonner.d.ts +8 -0
  57. package/dist/src/renderers/feedback/spinner.d.ts +8 -0
  58. package/dist/src/renderers/feedback/toast.d.ts +8 -0
  59. package/dist/src/renderers/feedback/toaster.d.ts +7 -0
  60. package/dist/src/renderers/form/button.d.ts +7 -0
  61. package/dist/src/renderers/form/calendar.d.ts +7 -0
  62. package/dist/src/renderers/form/checkbox.d.ts +7 -0
  63. package/dist/src/renderers/form/combobox.d.ts +8 -0
  64. package/dist/src/renderers/form/command.d.ts +8 -0
  65. package/dist/src/renderers/form/date-picker.d.ts +7 -0
  66. package/dist/src/renderers/form/file-upload.d.ts +7 -0
  67. package/dist/src/renderers/form/form.d.ts +7 -0
  68. package/dist/src/renderers/form/input-otp.d.ts +7 -0
  69. package/dist/src/renderers/form/input.d.ts +7 -0
  70. package/dist/src/renderers/form/label.d.ts +7 -0
  71. package/dist/src/renderers/form/radio-group.d.ts +7 -0
  72. package/dist/src/renderers/form/select.d.ts +7 -0
  73. package/dist/src/renderers/form/slider.d.ts +7 -0
  74. package/dist/src/renderers/form/switch.d.ts +7 -0
  75. package/dist/src/renderers/form/textarea.d.ts +7 -0
  76. package/dist/src/renderers/form/toggle.d.ts +7 -0
  77. package/dist/src/renderers/layout/aspect-ratio.d.ts +8 -0
  78. package/dist/src/renderers/layout/card.d.ts +7 -0
  79. package/dist/src/renderers/layout/container.d.ts +7 -0
  80. package/dist/src/renderers/layout/flex.d.ts +7 -0
  81. package/dist/src/renderers/layout/grid.d.ts +7 -0
  82. package/dist/src/renderers/layout/page.d.ts +1 -1
  83. package/dist/src/renderers/layout/semantic.d.ts +7 -0
  84. package/dist/src/renderers/layout/stack.d.ts +7 -0
  85. package/dist/src/renderers/layout/tabs.d.ts +7 -0
  86. package/dist/src/renderers/navigation/header-bar.d.ts +7 -0
  87. package/dist/src/renderers/navigation/sidebar.d.ts +7 -0
  88. package/dist/src/renderers/overlay/alert-dialog.d.ts +7 -0
  89. package/dist/src/renderers/overlay/context-menu.d.ts +7 -0
  90. package/dist/src/renderers/overlay/dialog.d.ts +7 -0
  91. package/dist/src/renderers/overlay/drawer.d.ts +7 -0
  92. package/dist/src/renderers/overlay/dropdown-menu.d.ts +7 -0
  93. package/dist/src/renderers/overlay/hover-card.d.ts +7 -0
  94. package/dist/src/renderers/overlay/menubar.d.ts +8 -0
  95. package/dist/src/renderers/overlay/popover.d.ts +7 -0
  96. package/dist/src/renderers/overlay/sheet.d.ts +7 -0
  97. package/dist/src/renderers/overlay/tooltip.d.ts +7 -0
  98. package/dist/src/renderers/placeholders.d.ts +9 -0
  99. package/dist/src/ui/accordion.d.ts +11 -4
  100. package/dist/src/ui/alert-dialog.d.ts +24 -11
  101. package/dist/src/ui/alert.d.ts +11 -5
  102. package/dist/src/ui/aspect-ratio.d.ts +8 -1
  103. package/dist/src/ui/avatar.d.ts +10 -3
  104. package/dist/src/ui/badge.d.ts +10 -3
  105. package/dist/src/ui/breadcrumb.d.ts +23 -8
  106. package/dist/src/ui/button.d.ts +10 -5
  107. package/dist/src/ui/calendar.d.ts +8 -1
  108. package/dist/src/ui/card.d.ts +14 -8
  109. package/dist/src/ui/carousel.d.ts +12 -6
  110. package/dist/src/ui/chart.d.ts +62 -0
  111. package/dist/src/ui/checkbox.d.ts +8 -1
  112. package/dist/src/ui/collapsible.d.ts +10 -3
  113. package/dist/src/ui/command.d.ts +85 -16
  114. package/dist/src/ui/context-menu.d.ts +21 -12
  115. package/dist/src/ui/dialog.d.ts +24 -13
  116. package/dist/src/ui/drawer.d.ts +26 -10
  117. package/dist/src/ui/dropdown-menu.d.ts +27 -18
  118. package/dist/src/ui/form.d.ts +13 -7
  119. package/dist/src/ui/hover-card.d.ts +10 -3
  120. package/dist/src/ui/index.d.ts +10 -11
  121. package/dist/src/ui/input-otp.d.ts +37 -7
  122. package/dist/src/ui/input.d.ts +7 -0
  123. package/dist/src/ui/label.d.ts +9 -1
  124. package/dist/src/ui/menubar.d.ts +26 -17
  125. package/dist/src/ui/navigation-menu.d.ts +16 -11
  126. package/dist/src/ui/pagination.d.ts +32 -10
  127. package/dist/src/ui/popover.d.ts +11 -5
  128. package/dist/src/ui/progress.d.ts +8 -1
  129. package/dist/src/ui/radio-group.d.ts +9 -2
  130. package/dist/src/ui/resizable.d.ts +12 -8
  131. package/dist/src/ui/scroll-area.d.ts +9 -2
  132. package/dist/src/ui/select.d.ts +18 -13
  133. package/dist/src/ui/separator.d.ts +7 -0
  134. package/dist/src/ui/sheet.d.ts +30 -11
  135. package/dist/src/ui/sidebar.d.ts +41 -38
  136. package/dist/src/ui/skeleton.d.ts +8 -1
  137. package/dist/src/ui/slider.d.ts +8 -1
  138. package/dist/src/ui/sonner.d.ts +2 -1
  139. package/dist/src/ui/switch.d.ts +9 -2
  140. package/dist/src/ui/table.d.ts +15 -8
  141. package/dist/src/ui/tabs.d.ts +8 -1
  142. package/dist/src/ui/textarea.d.ts +8 -1
  143. package/dist/src/ui/toast.d.ts +22 -0
  144. package/dist/src/ui/toggle-group.d.ts +15 -5
  145. package/dist/src/ui/toggle.d.ts +11 -1
  146. package/dist/src/ui/tooltip.d.ts +11 -4
  147. package/dist/src/ui/typography.d.ts +21 -0
  148. package/metadata/ObjectGrid.component.yml +72 -0
  149. package/package.json +35 -13
  150. package/postcss.config.js +9 -1
  151. package/shadcn-components.json +315 -0
  152. package/src/SchemaRenderer.tsx +28 -0
  153. package/src/__tests__/PageRendererRegions.test.tsx +59 -0
  154. package/src/__tests__/README.md +124 -0
  155. package/src/__tests__/Registry.test.ts +21 -0
  156. package/src/__tests__/basic-renderers.test.tsx +255 -0
  157. package/src/__tests__/complex-disclosure-renderers.test.tsx +302 -0
  158. package/src/__tests__/feedback-overlay-renderers.test.tsx +349 -0
  159. package/src/__tests__/form-renderers.test.tsx +364 -0
  160. package/src/__tests__/layout-data-renderers.test.tsx +340 -0
  161. package/src/__tests__/test-utils.tsx +190 -0
  162. package/src/{ui → custom}/button-group.tsx +9 -1
  163. package/src/custom/combobox.tsx +104 -0
  164. package/src/custom/date-picker.tsx +61 -0
  165. package/src/{ui → custom}/empty.tsx +8 -0
  166. package/src/custom/field.tsx +81 -0
  167. package/src/{ui → custom}/filter-builder.tsx +11 -3
  168. package/src/custom/index.ts +12 -0
  169. package/src/custom/input-group.tsx +53 -0
  170. package/src/{ui → custom}/item.tsx +9 -1
  171. package/src/{ui → custom}/kbd.tsx +8 -0
  172. package/src/custom/native-select.tsx +33 -0
  173. package/src/custom/sort-builder.tsx +129 -0
  174. package/src/custom/spinner.tsx +26 -0
  175. package/src/hooks/use-mobile.tsx +8 -0
  176. package/src/index.css +105 -54
  177. package/src/index.test.ts +8 -0
  178. package/src/index.ts +22 -1
  179. package/src/lib/utils.tsx +8 -0
  180. package/src/new-components.test.ts +8 -9
  181. package/src/renderers/basic/button-group.tsx +79 -0
  182. package/src/renderers/basic/div.tsx +21 -2
  183. package/src/renderers/basic/html.tsx +9 -0
  184. package/src/renderers/basic/icon.tsx +67 -3
  185. package/src/renderers/basic/image.tsx +13 -1
  186. package/src/renderers/basic/index.ts +11 -0
  187. package/src/renderers/basic/navigation-menu.tsx +81 -0
  188. package/src/renderers/basic/pagination.tsx +109 -0
  189. package/src/renderers/basic/separator.tsx +10 -1
  190. package/src/renderers/basic/span.tsx +21 -2
  191. package/src/renderers/basic/text.tsx +12 -2
  192. package/src/renderers/complex/__tests__/data-table.test.ts +8 -0
  193. package/src/renderers/complex/carousel.tsx +12 -3
  194. package/src/renderers/complex/data-table.tsx +150 -96
  195. package/src/renderers/complex/filter-builder.tsx +10 -1
  196. package/src/renderers/complex/index.ts +9 -3
  197. package/src/renderers/complex/resizable.tsx +10 -1
  198. package/src/renderers/complex/scroll-area.tsx +33 -7
  199. package/src/renderers/complex/table.tsx +11 -2
  200. package/src/renderers/data-display/alert.tsx +9 -0
  201. package/src/renderers/data-display/avatar.tsx +9 -0
  202. package/src/renderers/data-display/badge.tsx +9 -0
  203. package/src/renderers/data-display/breadcrumb.tsx +60 -0
  204. package/src/renderers/data-display/index.ts +12 -0
  205. package/src/renderers/data-display/kbd.tsx +50 -0
  206. package/src/renderers/data-display/list.tsx +29 -49
  207. package/src/renderers/data-display/statistic.tsx +45 -48
  208. package/src/renderers/data-display/table.tsx +78 -0
  209. package/src/renderers/data-display/tree-view.tsx +32 -37
  210. package/src/renderers/disclosure/accordion.tsx +9 -0
  211. package/src/renderers/disclosure/collapsible.tsx +9 -0
  212. package/src/renderers/disclosure/index.ts +9 -0
  213. package/src/renderers/disclosure/toggle-group.tsx +79 -0
  214. package/src/renderers/feedback/empty.tsx +49 -0
  215. package/src/renderers/feedback/index.ts +12 -0
  216. package/src/renderers/feedback/loading.tsx +10 -1
  217. package/src/renderers/feedback/progress.tsx +9 -0
  218. package/src/renderers/feedback/skeleton.tsx +9 -0
  219. package/src/renderers/feedback/sonner.tsx +56 -0
  220. package/src/renderers/feedback/spinner.tsx +55 -0
  221. package/src/renderers/feedback/toast.tsx +59 -0
  222. package/src/renderers/feedback/toaster.tsx +14 -17
  223. package/src/renderers/form/button.tsx +43 -1
  224. package/src/renderers/form/calendar.tsx +9 -0
  225. package/src/renderers/form/checkbox.tsx +46 -16
  226. package/src/renderers/form/combobox.tsx +48 -0
  227. package/src/renderers/form/command.tsx +58 -0
  228. package/src/renderers/form/date-picker.tsx +11 -2
  229. package/src/renderers/form/file-upload.tsx +11 -2
  230. package/src/renderers/form/form.tsx +104 -18
  231. package/src/renderers/form/index.ts +10 -0
  232. package/src/renderers/form/input-otp.tsx +35 -15
  233. package/src/renderers/form/input.tsx +92 -50
  234. package/src/renderers/form/label.tsx +9 -0
  235. package/src/renderers/form/radio-group.tsx +9 -0
  236. package/src/renderers/form/select.tsx +43 -15
  237. package/src/renderers/form/slider.tsx +17 -1
  238. package/src/renderers/form/switch.tsx +9 -0
  239. package/src/renderers/form/textarea.tsx +58 -27
  240. package/src/renderers/form/toggle.tsx +11 -45
  241. package/src/renderers/index.ts +8 -0
  242. package/src/renderers/layout/aspect-ratio.tsx +51 -0
  243. package/src/renderers/layout/card.tsx +18 -2
  244. package/src/renderers/layout/container.tsx +21 -12
  245. package/src/renderers/layout/flex.tsx +17 -8
  246. package/src/renderers/layout/grid.tsx +31 -8
  247. package/src/renderers/layout/index.ts +9 -0
  248. package/src/renderers/layout/page.tsx +44 -24
  249. package/src/renderers/layout/semantic.tsx +9 -0
  250. package/src/renderers/layout/stack.tsx +18 -9
  251. package/src/renderers/layout/tabs.tsx +51 -17
  252. package/src/renderers/navigation/header-bar.tsx +10 -1
  253. package/src/renderers/navigation/index.ts +8 -0
  254. package/src/renderers/navigation/sidebar.tsx +13 -0
  255. package/src/renderers/overlay/alert-dialog.tsx +9 -0
  256. package/src/renderers/overlay/context-menu.tsx +10 -1
  257. package/src/renderers/overlay/dialog.tsx +9 -0
  258. package/src/renderers/overlay/drawer.tsx +9 -0
  259. package/src/renderers/overlay/dropdown-menu.tsx +9 -0
  260. package/src/renderers/overlay/hover-card.tsx +9 -0
  261. package/src/renderers/overlay/index.ts +9 -0
  262. package/src/renderers/overlay/menubar.tsx +76 -0
  263. package/src/renderers/overlay/popover.tsx +9 -0
  264. package/src/renderers/overlay/sheet.tsx +9 -0
  265. package/src/renderers/overlay/tooltip.tsx +9 -0
  266. package/src/renderers/placeholders.tsx +107 -0
  267. package/src/stories/CRMApp.stories.tsx +706 -0
  268. package/src/stories/Guide.mdx +55 -0
  269. package/src/stories/Introduction.mdx +34 -0
  270. package/src/stories/MockedData.stories.tsx +71 -0
  271. package/src/stories/assets/accessibility.png +0 -0
  272. package/src/stories/assets/accessibility.svg +1 -0
  273. package/src/stories/assets/addon-library.png +0 -0
  274. package/src/stories/assets/assets.png +0 -0
  275. package/src/stories/assets/avif-test-image.avif +0 -0
  276. package/src/stories/assets/context.png +0 -0
  277. package/src/stories/assets/discord.svg +1 -0
  278. package/src/stories/assets/docs.png +0 -0
  279. package/src/stories/assets/figma-plugin.png +0 -0
  280. package/src/stories/assets/github.svg +1 -0
  281. package/src/stories/assets/share.png +0 -0
  282. package/src/stories/assets/styling.png +0 -0
  283. package/src/stories/assets/testing.png +0 -0
  284. package/src/stories/assets/theming.png +0 -0
  285. package/src/stories/assets/tutorials.svg +1 -0
  286. package/src/stories/assets/youtube.svg +1 -0
  287. package/src/stories/button.css +30 -0
  288. package/src/stories/header.css +32 -0
  289. package/src/stories/page.css +68 -0
  290. package/src/stories-json/accordion.stories.tsx +43 -0
  291. package/src/stories-json/aggrid.stories.tsx +103 -0
  292. package/src/stories-json/alert.stories.tsx +39 -0
  293. package/src/stories-json/aspect-ratio.stories.tsx +34 -0
  294. package/src/stories-json/avatar.stories.tsx +38 -0
  295. package/src/stories-json/badge.stories.tsx +53 -0
  296. package/src/stories-json/breadcrumb.stories.tsx +30 -0
  297. package/src/stories-json/button-group.stories.tsx +43 -0
  298. package/src/stories-json/button.stories.tsx +73 -0
  299. package/src/stories-json/calendar.stories.tsx +85 -0
  300. package/src/stories-json/card.stories.tsx +48 -0
  301. package/src/stories-json/carousel.stories.tsx +33 -0
  302. package/src/stories-json/charts.stories.tsx +195 -0
  303. package/src/stories-json/chatbot.stories.tsx +248 -0
  304. package/src/stories-json/code-editor.stories.tsx +92 -0
  305. package/src/stories-json/collapsible.stories.tsx +40 -0
  306. package/src/stories-json/controls.stories.tsx +36 -0
  307. package/src/stories-json/dashboard.stories.tsx +318 -0
  308. package/src/stories-json/data-table.stories.tsx +60 -0
  309. package/src/stories-json/data_display_extras.stories.tsx +102 -0
  310. package/src/stories-json/date-picker.stories.tsx +28 -0
  311. package/src/stories-json/detail-view.stories.tsx +258 -0
  312. package/src/stories-json/dialog.stories.tsx +43 -0
  313. package/src/stories-json/feedback_extras.stories.tsx +40 -0
  314. package/src/stories-json/feedback_others.stories.tsx +46 -0
  315. package/src/stories-json/form_advanced.stories.tsx +117 -0
  316. package/src/stories-json/form_extras.stories.tsx +123 -0
  317. package/src/stories-json/grid.stories.tsx +56 -0
  318. package/src/stories-json/icon.stories.tsx +36 -0
  319. package/src/stories-json/input.stories.tsx +52 -0
  320. package/src/stories-json/kanban.stories.tsx +295 -0
  321. package/src/stories-json/layout_extended.stories.tsx +76 -0
  322. package/src/stories-json/layout_flex.stories.tsx +107 -0
  323. package/src/stories-json/list-view.stories.tsx +97 -0
  324. package/src/stories-json/markdown.stories.tsx +129 -0
  325. package/src/stories-json/menus.stories.tsx +63 -0
  326. package/src/stories-json/metric-card.stories.tsx +143 -0
  327. package/src/stories-json/navigation-menu.stories.tsx +37 -0
  328. package/src/stories-json/object-aggrid.stories.tsx +252 -0
  329. package/src/stories-json/object-form.stories.tsx +130 -0
  330. package/src/stories-json/object-gantt.stories.tsx +114 -0
  331. package/src/stories-json/object-grid.stories.tsx +157 -0
  332. package/src/stories-json/object-map.stories.tsx +116 -0
  333. package/src/stories-json/object-view.stories.tsx +118 -0
  334. package/src/stories-json/overlay_extras.stories.tsx +113 -0
  335. package/src/stories-json/overlay_others.stories.tsx +76 -0
  336. package/src/stories-json/page.stories.tsx +55 -0
  337. package/src/stories-json/reports.stories.tsx +163 -0
  338. package/src/stories-json/resizable.stories.tsx +44 -0
  339. package/src/stories-json/select.stories.tsx +34 -0
  340. package/src/stories-json/separator.stories.tsx +41 -0
  341. package/src/stories-json/sidebar.stories.tsx +147 -0
  342. package/src/stories-json/statistic.stories.tsx +44 -0
  343. package/src/stories-json/tabs.stories.tsx +51 -0
  344. package/src/stories-json/timeline.stories.tsx +188 -0
  345. package/src/stories-json/typography.stories.tsx +45 -0
  346. package/src/ui/accordion.tsx +55 -53
  347. package/src/ui/alert-dialog.tsx +111 -117
  348. package/src/ui/alert.tsx +46 -57
  349. package/src/ui/aspect-ratio.tsx +9 -5
  350. package/src/ui/avatar.tsx +49 -42
  351. package/src/ui/badge.tsx +18 -20
  352. package/src/ui/breadcrumb.tsx +89 -75
  353. package/src/ui/button.tsx +38 -37
  354. package/src/ui/calendar.tsx +37 -53
  355. package/src/ui/card.tsx +59 -110
  356. package/src/ui/carousel.tsx +144 -113
  357. package/src/ui/chart.tsx +367 -0
  358. package/src/ui/checkbox.tsx +28 -22
  359. package/src/ui/collapsible.tsx +13 -25
  360. package/src/ui/command.tsx +114 -135
  361. package/src/ui/context-menu.tsx +77 -116
  362. package/src/ui/dialog.tsx +102 -113
  363. package/src/ui/drawer.tsx +90 -99
  364. package/src/ui/dropdown-menu.tsx +142 -188
  365. package/src/ui/form.tsx +59 -40
  366. package/src/ui/hover-card.tsx +26 -33
  367. package/src/ui/index.ts +11 -11
  368. package/src/ui/input-otp.tsx +53 -55
  369. package/src/ui/input.tsx +21 -15
  370. package/src/ui/label.tsx +25 -15
  371. package/src/ui/menubar.tsx +196 -206
  372. package/src/ui/navigation-menu.tsx +104 -136
  373. package/src/ui/pagination.tsx +94 -96
  374. package/src/ui/popover.tsx +29 -38
  375. package/src/ui/progress.tsx +29 -34
  376. package/src/ui/radio-group.tsx +27 -20
  377. package/src/ui/resizable.tsx +40 -42
  378. package/src/ui/scroll-area.tsx +46 -48
  379. package/src/ui/select.tsx +140 -160
  380. package/src/ui/separator.tsx +10 -2
  381. package/src/ui/sheet.tsx +118 -107
  382. package/src/ui/sidebar.tsx +471 -418
  383. package/src/ui/skeleton.tsx +14 -11
  384. package/src/ui/slider.tsx +27 -54
  385. package/src/ui/sonner.tsx +29 -19
  386. package/src/ui/switch.tsx +27 -21
  387. package/src/ui/table.tsx +102 -97
  388. package/src/ui/tabs.tsx +14 -37
  389. package/src/ui/textarea.tsx +16 -4
  390. package/src/ui/toast.tsx +137 -0
  391. package/src/ui/toggle-group.tsx +37 -55
  392. package/src/ui/toggle.tsx +30 -27
  393. package/src/ui/tooltip.tsx +29 -52
  394. package/src/ui/typography.tsx +85 -0
  395. package/tsconfig.json +2 -1
  396. package/vite.config.ts +20 -2
  397. package/vitest.config.ts +5 -0
  398. package/dist/src/index.test.d.ts +0 -1
  399. package/dist/src/new-components.test.d.ts +0 -1
  400. package/dist/src/renderers/complex/__tests__/data-table.test.d.ts +0 -0
  401. package/dist/src/renderers/complex/calendar-view.d.ts +0 -1
  402. package/dist/src/renderers/complex/chatbot.d.ts +0 -1
  403. package/dist/src/renderers/complex/chatbot.test.d.ts +0 -1
  404. package/dist/src/renderers/complex/timeline.d.ts +0 -1
  405. package/dist/src/ui/calendar-view.d.ts +0 -21
  406. package/dist/src/ui/chatbot.d.ts +0 -36
  407. package/dist/src/ui/field.d.ts +0 -24
  408. package/dist/src/ui/input-group.d.ts +0 -16
  409. package/dist/src/ui/spinner.d.ts +0 -3
  410. package/dist/src/ui/timeline.d.ts +0 -25
  411. package/metadata/ObjectTable.component.yml +0 -41
  412. package/src/renderers/complex/calendar-view.tsx +0 -219
  413. package/src/renderers/complex/chatbot.test.ts +0 -44
  414. package/src/renderers/complex/chatbot.tsx +0 -185
  415. package/src/renderers/complex/timeline.tsx +0 -466
  416. package/src/ui/calendar-view.tsx +0 -503
  417. package/src/ui/chatbot.tsx +0 -240
  418. package/src/ui/field.tsx +0 -246
  419. package/src/ui/input-group.tsx +0 -170
  420. package/src/ui/spinner.tsx +0 -38
  421. package/src/ui/timeline.tsx +0 -266
  422. package/tailwind.config.js +0 -75
  423. /package/dist/src/{ui → custom}/empty.d.ts +0 -0
@@ -1,9 +1,19 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
- import { toggleVariants } from './toggle';
2
+ /**
3
+ * ObjectUI
4
+ * Copyright (c) 2024-present ObjectStack Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
3
9
  import * as React from "react";
4
10
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5
- declare function ToggleGroup({ className, variant, size, spacing, children, ...props }: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants> & {
6
- spacing?: number;
7
- }): import("react/jsx-runtime").JSX.Element;
8
- declare function ToggleGroupItem({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
11
+ declare const ToggleGroup: React.ForwardRefExoticComponent<((Omit<ToggleGroupPrimitive.ToggleGroupSingleProps & React.RefAttributes<HTMLDivElement>, "ref"> | Omit<ToggleGroupPrimitive.ToggleGroupMultipleProps & React.RefAttributes<HTMLDivElement>, "ref">) & VariantProps<(props?: ({
12
+ variant?: "default" | "outline" | null | undefined;
13
+ size?: "default" | "sm" | "lg" | null | undefined;
14
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string>) & React.RefAttributes<HTMLDivElement>>;
15
+ declare const ToggleGroupItem: React.ForwardRefExoticComponent<Omit<ToggleGroupPrimitive.ToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
16
+ variant?: "default" | "outline" | null | undefined;
17
+ size?: "default" | "sm" | "lg" | null | undefined;
18
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLButtonElement>>;
9
19
  export { ToggleGroup, ToggleGroupItem };
@@ -1,9 +1,19 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * ObjectUI
4
+ * Copyright (c) 2024-present ObjectStack Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
2
9
  import * as React from "react";
3
10
  import * as TogglePrimitive from "@radix-ui/react-toggle";
4
11
  declare const toggleVariants: (props?: ({
5
12
  variant?: "default" | "outline" | null | undefined;
6
13
  size?: "default" | "sm" | "lg" | null | undefined;
7
14
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
- declare function Toggle({ className, variant, size, ...props }: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
15
+ declare const Toggle: React.ForwardRefExoticComponent<Omit<TogglePrimitive.ToggleProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
16
+ variant?: "default" | "outline" | null | undefined;
17
+ size?: "default" | "sm" | "lg" | null | undefined;
18
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLButtonElement>>;
9
19
  export { Toggle, toggleVariants };
@@ -1,7 +1,14 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
1
8
  import * as React from "react";
2
9
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
- declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): import("react/jsx-runtime").JSX.Element;
4
- declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
5
- declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
- declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
10
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
11
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
12
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
13
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
14
  export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import * as React from "react";
9
+ declare const TypographyH1: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
10
+ declare const TypographyH2: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
11
+ declare const TypographyH3: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
12
+ declare const TypographyH4: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
13
+ declare const TypographyP: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
14
+ declare const TypographyBlockquote: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLQuoteElement> & React.RefAttributes<HTMLQuoteElement>>;
15
+ declare const TypographyList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>;
16
+ declare const TypographyInlineCode: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
17
+ declare const TypographyLead: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
18
+ declare const TypographyLarge: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
19
+ declare const TypographySmall: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
20
+ declare const TypographyMuted: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
21
+ export { TypographyH1, TypographyH2, TypographyH3, TypographyH4, TypographyP, TypographyBlockquote, TypographyList, TypographyInlineCode, TypographyLead, TypographyLarge, TypographySmall, TypographyMuted, };
@@ -0,0 +1,72 @@
1
+ name: ObjectGrid
2
+ label: Object Grid
3
+ description: Production-grade data grid for displaying and managing object records with advanced features
4
+ category: data_display
5
+ version: 1.0.0
6
+ framework: react
7
+
8
+ props:
9
+ - name: objectName
10
+ type: string
11
+ required: true
12
+ description: The object API name to display data for
13
+ - name: columns
14
+ type: array
15
+ description: Column configurations with enhanced properties
16
+ schema:
17
+ - field: string
18
+ - label: string
19
+ - width: number
20
+ - align: string
21
+ - sortable: boolean
22
+ - name: data
23
+ type: object
24
+ description: Data source configuration (object/api/value providers)
25
+ - name: selection
26
+ type: object
27
+ description: Row selection configuration
28
+ schema:
29
+ type: string # none, single, multiple
30
+ - name: pagination
31
+ type: object
32
+ description: Pagination configuration
33
+ schema:
34
+ pageSize: number
35
+ pageSizeOptions: array
36
+ - name: searchableFields
37
+ type: array
38
+ description: Fields enabled for search
39
+ - name: sort
40
+ type: array
41
+ description: Sort configuration
42
+ - name: filter
43
+ type: array
44
+ description: Filter criteria
45
+ - name: striped
46
+ type: boolean
47
+ default: false
48
+ description: Alternating row colors
49
+ - name: bordered
50
+ type: boolean
51
+ default: false
52
+ description: Show cell borders
53
+ - name: resizable
54
+ type: boolean
55
+ default: true
56
+ description: Enable column resizing
57
+
58
+ events:
59
+ - name: onRowClick
60
+ payload: "{ row: any, index: number }"
61
+ - name: onSelectionChange
62
+ payload: "{ selectedRows: any[] }"
63
+ - name: onEdit
64
+ payload: "{ record: any }"
65
+ - name: onDelete
66
+ payload: "{ record: any }"
67
+
68
+ features:
69
+ remote_data: true
70
+ virtual_scroll: true
71
+ inline_edit: true
72
+ view_zod_aligned: true
package/package.json CHANGED
@@ -1,18 +1,29 @@
1
1
  {
2
2
  "name": "@object-ui/components",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
+ "description": "Standard UI component library for Object UI, built with Shadcn UI + Tailwind CSS",
7
+ "homepage": "https://www.objectui.org",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/objectstack-ai/objectui.git",
11
+ "directory": "packages/components"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/objectstack-ai/objectui/issues"
15
+ },
6
16
  "main": "dist/index.umd.cjs",
7
17
  "module": "dist/index.js",
8
18
  "types": "dist/index.d.ts",
19
+ "sideEffects": true,
9
20
  "exports": {
10
21
  ".": {
11
22
  "types": "./dist/index.d.ts",
12
23
  "import": "./dist/index.js",
13
24
  "require": "./dist/index.umd.cjs"
14
25
  },
15
- "./dist/style.css": "./dist/style.css"
26
+ "./style.css": "./dist/index.css"
16
27
  },
17
28
  "dependencies": {
18
29
  "@radix-ui/react-accordion": "^1.2.12",
@@ -48,38 +59,49 @@
48
59
  "date-fns": "^4.1.0",
49
60
  "embla-carousel-react": "^8.6.0",
50
61
  "input-otp": "^1.4.2",
51
- "lucide-react": "^0.469.0",
62
+ "lucide-react": "^0.563.0",
52
63
  "next-themes": "^0.4.6",
53
64
  "react-day-picker": "^9.13.0",
54
65
  "react-hook-form": "^7.71.1",
55
- "react-resizable-panels": "^4.4.1",
66
+ "react-resizable-panels": "^4.5.2",
67
+ "recharts": "2.15.4",
56
68
  "sonner": "^2.0.7",
57
69
  "tailwind-merge": "^3.4.0",
58
70
  "tailwindcss-animate": "^1.0.7",
59
71
  "vaul": "^1.1.2",
60
- "@object-ui/core": "0.3.0",
61
- "@object-ui/react": "0.3.0",
62
- "@object-ui/types": "0.3.0"
72
+ "@object-ui/core": "0.5.0",
73
+ "@object-ui/react": "0.5.0",
74
+ "@object-ui/types": "0.5.0"
63
75
  },
64
76
  "peerDependencies": {
65
77
  "react": "^18.0.0 || ^19.0.0",
66
78
  "react-dom": "^18.0.0 || ^19.0.0",
67
- "tailwindcss": "^3.0.0"
79
+ "tailwindcss": "^4.1.18"
68
80
  },
69
81
  "devDependencies": {
70
- "@types/react": "^18.3.12",
71
- "@types/react-dom": "^18.3.1",
72
- "@vitejs/plugin-react": "^4.2.1",
82
+ "@storybook/addon-essentials": "^8.6.0",
83
+ "@storybook/addon-interactions": "^8.6.0",
84
+ "@storybook/addon-links": "^8.6.0",
85
+ "@storybook/blocks": "^8.6.0",
86
+ "@storybook/react": "^8.6.0",
87
+ "@storybook/react-vite": "^8.6.0",
88
+ "@tailwindcss/postcss": "^4.1.18",
89
+ "@types/react": "^19.2.10",
90
+ "@types/react-dom": "^19.2.3",
91
+ "@vitejs/plugin-react": "^5.1.3",
73
92
  "autoprefixer": "^10.4.16",
74
93
  "postcss": "^8.4.31",
75
- "tailwindcss": "^3.3.5",
94
+ "shadcn": "^3.7.0",
95
+ "storybook": "^8.6.0",
96
+ "tailwindcss": "^4.1.18",
76
97
  "typescript": "^5.9.3",
77
98
  "vite": "^7.3.1",
78
99
  "vite-plugin-dts": "^4.5.4"
79
100
  },
80
101
  "scripts": {
81
102
  "build": "vite build",
82
- "pretest": "pnpm --filter @object-ui/core build && pnpm --filter @object-ui/react build",
103
+ "prebuild": "pnpm --filter @object-ui/types build && pnpm --filter @object-ui/core build && pnpm --filter @object-ui/react build",
104
+ "pretest": "pnpm run prebuild",
83
105
  "test": "vitest run",
84
106
  "type-check": "tsc --noEmit",
85
107
  "lint": "eslint ."
package/postcss.config.js CHANGED
@@ -1,6 +1,14 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
1
9
  export default {
2
10
  plugins: {
3
- tailwindcss: {},
11
+ '@tailwindcss/postcss': {},
4
12
  autoprefixer: {},
5
13
  },
6
14
  }
@@ -0,0 +1,315 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "src/index.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true
11
+ },
12
+ "aliases": {
13
+ "components": "@/ui",
14
+ "utils": "@/lib/utils"
15
+ },
16
+ "registry": "https://ui.shadcn.com",
17
+ "components": {
18
+ "accordion": {
19
+ "source": "https://ui.shadcn.com/r/styles/default/accordion.json",
20
+ "dependencies": ["@radix-ui/react-accordion"],
21
+ "registryDependencies": []
22
+ },
23
+ "alert": {
24
+ "source": "https://ui.shadcn.com/r/styles/default/alert.json",
25
+ "dependencies": [],
26
+ "registryDependencies": []
27
+ },
28
+ "alert-dialog": {
29
+ "source": "https://ui.shadcn.com/r/styles/default/alert-dialog.json",
30
+ "dependencies": ["@radix-ui/react-alert-dialog"],
31
+ "registryDependencies": ["button"]
32
+ },
33
+ "aspect-ratio": {
34
+ "source": "https://ui.shadcn.com/r/styles/default/aspect-ratio.json",
35
+ "dependencies": ["@radix-ui/react-aspect-ratio"],
36
+ "registryDependencies": []
37
+ },
38
+ "avatar": {
39
+ "source": "https://ui.shadcn.com/r/styles/default/avatar.json",
40
+ "dependencies": ["@radix-ui/react-avatar"],
41
+ "registryDependencies": []
42
+ },
43
+ "badge": {
44
+ "source": "https://ui.shadcn.com/r/styles/default/badge.json",
45
+ "dependencies": [],
46
+ "registryDependencies": []
47
+ },
48
+ "breadcrumb": {
49
+ "source": "https://ui.shadcn.com/r/styles/default/breadcrumb.json",
50
+ "dependencies": [],
51
+ "registryDependencies": []
52
+ },
53
+ "button": {
54
+ "source": "https://ui.shadcn.com/r/styles/default/button.json",
55
+ "dependencies": ["@radix-ui/react-slot"],
56
+ "registryDependencies": []
57
+ },
58
+ "calendar": {
59
+ "source": "https://ui.shadcn.com/r/styles/default/calendar.json",
60
+ "dependencies": ["react-day-picker", "date-fns"],
61
+ "registryDependencies": ["button"]
62
+ },
63
+ "card": {
64
+ "source": "https://ui.shadcn.com/r/styles/default/card.json",
65
+ "dependencies": [],
66
+ "registryDependencies": []
67
+ },
68
+ "carousel": {
69
+ "source": "https://ui.shadcn.com/r/styles/default/carousel.json",
70
+ "dependencies": ["embla-carousel-react"],
71
+ "registryDependencies": ["button"]
72
+ },
73
+ "chart": {
74
+ "source": "https://ui.shadcn.com/r/styles/default/chart.json",
75
+ "dependencies": ["recharts", "lucide-react"],
76
+ "registryDependencies": []
77
+ },
78
+ "checkbox": {
79
+ "source": "https://ui.shadcn.com/r/styles/default/checkbox.json",
80
+ "dependencies": ["@radix-ui/react-checkbox"],
81
+ "registryDependencies": []
82
+ },
83
+ "collapsible": {
84
+ "source": "https://ui.shadcn.com/r/styles/default/collapsible.json",
85
+ "dependencies": ["@radix-ui/react-collapsible"],
86
+ "registryDependencies": []
87
+ },
88
+ "command": {
89
+ "source": "https://ui.shadcn.com/r/styles/default/command.json",
90
+ "dependencies": ["cmdk"],
91
+ "registryDependencies": ["dialog"]
92
+ },
93
+ "context-menu": {
94
+ "source": "https://ui.shadcn.com/r/styles/default/context-menu.json",
95
+ "dependencies": ["@radix-ui/react-context-menu"],
96
+ "registryDependencies": []
97
+ },
98
+ "dialog": {
99
+ "source": "https://ui.shadcn.com/r/styles/default/dialog.json",
100
+ "dependencies": ["@radix-ui/react-dialog"],
101
+ "registryDependencies": []
102
+ },
103
+ "drawer": {
104
+ "source": "https://ui.shadcn.com/r/styles/default/drawer.json",
105
+ "dependencies": ["vaul"],
106
+ "registryDependencies": []
107
+ },
108
+ "dropdown-menu": {
109
+ "source": "https://ui.shadcn.com/r/styles/default/dropdown-menu.json",
110
+ "dependencies": ["@radix-ui/react-dropdown-menu"],
111
+ "registryDependencies": []
112
+ },
113
+ "form": {
114
+ "source": "https://ui.shadcn.com/r/styles/default/form.json",
115
+ "dependencies": ["@radix-ui/react-label", "react-hook-form", "@hookform/resolvers"],
116
+ "registryDependencies": ["button", "label"]
117
+ },
118
+ "hover-card": {
119
+ "source": "https://ui.shadcn.com/r/styles/default/hover-card.json",
120
+ "dependencies": ["@radix-ui/react-hover-card"],
121
+ "registryDependencies": []
122
+ },
123
+ "input": {
124
+ "source": "https://ui.shadcn.com/r/styles/default/input.json",
125
+ "dependencies": [],
126
+ "registryDependencies": []
127
+ },
128
+ "input-otp": {
129
+ "source": "https://ui.shadcn.com/r/styles/default/input-otp.json",
130
+ "dependencies": ["input-otp"],
131
+ "registryDependencies": []
132
+ },
133
+ "label": {
134
+ "source": "https://ui.shadcn.com/r/styles/default/label.json",
135
+ "dependencies": ["@radix-ui/react-label"],
136
+ "registryDependencies": []
137
+ },
138
+ "menubar": {
139
+ "source": "https://ui.shadcn.com/r/styles/default/menubar.json",
140
+ "dependencies": ["@radix-ui/react-menubar"],
141
+ "registryDependencies": []
142
+ },
143
+ "navigation-menu": {
144
+ "source": "https://ui.shadcn.com/r/styles/default/navigation-menu.json",
145
+ "dependencies": ["@radix-ui/react-navigation-menu"],
146
+ "registryDependencies": []
147
+ },
148
+ "pagination": {
149
+ "source": "https://ui.shadcn.com/r/styles/default/pagination.json",
150
+ "dependencies": [],
151
+ "registryDependencies": ["button"]
152
+ },
153
+ "popover": {
154
+ "source": "https://ui.shadcn.com/r/styles/default/popover.json",
155
+ "dependencies": ["@radix-ui/react-popover"],
156
+ "registryDependencies": []
157
+ },
158
+ "progress": {
159
+ "source": "https://ui.shadcn.com/r/styles/default/progress.json",
160
+ "dependencies": ["@radix-ui/react-progress"],
161
+ "registryDependencies": []
162
+ },
163
+ "radio-group": {
164
+ "source": "https://ui.shadcn.com/r/styles/default/radio-group.json",
165
+ "dependencies": ["@radix-ui/react-radio-group"],
166
+ "registryDependencies": []
167
+ },
168
+ "resizable": {
169
+ "source": "https://ui.shadcn.com/r/styles/default/resizable.json",
170
+ "dependencies": ["react-resizable-panels"],
171
+ "registryDependencies": []
172
+ },
173
+ "scroll-area": {
174
+ "source": "https://ui.shadcn.com/r/styles/default/scroll-area.json",
175
+ "dependencies": ["@radix-ui/react-scroll-area"],
176
+ "registryDependencies": []
177
+ },
178
+ "select": {
179
+ "source": "https://ui.shadcn.com/r/styles/default/select.json",
180
+ "dependencies": ["@radix-ui/react-select"],
181
+ "registryDependencies": []
182
+ },
183
+ "separator": {
184
+ "source": "https://ui.shadcn.com/r/styles/default/separator.json",
185
+ "dependencies": ["@radix-ui/react-separator"],
186
+ "registryDependencies": []
187
+ },
188
+ "sheet": {
189
+ "source": "https://ui.shadcn.com/r/styles/default/sheet.json",
190
+ "dependencies": ["@radix-ui/react-dialog"],
191
+ "registryDependencies": []
192
+ },
193
+ "sidebar": {
194
+ "source": "https://ui.shadcn.com/r/styles/default/sidebar.json",
195
+ "dependencies": ["@radix-ui/react-separator", "@radix-ui/react-slot"],
196
+ "registryDependencies": ["button", "separator", "sheet", "skeleton", "tooltip"]
197
+ },
198
+ "skeleton": {
199
+ "source": "https://ui.shadcn.com/r/styles/default/skeleton.json",
200
+ "dependencies": [],
201
+ "registryDependencies": []
202
+ },
203
+ "slider": {
204
+ "source": "https://ui.shadcn.com/r/styles/default/slider.json",
205
+ "dependencies": ["@radix-ui/react-slider"],
206
+ "registryDependencies": []
207
+ },
208
+ "sonner": {
209
+ "source": "https://ui.shadcn.com/r/styles/default/sonner.json",
210
+ "dependencies": ["sonner", "next-themes"],
211
+ "registryDependencies": []
212
+ },
213
+ "switch": {
214
+ "source": "https://ui.shadcn.com/r/styles/default/switch.json",
215
+ "dependencies": ["@radix-ui/react-switch"],
216
+ "registryDependencies": []
217
+ },
218
+ "table": {
219
+ "source": "https://ui.shadcn.com/r/styles/default/table.json",
220
+ "dependencies": [],
221
+ "registryDependencies": []
222
+ },
223
+ "tabs": {
224
+ "source": "https://ui.shadcn.com/r/styles/default/tabs.json",
225
+ "dependencies": ["@radix-ui/react-tabs"],
226
+ "registryDependencies": []
227
+ },
228
+ "textarea": {
229
+ "source": "https://ui.shadcn.com/r/styles/default/textarea.json",
230
+ "dependencies": [],
231
+ "registryDependencies": []
232
+ },
233
+ "toast": {
234
+ "source": "https://ui.shadcn.com/r/styles/default/toast.json",
235
+ "dependencies": ["@radix-ui/react-toast"],
236
+ "registryDependencies": []
237
+ },
238
+ "toggle": {
239
+ "source": "https://ui.shadcn.com/r/styles/default/toggle.json",
240
+ "dependencies": ["@radix-ui/react-toggle"],
241
+ "registryDependencies": []
242
+ },
243
+ "toggle-group": {
244
+ "source": "https://ui.shadcn.com/r/styles/default/toggle-group.json",
245
+ "dependencies": ["@radix-ui/react-toggle-group"],
246
+ "registryDependencies": []
247
+ },
248
+ "tooltip": {
249
+ "source": "https://ui.shadcn.com/r/styles/default/tooltip.json",
250
+ "dependencies": ["@radix-ui/react-tooltip"],
251
+ "registryDependencies": []
252
+ }
253
+ },
254
+ "customComponents": {
255
+ "button-group": {
256
+ "description": "Custom ObjectUI component - Button group wrapper",
257
+ "dependencies": ["button"]
258
+ },
259
+ "calendar-view": {
260
+ "description": "Custom ObjectUI component - Full calendar view (moved to @object-ui/plugin-calendar-view)",
261
+ "dependencies": ["calendar"],
262
+ "movedToPlugin": "@object-ui/plugin-calendar-view"
263
+ },
264
+ "chatbot": {
265
+ "description": "Custom ObjectUI component - Chatbot interface (moved to @object-ui/plugin-chatbot)",
266
+ "dependencies": ["card", "input", "button"],
267
+ "movedToPlugin": "@object-ui/plugin-chatbot"
268
+ },
269
+ "combobox": {
270
+ "description": "Custom ObjectUI component - Combo box (select + input)",
271
+ "dependencies": ["popover", "command"]
272
+ },
273
+ "date-picker": {
274
+ "description": "Custom ObjectUI component - Date picker wrapper",
275
+ "dependencies": ["calendar", "popover", "button"]
276
+ },
277
+ "empty": {
278
+ "description": "Custom ObjectUI component - Empty state",
279
+ "dependencies": []
280
+ },
281
+ "field": {
282
+ "description": "Custom ObjectUI component - Form field wrapper",
283
+ "dependencies": ["label"]
284
+ },
285
+ "filter-builder": {
286
+ "description": "Custom ObjectUI component - Query filter builder",
287
+ "dependencies": ["select", "input", "button"]
288
+ },
289
+ "input-group": {
290
+ "description": "Custom ObjectUI component - Input group with addons",
291
+ "dependencies": ["input"]
292
+ },
293
+ "item": {
294
+ "description": "Custom ObjectUI component - Generic item component",
295
+ "dependencies": []
296
+ },
297
+ "kbd": {
298
+ "description": "Custom ObjectUI component - Keyboard key display",
299
+ "dependencies": []
300
+ },
301
+ "spinner": {
302
+ "description": "Custom ObjectUI component - Loading spinner",
303
+ "dependencies": []
304
+ },
305
+ "timeline": {
306
+ "description": "Custom ObjectUI component - Timeline component (moved to @object-ui/plugin-timeline)",
307
+ "dependencies": [],
308
+ "movedToPlugin": "@object-ui/plugin-timeline"
309
+ },
310
+ "toaster": {
311
+ "description": "Custom ObjectUI component - Toast container",
312
+ "dependencies": ["toast"]
313
+ }
314
+ }
315
+ }
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { ComponentRegistry } from '@object-ui/core';
3
+
4
+ export const SchemaRenderer = ({ schema }: { schema: any }) => {
5
+ if (!schema) return null;
6
+ if (Array.isArray(schema)) {
7
+ return <>{schema.map((s, i) => <SchemaRenderer key={s.id || i} schema={s} />)}</>;
8
+ }
9
+
10
+ const { type, hidden } = schema;
11
+ if (hidden) return null; // Simple hidden check
12
+
13
+ if (!type) {
14
+ if (typeof schema === 'string') return <>{schema}</>;
15
+ return null;
16
+ }
17
+
18
+ const Component = ComponentRegistry.get(type);
19
+
20
+ if (!Component) {
21
+ console.warn(`Renderer not found for type: ${type}`);
22
+ return <div className="p-2 text-xs text-red-500 border border-red-200 bg-red-50 rounded">Unknown: {type}</div>;
23
+ }
24
+
25
+ // This is dynamic component resolution from registry, not component creation during render
26
+ // eslint-disable-next-line
27
+ return <Component schema={schema} {...schema} />;
28
+ };