@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.
- package/.turbo/turbo-build.log +47 -0
- package/CHANGELOG.md +10 -0
- package/README.md +32 -1
- package/README_SHADCN_SYNC.md +281 -0
- package/TESTING.md +335 -0
- package/dist/index.css +1 -1
- package/dist/index.js +45067 -34357
- package/dist/index.umd.cjs +54 -42
- package/dist/src/SchemaRenderer.d.ts +3 -0
- package/dist/src/{ui → custom}/button-group.d.ts +1 -1
- package/dist/src/custom/combobox.d.ts +22 -0
- package/dist/src/custom/date-picker.d.ts +15 -0
- package/dist/src/custom/field.d.ts +19 -0
- package/dist/src/{ui → custom}/filter-builder.d.ts +7 -0
- package/dist/src/custom/index.d.ts +12 -0
- package/dist/src/custom/input-group.d.ts +14 -0
- package/dist/src/{ui → custom}/item.d.ts +8 -1
- package/dist/src/{ui → custom}/kbd.d.ts +7 -0
- package/dist/src/custom/native-select.d.ts +12 -0
- package/dist/src/custom/sort-builder.d.ts +22 -0
- package/dist/src/custom/spinner.d.ts +10 -0
- package/dist/src/hooks/use-mobile.d.ts +7 -0
- package/dist/src/index.d.ts +5 -1
- package/dist/src/renderers/basic/button-group.d.ts +8 -0
- package/dist/src/renderers/basic/div.d.ts +7 -0
- package/dist/src/renderers/basic/html.d.ts +7 -0
- package/dist/src/renderers/basic/icon.d.ts +7 -0
- package/dist/src/renderers/basic/image.d.ts +7 -0
- package/dist/src/renderers/basic/navigation-menu.d.ts +8 -0
- package/dist/src/renderers/basic/pagination.d.ts +8 -0
- package/dist/src/renderers/basic/separator.d.ts +7 -0
- package/dist/src/renderers/basic/span.d.ts +7 -0
- package/dist/src/renderers/basic/text.d.ts +7 -0
- package/dist/src/renderers/complex/carousel.d.ts +7 -0
- package/dist/src/renderers/complex/data-table.d.ts +7 -0
- package/dist/src/renderers/complex/filter-builder.d.ts +7 -0
- package/dist/src/renderers/complex/resizable.d.ts +7 -0
- package/dist/src/renderers/complex/scroll-area.d.ts +7 -0
- package/dist/src/renderers/complex/table.d.ts +7 -0
- package/dist/src/renderers/data-display/alert.d.ts +7 -0
- package/dist/src/renderers/data-display/avatar.d.ts +7 -0
- package/dist/src/renderers/data-display/badge.d.ts +7 -0
- package/dist/src/renderers/data-display/breadcrumb.d.ts +8 -0
- package/dist/src/renderers/data-display/kbd.d.ts +8 -0
- package/dist/src/renderers/data-display/list.d.ts +7 -0
- package/dist/src/renderers/data-display/statistic.d.ts +7 -0
- package/dist/src/renderers/data-display/table.d.ts +8 -0
- package/dist/src/renderers/data-display/tree-view.d.ts +7 -0
- package/dist/src/renderers/disclosure/accordion.d.ts +7 -0
- package/dist/src/renderers/disclosure/collapsible.d.ts +7 -0
- package/dist/src/renderers/disclosure/toggle-group.d.ts +8 -0
- package/dist/src/renderers/feedback/empty.d.ts +8 -0
- package/dist/src/renderers/feedback/loading.d.ts +7 -0
- package/dist/src/renderers/feedback/progress.d.ts +7 -0
- package/dist/src/renderers/feedback/skeleton.d.ts +7 -0
- package/dist/src/renderers/feedback/sonner.d.ts +8 -0
- package/dist/src/renderers/feedback/spinner.d.ts +8 -0
- package/dist/src/renderers/feedback/toast.d.ts +8 -0
- package/dist/src/renderers/feedback/toaster.d.ts +7 -0
- package/dist/src/renderers/form/button.d.ts +7 -0
- package/dist/src/renderers/form/calendar.d.ts +7 -0
- package/dist/src/renderers/form/checkbox.d.ts +7 -0
- package/dist/src/renderers/form/combobox.d.ts +8 -0
- package/dist/src/renderers/form/command.d.ts +8 -0
- package/dist/src/renderers/form/date-picker.d.ts +7 -0
- package/dist/src/renderers/form/file-upload.d.ts +7 -0
- package/dist/src/renderers/form/form.d.ts +7 -0
- package/dist/src/renderers/form/input-otp.d.ts +7 -0
- package/dist/src/renderers/form/input.d.ts +7 -0
- package/dist/src/renderers/form/label.d.ts +7 -0
- package/dist/src/renderers/form/radio-group.d.ts +7 -0
- package/dist/src/renderers/form/select.d.ts +7 -0
- package/dist/src/renderers/form/slider.d.ts +7 -0
- package/dist/src/renderers/form/switch.d.ts +7 -0
- package/dist/src/renderers/form/textarea.d.ts +7 -0
- package/dist/src/renderers/form/toggle.d.ts +7 -0
- package/dist/src/renderers/layout/aspect-ratio.d.ts +8 -0
- package/dist/src/renderers/layout/card.d.ts +7 -0
- package/dist/src/renderers/layout/container.d.ts +7 -0
- package/dist/src/renderers/layout/flex.d.ts +7 -0
- package/dist/src/renderers/layout/grid.d.ts +7 -0
- package/dist/src/renderers/layout/page.d.ts +1 -1
- package/dist/src/renderers/layout/semantic.d.ts +7 -0
- package/dist/src/renderers/layout/stack.d.ts +7 -0
- package/dist/src/renderers/layout/tabs.d.ts +7 -0
- package/dist/src/renderers/navigation/header-bar.d.ts +7 -0
- package/dist/src/renderers/navigation/sidebar.d.ts +7 -0
- package/dist/src/renderers/overlay/alert-dialog.d.ts +7 -0
- package/dist/src/renderers/overlay/context-menu.d.ts +7 -0
- package/dist/src/renderers/overlay/dialog.d.ts +7 -0
- package/dist/src/renderers/overlay/drawer.d.ts +7 -0
- package/dist/src/renderers/overlay/dropdown-menu.d.ts +7 -0
- package/dist/src/renderers/overlay/hover-card.d.ts +7 -0
- package/dist/src/renderers/overlay/menubar.d.ts +8 -0
- package/dist/src/renderers/overlay/popover.d.ts +7 -0
- package/dist/src/renderers/overlay/sheet.d.ts +7 -0
- package/dist/src/renderers/overlay/tooltip.d.ts +7 -0
- package/dist/src/renderers/placeholders.d.ts +9 -0
- package/dist/src/ui/accordion.d.ts +11 -4
- package/dist/src/ui/alert-dialog.d.ts +24 -11
- package/dist/src/ui/alert.d.ts +11 -5
- package/dist/src/ui/aspect-ratio.d.ts +8 -1
- package/dist/src/ui/avatar.d.ts +10 -3
- package/dist/src/ui/badge.d.ts +10 -3
- package/dist/src/ui/breadcrumb.d.ts +23 -8
- package/dist/src/ui/button.d.ts +10 -5
- package/dist/src/ui/calendar.d.ts +8 -1
- package/dist/src/ui/card.d.ts +14 -8
- package/dist/src/ui/carousel.d.ts +12 -6
- package/dist/src/ui/chart.d.ts +62 -0
- package/dist/src/ui/checkbox.d.ts +8 -1
- package/dist/src/ui/collapsible.d.ts +10 -3
- package/dist/src/ui/command.d.ts +85 -16
- package/dist/src/ui/context-menu.d.ts +21 -12
- package/dist/src/ui/dialog.d.ts +24 -13
- package/dist/src/ui/drawer.d.ts +26 -10
- package/dist/src/ui/dropdown-menu.d.ts +27 -18
- package/dist/src/ui/form.d.ts +13 -7
- package/dist/src/ui/hover-card.d.ts +10 -3
- package/dist/src/ui/index.d.ts +10 -11
- package/dist/src/ui/input-otp.d.ts +37 -7
- package/dist/src/ui/input.d.ts +7 -0
- package/dist/src/ui/label.d.ts +9 -1
- package/dist/src/ui/menubar.d.ts +26 -17
- package/dist/src/ui/navigation-menu.d.ts +16 -11
- package/dist/src/ui/pagination.d.ts +32 -10
- package/dist/src/ui/popover.d.ts +11 -5
- package/dist/src/ui/progress.d.ts +8 -1
- package/dist/src/ui/radio-group.d.ts +9 -2
- package/dist/src/ui/resizable.d.ts +12 -8
- package/dist/src/ui/scroll-area.d.ts +9 -2
- package/dist/src/ui/select.d.ts +18 -13
- package/dist/src/ui/separator.d.ts +7 -0
- package/dist/src/ui/sheet.d.ts +30 -11
- package/dist/src/ui/sidebar.d.ts +41 -38
- package/dist/src/ui/skeleton.d.ts +8 -1
- package/dist/src/ui/slider.d.ts +8 -1
- package/dist/src/ui/sonner.d.ts +2 -1
- package/dist/src/ui/switch.d.ts +9 -2
- package/dist/src/ui/table.d.ts +15 -8
- package/dist/src/ui/tabs.d.ts +8 -1
- package/dist/src/ui/textarea.d.ts +8 -1
- package/dist/src/ui/toast.d.ts +22 -0
- package/dist/src/ui/toggle-group.d.ts +15 -5
- package/dist/src/ui/toggle.d.ts +11 -1
- package/dist/src/ui/tooltip.d.ts +11 -4
- package/dist/src/ui/typography.d.ts +21 -0
- package/metadata/ObjectGrid.component.yml +72 -0
- package/package.json +35 -13
- package/postcss.config.js +9 -1
- package/shadcn-components.json +315 -0
- package/src/SchemaRenderer.tsx +28 -0
- package/src/__tests__/PageRendererRegions.test.tsx +59 -0
- package/src/__tests__/README.md +124 -0
- package/src/__tests__/Registry.test.ts +21 -0
- package/src/__tests__/basic-renderers.test.tsx +255 -0
- package/src/__tests__/complex-disclosure-renderers.test.tsx +302 -0
- package/src/__tests__/feedback-overlay-renderers.test.tsx +349 -0
- package/src/__tests__/form-renderers.test.tsx +364 -0
- package/src/__tests__/layout-data-renderers.test.tsx +340 -0
- package/src/__tests__/test-utils.tsx +190 -0
- package/src/{ui → custom}/button-group.tsx +9 -1
- package/src/custom/combobox.tsx +104 -0
- package/src/custom/date-picker.tsx +61 -0
- package/src/{ui → custom}/empty.tsx +8 -0
- package/src/custom/field.tsx +81 -0
- package/src/{ui → custom}/filter-builder.tsx +11 -3
- package/src/custom/index.ts +12 -0
- package/src/custom/input-group.tsx +53 -0
- package/src/{ui → custom}/item.tsx +9 -1
- package/src/{ui → custom}/kbd.tsx +8 -0
- package/src/custom/native-select.tsx +33 -0
- package/src/custom/sort-builder.tsx +129 -0
- package/src/custom/spinner.tsx +26 -0
- package/src/hooks/use-mobile.tsx +8 -0
- package/src/index.css +105 -54
- package/src/index.test.ts +8 -0
- package/src/index.ts +22 -1
- package/src/lib/utils.tsx +8 -0
- package/src/new-components.test.ts +8 -9
- package/src/renderers/basic/button-group.tsx +79 -0
- package/src/renderers/basic/div.tsx +21 -2
- package/src/renderers/basic/html.tsx +9 -0
- package/src/renderers/basic/icon.tsx +67 -3
- package/src/renderers/basic/image.tsx +13 -1
- package/src/renderers/basic/index.ts +11 -0
- package/src/renderers/basic/navigation-menu.tsx +81 -0
- package/src/renderers/basic/pagination.tsx +109 -0
- package/src/renderers/basic/separator.tsx +10 -1
- package/src/renderers/basic/span.tsx +21 -2
- package/src/renderers/basic/text.tsx +12 -2
- package/src/renderers/complex/__tests__/data-table.test.ts +8 -0
- package/src/renderers/complex/carousel.tsx +12 -3
- package/src/renderers/complex/data-table.tsx +150 -96
- package/src/renderers/complex/filter-builder.tsx +10 -1
- package/src/renderers/complex/index.ts +9 -3
- package/src/renderers/complex/resizable.tsx +10 -1
- package/src/renderers/complex/scroll-area.tsx +33 -7
- package/src/renderers/complex/table.tsx +11 -2
- package/src/renderers/data-display/alert.tsx +9 -0
- package/src/renderers/data-display/avatar.tsx +9 -0
- package/src/renderers/data-display/badge.tsx +9 -0
- package/src/renderers/data-display/breadcrumb.tsx +60 -0
- package/src/renderers/data-display/index.ts +12 -0
- package/src/renderers/data-display/kbd.tsx +50 -0
- package/src/renderers/data-display/list.tsx +29 -49
- package/src/renderers/data-display/statistic.tsx +45 -48
- package/src/renderers/data-display/table.tsx +78 -0
- package/src/renderers/data-display/tree-view.tsx +32 -37
- package/src/renderers/disclosure/accordion.tsx +9 -0
- package/src/renderers/disclosure/collapsible.tsx +9 -0
- package/src/renderers/disclosure/index.ts +9 -0
- package/src/renderers/disclosure/toggle-group.tsx +79 -0
- package/src/renderers/feedback/empty.tsx +49 -0
- package/src/renderers/feedback/index.ts +12 -0
- package/src/renderers/feedback/loading.tsx +10 -1
- package/src/renderers/feedback/progress.tsx +9 -0
- package/src/renderers/feedback/skeleton.tsx +9 -0
- package/src/renderers/feedback/sonner.tsx +56 -0
- package/src/renderers/feedback/spinner.tsx +55 -0
- package/src/renderers/feedback/toast.tsx +59 -0
- package/src/renderers/feedback/toaster.tsx +14 -17
- package/src/renderers/form/button.tsx +43 -1
- package/src/renderers/form/calendar.tsx +9 -0
- package/src/renderers/form/checkbox.tsx +46 -16
- package/src/renderers/form/combobox.tsx +48 -0
- package/src/renderers/form/command.tsx +58 -0
- package/src/renderers/form/date-picker.tsx +11 -2
- package/src/renderers/form/file-upload.tsx +11 -2
- package/src/renderers/form/form.tsx +104 -18
- package/src/renderers/form/index.ts +10 -0
- package/src/renderers/form/input-otp.tsx +35 -15
- package/src/renderers/form/input.tsx +92 -50
- package/src/renderers/form/label.tsx +9 -0
- package/src/renderers/form/radio-group.tsx +9 -0
- package/src/renderers/form/select.tsx +43 -15
- package/src/renderers/form/slider.tsx +17 -1
- package/src/renderers/form/switch.tsx +9 -0
- package/src/renderers/form/textarea.tsx +58 -27
- package/src/renderers/form/toggle.tsx +11 -45
- package/src/renderers/index.ts +8 -0
- package/src/renderers/layout/aspect-ratio.tsx +51 -0
- package/src/renderers/layout/card.tsx +18 -2
- package/src/renderers/layout/container.tsx +21 -12
- package/src/renderers/layout/flex.tsx +17 -8
- package/src/renderers/layout/grid.tsx +31 -8
- package/src/renderers/layout/index.ts +9 -0
- package/src/renderers/layout/page.tsx +44 -24
- package/src/renderers/layout/semantic.tsx +9 -0
- package/src/renderers/layout/stack.tsx +18 -9
- package/src/renderers/layout/tabs.tsx +51 -17
- package/src/renderers/navigation/header-bar.tsx +10 -1
- package/src/renderers/navigation/index.ts +8 -0
- package/src/renderers/navigation/sidebar.tsx +13 -0
- package/src/renderers/overlay/alert-dialog.tsx +9 -0
- package/src/renderers/overlay/context-menu.tsx +10 -1
- package/src/renderers/overlay/dialog.tsx +9 -0
- package/src/renderers/overlay/drawer.tsx +9 -0
- package/src/renderers/overlay/dropdown-menu.tsx +9 -0
- package/src/renderers/overlay/hover-card.tsx +9 -0
- package/src/renderers/overlay/index.ts +9 -0
- package/src/renderers/overlay/menubar.tsx +76 -0
- package/src/renderers/overlay/popover.tsx +9 -0
- package/src/renderers/overlay/sheet.tsx +9 -0
- package/src/renderers/overlay/tooltip.tsx +9 -0
- package/src/renderers/placeholders.tsx +107 -0
- package/src/stories/CRMApp.stories.tsx +706 -0
- package/src/stories/Guide.mdx +55 -0
- package/src/stories/Introduction.mdx +34 -0
- package/src/stories/MockedData.stories.tsx +71 -0
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +1 -0
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +1 -0
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +1 -0
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +1 -0
- package/src/stories/assets/youtube.svg +1 -0
- package/src/stories/button.css +30 -0
- package/src/stories/header.css +32 -0
- package/src/stories/page.css +68 -0
- package/src/stories-json/accordion.stories.tsx +43 -0
- package/src/stories-json/aggrid.stories.tsx +103 -0
- package/src/stories-json/alert.stories.tsx +39 -0
- package/src/stories-json/aspect-ratio.stories.tsx +34 -0
- package/src/stories-json/avatar.stories.tsx +38 -0
- package/src/stories-json/badge.stories.tsx +53 -0
- package/src/stories-json/breadcrumb.stories.tsx +30 -0
- package/src/stories-json/button-group.stories.tsx +43 -0
- package/src/stories-json/button.stories.tsx +73 -0
- package/src/stories-json/calendar.stories.tsx +85 -0
- package/src/stories-json/card.stories.tsx +48 -0
- package/src/stories-json/carousel.stories.tsx +33 -0
- package/src/stories-json/charts.stories.tsx +195 -0
- package/src/stories-json/chatbot.stories.tsx +248 -0
- package/src/stories-json/code-editor.stories.tsx +92 -0
- package/src/stories-json/collapsible.stories.tsx +40 -0
- package/src/stories-json/controls.stories.tsx +36 -0
- package/src/stories-json/dashboard.stories.tsx +318 -0
- package/src/stories-json/data-table.stories.tsx +60 -0
- package/src/stories-json/data_display_extras.stories.tsx +102 -0
- package/src/stories-json/date-picker.stories.tsx +28 -0
- package/src/stories-json/detail-view.stories.tsx +258 -0
- package/src/stories-json/dialog.stories.tsx +43 -0
- package/src/stories-json/feedback_extras.stories.tsx +40 -0
- package/src/stories-json/feedback_others.stories.tsx +46 -0
- package/src/stories-json/form_advanced.stories.tsx +117 -0
- package/src/stories-json/form_extras.stories.tsx +123 -0
- package/src/stories-json/grid.stories.tsx +56 -0
- package/src/stories-json/icon.stories.tsx +36 -0
- package/src/stories-json/input.stories.tsx +52 -0
- package/src/stories-json/kanban.stories.tsx +295 -0
- package/src/stories-json/layout_extended.stories.tsx +76 -0
- package/src/stories-json/layout_flex.stories.tsx +107 -0
- package/src/stories-json/list-view.stories.tsx +97 -0
- package/src/stories-json/markdown.stories.tsx +129 -0
- package/src/stories-json/menus.stories.tsx +63 -0
- package/src/stories-json/metric-card.stories.tsx +143 -0
- package/src/stories-json/navigation-menu.stories.tsx +37 -0
- package/src/stories-json/object-aggrid.stories.tsx +252 -0
- package/src/stories-json/object-form.stories.tsx +130 -0
- package/src/stories-json/object-gantt.stories.tsx +114 -0
- package/src/stories-json/object-grid.stories.tsx +157 -0
- package/src/stories-json/object-map.stories.tsx +116 -0
- package/src/stories-json/object-view.stories.tsx +118 -0
- package/src/stories-json/overlay_extras.stories.tsx +113 -0
- package/src/stories-json/overlay_others.stories.tsx +76 -0
- package/src/stories-json/page.stories.tsx +55 -0
- package/src/stories-json/reports.stories.tsx +163 -0
- package/src/stories-json/resizable.stories.tsx +44 -0
- package/src/stories-json/select.stories.tsx +34 -0
- package/src/stories-json/separator.stories.tsx +41 -0
- package/src/stories-json/sidebar.stories.tsx +147 -0
- package/src/stories-json/statistic.stories.tsx +44 -0
- package/src/stories-json/tabs.stories.tsx +51 -0
- package/src/stories-json/timeline.stories.tsx +188 -0
- package/src/stories-json/typography.stories.tsx +45 -0
- package/src/ui/accordion.tsx +55 -53
- package/src/ui/alert-dialog.tsx +111 -117
- package/src/ui/alert.tsx +46 -57
- package/src/ui/aspect-ratio.tsx +9 -5
- package/src/ui/avatar.tsx +49 -42
- package/src/ui/badge.tsx +18 -20
- package/src/ui/breadcrumb.tsx +89 -75
- package/src/ui/button.tsx +38 -37
- package/src/ui/calendar.tsx +37 -53
- package/src/ui/card.tsx +59 -110
- package/src/ui/carousel.tsx +144 -113
- package/src/ui/chart.tsx +367 -0
- package/src/ui/checkbox.tsx +28 -22
- package/src/ui/collapsible.tsx +13 -25
- package/src/ui/command.tsx +114 -135
- package/src/ui/context-menu.tsx +77 -116
- package/src/ui/dialog.tsx +102 -113
- package/src/ui/drawer.tsx +90 -99
- package/src/ui/dropdown-menu.tsx +142 -188
- package/src/ui/form.tsx +59 -40
- package/src/ui/hover-card.tsx +26 -33
- package/src/ui/index.ts +11 -11
- package/src/ui/input-otp.tsx +53 -55
- package/src/ui/input.tsx +21 -15
- package/src/ui/label.tsx +25 -15
- package/src/ui/menubar.tsx +196 -206
- package/src/ui/navigation-menu.tsx +104 -136
- package/src/ui/pagination.tsx +94 -96
- package/src/ui/popover.tsx +29 -38
- package/src/ui/progress.tsx +29 -34
- package/src/ui/radio-group.tsx +27 -20
- package/src/ui/resizable.tsx +40 -42
- package/src/ui/scroll-area.tsx +46 -48
- package/src/ui/select.tsx +140 -160
- package/src/ui/separator.tsx +10 -2
- package/src/ui/sheet.tsx +118 -107
- package/src/ui/sidebar.tsx +471 -418
- package/src/ui/skeleton.tsx +14 -11
- package/src/ui/slider.tsx +27 -54
- package/src/ui/sonner.tsx +29 -19
- package/src/ui/switch.tsx +27 -21
- package/src/ui/table.tsx +102 -97
- package/src/ui/tabs.tsx +14 -37
- package/src/ui/textarea.tsx +16 -4
- package/src/ui/toast.tsx +137 -0
- package/src/ui/toggle-group.tsx +37 -55
- package/src/ui/toggle.tsx +30 -27
- package/src/ui/tooltip.tsx +29 -52
- package/src/ui/typography.tsx +85 -0
- package/tsconfig.json +2 -1
- package/vite.config.ts +20 -2
- package/vitest.config.ts +5 -0
- package/dist/src/index.test.d.ts +0 -1
- package/dist/src/new-components.test.d.ts +0 -1
- package/dist/src/renderers/complex/__tests__/data-table.test.d.ts +0 -0
- package/dist/src/renderers/complex/calendar-view.d.ts +0 -1
- package/dist/src/renderers/complex/chatbot.d.ts +0 -1
- package/dist/src/renderers/complex/chatbot.test.d.ts +0 -1
- package/dist/src/renderers/complex/timeline.d.ts +0 -1
- package/dist/src/ui/calendar-view.d.ts +0 -21
- package/dist/src/ui/chatbot.d.ts +0 -36
- package/dist/src/ui/field.d.ts +0 -24
- package/dist/src/ui/input-group.d.ts +0 -16
- package/dist/src/ui/spinner.d.ts +0 -3
- package/dist/src/ui/timeline.d.ts +0 -25
- package/metadata/ObjectTable.component.yml +0 -41
- package/src/renderers/complex/calendar-view.tsx +0 -219
- package/src/renderers/complex/chatbot.test.ts +0 -44
- package/src/renderers/complex/chatbot.tsx +0 -185
- package/src/renderers/complex/timeline.tsx +0 -466
- package/src/ui/calendar-view.tsx +0 -503
- package/src/ui/chatbot.tsx +0 -240
- package/src/ui/field.tsx +0 -246
- package/src/ui/input-group.tsx +0 -170
- package/src/ui/spinner.tsx +0 -38
- package/src/ui/timeline.tsx +0 -266
- package/tailwind.config.js +0 -75
- /package/dist/src/{ui → custom}/empty.d.ts +0 -0
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
|
-
|
|
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
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 };
|
package/dist/src/ui/toggle.d.ts
CHANGED
|
@@ -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
|
|
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 };
|
package/dist/src/ui/tooltip.d.ts
CHANGED
|
@@ -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
|
|
4
|
-
declare
|
|
5
|
-
declare
|
|
6
|
-
declare
|
|
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
|
+
"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
|
-
"./
|
|
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.
|
|
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.
|
|
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.
|
|
61
|
-
"@object-ui/react": "0.
|
|
62
|
-
"@object-ui/types": "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": "^
|
|
79
|
+
"tailwindcss": "^4.1.18"
|
|
68
80
|
},
|
|
69
81
|
"devDependencies": {
|
|
70
|
-
"@
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
+
};
|