@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
package/src/ui/command.tsx
CHANGED
|
@@ -1,56 +1,41 @@
|
|
|
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
|
+
|
|
9
|
+
"use client"
|
|
10
|
+
|
|
1
11
|
import * as React from "react"
|
|
12
|
+
import { type DialogProps } from "@radix-ui/react-dialog"
|
|
2
13
|
import { Command as CommandPrimitive } from "cmdk"
|
|
3
|
-
import {
|
|
14
|
+
import { Search } from "lucide-react"
|
|
4
15
|
|
|
5
16
|
import { cn } from "../lib/utils"
|
|
6
|
-
import {
|
|
7
|
-
Dialog,
|
|
8
|
-
DialogContent,
|
|
9
|
-
DialogDescription,
|
|
10
|
-
DialogHeader,
|
|
11
|
-
DialogTitle,
|
|
12
|
-
} from "./dialog"
|
|
13
|
-
|
|
14
|
-
function Command({
|
|
15
|
-
className,
|
|
16
|
-
...props
|
|
17
|
-
}: React.ComponentProps<typeof CommandPrimitive>) {
|
|
18
|
-
return (
|
|
19
|
-
<CommandPrimitive
|
|
20
|
-
data-slot="command"
|
|
21
|
-
className={cn(
|
|
22
|
-
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
|
|
23
|
-
className
|
|
24
|
-
)}
|
|
25
|
-
{...props}
|
|
26
|
-
/>
|
|
27
|
-
)
|
|
28
|
-
}
|
|
17
|
+
import { Dialog, DialogContent } from "./dialog"
|
|
29
18
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
19
|
+
const Command = React.forwardRef<
|
|
20
|
+
React.ElementRef<typeof CommandPrimitive>,
|
|
21
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive>
|
|
22
|
+
>(({ className, ...props }, ref) => (
|
|
23
|
+
<CommandPrimitive
|
|
24
|
+
ref={ref}
|
|
25
|
+
className={cn(
|
|
26
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
27
|
+
className
|
|
28
|
+
)}
|
|
29
|
+
{...props}
|
|
30
|
+
/>
|
|
31
|
+
))
|
|
32
|
+
Command.displayName = CommandPrimitive.displayName
|
|
33
|
+
|
|
34
|
+
const CommandDialog = ({ children, ...props }: DialogProps) => {
|
|
43
35
|
return (
|
|
44
36
|
<Dialog {...props}>
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
<DialogDescription>{description}</DialogDescription>
|
|
48
|
-
</DialogHeader>
|
|
49
|
-
<DialogContent
|
|
50
|
-
className={cn("overflow-hidden p-0", className)}
|
|
51
|
-
showCloseButton={showCloseButton}
|
|
52
|
-
>
|
|
53
|
-
<Command className="[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
|
|
37
|
+
<DialogContent className="overflow-hidden p-0 shadow-lg">
|
|
38
|
+
<Command className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
|
|
54
39
|
{children}
|
|
55
40
|
</Command>
|
|
56
41
|
</DialogContent>
|
|
@@ -58,116 +43,110 @@ function CommandDialog({
|
|
|
58
43
|
)
|
|
59
44
|
}
|
|
60
45
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
>
|
|
70
|
-
<SearchIcon className="size-4 shrink-0 opacity-50" />
|
|
71
|
-
<CommandPrimitive.Input
|
|
72
|
-
data-slot="command-input"
|
|
73
|
-
className={cn(
|
|
74
|
-
"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
|
|
75
|
-
className
|
|
76
|
-
)}
|
|
77
|
-
{...props}
|
|
78
|
-
/>
|
|
79
|
-
</div>
|
|
80
|
-
)
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function CommandList({
|
|
84
|
-
className,
|
|
85
|
-
...props
|
|
86
|
-
}: React.ComponentProps<typeof CommandPrimitive.List>) {
|
|
87
|
-
return (
|
|
88
|
-
<CommandPrimitive.List
|
|
89
|
-
data-slot="command-list"
|
|
46
|
+
const CommandInput = React.forwardRef<
|
|
47
|
+
React.ElementRef<typeof CommandPrimitive.Input>,
|
|
48
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>
|
|
49
|
+
>(({ className, ...props }, ref) => (
|
|
50
|
+
<div className="flex items-center border-b px-3" cmdk-input-wrapper="">
|
|
51
|
+
<Search className="mr-2 h-4 w-4 shrink-0 opacity-50" />
|
|
52
|
+
<CommandPrimitive.Input
|
|
53
|
+
ref={ref}
|
|
90
54
|
className={cn(
|
|
91
|
-
"
|
|
55
|
+
"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
92
56
|
className
|
|
93
57
|
)}
|
|
94
58
|
{...props}
|
|
95
59
|
/>
|
|
96
|
-
|
|
97
|
-
|
|
60
|
+
</div>
|
|
61
|
+
))
|
|
98
62
|
|
|
99
|
-
|
|
100
|
-
...props
|
|
101
|
-
}: React.ComponentProps<typeof CommandPrimitive.Empty>) {
|
|
102
|
-
return (
|
|
103
|
-
<CommandPrimitive.Empty
|
|
104
|
-
data-slot="command-empty"
|
|
105
|
-
className="py-6 text-center text-sm"
|
|
106
|
-
{...props}
|
|
107
|
-
/>
|
|
108
|
-
)
|
|
109
|
-
}
|
|
63
|
+
CommandInput.displayName = CommandPrimitive.Input.displayName
|
|
110
64
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
)}
|
|
122
|
-
{...props}
|
|
123
|
-
/>
|
|
124
|
-
)
|
|
125
|
-
}
|
|
65
|
+
const CommandList = React.forwardRef<
|
|
66
|
+
React.ElementRef<typeof CommandPrimitive.List>,
|
|
67
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>
|
|
68
|
+
>(({ className, ...props }, ref) => (
|
|
69
|
+
<CommandPrimitive.List
|
|
70
|
+
ref={ref}
|
|
71
|
+
className={cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)}
|
|
72
|
+
{...props}
|
|
73
|
+
/>
|
|
74
|
+
))
|
|
126
75
|
|
|
127
|
-
|
|
128
|
-
className,
|
|
129
|
-
...props
|
|
130
|
-
}: React.ComponentProps<typeof CommandPrimitive.Separator>) {
|
|
131
|
-
return (
|
|
132
|
-
<CommandPrimitive.Separator
|
|
133
|
-
data-slot="command-separator"
|
|
134
|
-
className={cn("bg-border -mx-1 h-px", className)}
|
|
135
|
-
{...props}
|
|
136
|
-
/>
|
|
137
|
-
)
|
|
138
|
-
}
|
|
76
|
+
CommandList.displayName = CommandPrimitive.List.displayName
|
|
139
77
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
78
|
+
const CommandEmpty = React.forwardRef<
|
|
79
|
+
React.ElementRef<typeof CommandPrimitive.Empty>,
|
|
80
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>
|
|
81
|
+
>((props, ref) => (
|
|
82
|
+
<CommandPrimitive.Empty
|
|
83
|
+
ref={ref}
|
|
84
|
+
className="py-6 text-center text-sm"
|
|
85
|
+
{...props}
|
|
86
|
+
/>
|
|
87
|
+
))
|
|
88
|
+
|
|
89
|
+
CommandEmpty.displayName = CommandPrimitive.Empty.displayName
|
|
90
|
+
|
|
91
|
+
const CommandGroup = React.forwardRef<
|
|
92
|
+
React.ElementRef<typeof CommandPrimitive.Group>,
|
|
93
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>
|
|
94
|
+
>(({ className, ...props }, ref) => (
|
|
95
|
+
<CommandPrimitive.Group
|
|
96
|
+
ref={ref}
|
|
97
|
+
className={cn(
|
|
98
|
+
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
99
|
+
className
|
|
100
|
+
)}
|
|
101
|
+
{...props}
|
|
102
|
+
/>
|
|
103
|
+
))
|
|
104
|
+
|
|
105
|
+
CommandGroup.displayName = CommandPrimitive.Group.displayName
|
|
106
|
+
|
|
107
|
+
const CommandSeparator = React.forwardRef<
|
|
108
|
+
React.ElementRef<typeof CommandPrimitive.Separator>,
|
|
109
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>
|
|
110
|
+
>(({ className, ...props }, ref) => (
|
|
111
|
+
<CommandPrimitive.Separator
|
|
112
|
+
ref={ref}
|
|
113
|
+
className={cn("-mx-1 h-px bg-border", className)}
|
|
114
|
+
{...props}
|
|
115
|
+
/>
|
|
116
|
+
))
|
|
117
|
+
CommandSeparator.displayName = CommandPrimitive.Separator.displayName
|
|
118
|
+
|
|
119
|
+
const CommandItem = React.forwardRef<
|
|
120
|
+
React.ElementRef<typeof CommandPrimitive.Item>,
|
|
121
|
+
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>
|
|
122
|
+
>(({ className, ...props }, ref) => (
|
|
123
|
+
<CommandPrimitive.Item
|
|
124
|
+
ref={ref}
|
|
125
|
+
className={cn(
|
|
126
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
127
|
+
className
|
|
128
|
+
)}
|
|
129
|
+
{...props}
|
|
130
|
+
/>
|
|
131
|
+
))
|
|
132
|
+
|
|
133
|
+
CommandItem.displayName = CommandPrimitive.Item.displayName
|
|
155
134
|
|
|
156
|
-
|
|
135
|
+
const CommandShortcut = ({
|
|
157
136
|
className,
|
|
158
137
|
...props
|
|
159
|
-
}: React.
|
|
138
|
+
}: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
160
139
|
return (
|
|
161
140
|
<span
|
|
162
|
-
data-slot="command-shortcut"
|
|
163
141
|
className={cn(
|
|
164
|
-
"
|
|
142
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
165
143
|
className
|
|
166
144
|
)}
|
|
167
145
|
{...props}
|
|
168
146
|
/>
|
|
169
147
|
)
|
|
170
148
|
}
|
|
149
|
+
CommandShortcut.displayName = "CommandShortcut"
|
|
171
150
|
|
|
172
151
|
export {
|
|
173
152
|
Command,
|
package/src/ui/context-menu.tsx
CHANGED
|
@@ -1,130 +1,95 @@
|
|
|
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
|
"use client"
|
|
2
10
|
|
|
3
11
|
import * as React from "react"
|
|
4
12
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu"
|
|
5
|
-
import {
|
|
13
|
+
import { Check, ChevronRight, Circle } from "lucide-react"
|
|
6
14
|
|
|
7
15
|
import { cn } from "../lib/utils"
|
|
8
16
|
|
|
9
|
-
|
|
10
|
-
...props
|
|
11
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {
|
|
12
|
-
return <ContextMenuPrimitive.Root data-slot="context-menu" {...props} />
|
|
13
|
-
}
|
|
17
|
+
const ContextMenu = ContextMenuPrimitive.Root
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
...props
|
|
17
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {
|
|
18
|
-
return (
|
|
19
|
-
<ContextMenuPrimitive.Trigger data-slot="context-menu-trigger" {...props} />
|
|
20
|
-
)
|
|
21
|
-
}
|
|
19
|
+
const ContextMenuTrigger = ContextMenuPrimitive.Trigger
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
...props
|
|
25
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {
|
|
26
|
-
return (
|
|
27
|
-
<ContextMenuPrimitive.Group data-slot="context-menu-group" {...props} />
|
|
28
|
-
)
|
|
29
|
-
}
|
|
21
|
+
const ContextMenuGroup = ContextMenuPrimitive.Group
|
|
30
22
|
|
|
31
|
-
|
|
32
|
-
...props
|
|
33
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {
|
|
34
|
-
return (
|
|
35
|
-
<ContextMenuPrimitive.Portal data-slot="context-menu-portal" {...props} />
|
|
36
|
-
)
|
|
37
|
-
}
|
|
23
|
+
const ContextMenuPortal = ContextMenuPrimitive.Portal
|
|
38
24
|
|
|
39
|
-
|
|
40
|
-
...props
|
|
41
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {
|
|
42
|
-
return <ContextMenuPrimitive.Sub data-slot="context-menu-sub" {...props} />
|
|
43
|
-
}
|
|
25
|
+
const ContextMenuSub = ContextMenuPrimitive.Sub
|
|
44
26
|
|
|
45
|
-
|
|
46
|
-
...props
|
|
47
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {
|
|
48
|
-
return (
|
|
49
|
-
<ContextMenuPrimitive.RadioGroup
|
|
50
|
-
data-slot="context-menu-radio-group"
|
|
51
|
-
{...props}
|
|
52
|
-
/>
|
|
53
|
-
)
|
|
54
|
-
}
|
|
27
|
+
const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup
|
|
55
28
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
</ContextMenuPrimitive.SubTrigger>
|
|
77
|
-
)
|
|
78
|
-
}
|
|
29
|
+
const ContextMenuSubTrigger = React.forwardRef<
|
|
30
|
+
React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,
|
|
31
|
+
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {
|
|
32
|
+
inset?: boolean
|
|
33
|
+
}
|
|
34
|
+
>(({ className, inset, children, ...props }, ref) => (
|
|
35
|
+
<ContextMenuPrimitive.SubTrigger
|
|
36
|
+
ref={ref}
|
|
37
|
+
className={cn(
|
|
38
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
39
|
+
inset && "pl-8",
|
|
40
|
+
className
|
|
41
|
+
)}
|
|
42
|
+
{...props}
|
|
43
|
+
>
|
|
44
|
+
{children}
|
|
45
|
+
<ChevronRight className="ml-auto h-4 w-4" />
|
|
46
|
+
</ContextMenuPrimitive.SubTrigger>
|
|
47
|
+
))
|
|
48
|
+
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName
|
|
79
49
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
50
|
+
const ContextMenuSubContent = React.forwardRef<
|
|
51
|
+
React.ElementRef<typeof ContextMenuPrimitive.SubContent>,
|
|
52
|
+
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>
|
|
53
|
+
>(({ className, ...props }, ref) => (
|
|
54
|
+
<ContextMenuPrimitive.SubContent
|
|
55
|
+
ref={ref}
|
|
56
|
+
className={cn(
|
|
57
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]",
|
|
58
|
+
className
|
|
59
|
+
)}
|
|
60
|
+
{...props}
|
|
61
|
+
/>
|
|
62
|
+
))
|
|
63
|
+
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName
|
|
64
|
+
|
|
65
|
+
const ContextMenuContent = React.forwardRef<
|
|
66
|
+
React.ElementRef<typeof ContextMenuPrimitive.Content>,
|
|
67
|
+
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>
|
|
68
|
+
>(({ className, ...props }, ref) => (
|
|
69
|
+
<ContextMenuPrimitive.Portal>
|
|
70
|
+
<ContextMenuPrimitive.Content
|
|
71
|
+
ref={ref}
|
|
87
72
|
className={cn(
|
|
88
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2
|
|
73
|
+
"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]",
|
|
89
74
|
className
|
|
90
75
|
)}
|
|
91
76
|
{...props}
|
|
92
77
|
/>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
function ContextMenuContent({
|
|
97
|
-
className,
|
|
98
|
-
...props
|
|
99
|
-
}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {
|
|
100
|
-
return (
|
|
101
|
-
<ContextMenuPrimitive.Portal>
|
|
102
|
-
<ContextMenuPrimitive.Content
|
|
103
|
-
data-slot="context-menu-content"
|
|
104
|
-
className={cn(
|
|
105
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
106
|
-
className
|
|
107
|
-
)}
|
|
108
|
-
{...props}
|
|
109
|
-
/>
|
|
110
|
-
</ContextMenuPrimitive.Portal>
|
|
111
|
-
)
|
|
112
|
-
}
|
|
78
|
+
</ContextMenuPrimitive.Portal>
|
|
79
|
+
))
|
|
80
|
+
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName
|
|
113
81
|
|
|
114
82
|
const ContextMenuItem = React.forwardRef<
|
|
115
83
|
React.ElementRef<typeof ContextMenuPrimitive.Item>,
|
|
116
84
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {
|
|
117
85
|
inset?: boolean
|
|
118
|
-
variant?: "default" | "destructive"
|
|
119
86
|
}
|
|
120
|
-
>(({ className, inset,
|
|
87
|
+
>(({ className, inset, ...props }, ref) => (
|
|
121
88
|
<ContextMenuPrimitive.Item
|
|
122
89
|
ref={ref}
|
|
123
|
-
data-slot="context-menu-item"
|
|
124
|
-
data-inset={inset}
|
|
125
|
-
data-variant={variant}
|
|
126
90
|
className={cn(
|
|
127
|
-
"
|
|
91
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
92
|
+
inset && "pl-8",
|
|
128
93
|
className
|
|
129
94
|
)}
|
|
130
95
|
{...props}
|
|
@@ -138,17 +103,16 @@ const ContextMenuCheckboxItem = React.forwardRef<
|
|
|
138
103
|
>(({ className, children, checked, ...props }, ref) => (
|
|
139
104
|
<ContextMenuPrimitive.CheckboxItem
|
|
140
105
|
ref={ref}
|
|
141
|
-
data-slot="context-menu-checkbox-item"
|
|
142
106
|
className={cn(
|
|
143
|
-
"
|
|
107
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
144
108
|
className
|
|
145
109
|
)}
|
|
146
110
|
checked={checked}
|
|
147
111
|
{...props}
|
|
148
112
|
>
|
|
149
|
-
<span className="
|
|
113
|
+
<span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
150
114
|
<ContextMenuPrimitive.ItemIndicator>
|
|
151
|
-
<
|
|
115
|
+
<Check className="h-4 w-4" />
|
|
152
116
|
</ContextMenuPrimitive.ItemIndicator>
|
|
153
117
|
</span>
|
|
154
118
|
{children}
|
|
@@ -163,16 +127,15 @@ const ContextMenuRadioItem = React.forwardRef<
|
|
|
163
127
|
>(({ className, children, ...props }, ref) => (
|
|
164
128
|
<ContextMenuPrimitive.RadioItem
|
|
165
129
|
ref={ref}
|
|
166
|
-
data-slot="context-menu-radio-item"
|
|
167
130
|
className={cn(
|
|
168
|
-
"
|
|
131
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
169
132
|
className
|
|
170
133
|
)}
|
|
171
134
|
{...props}
|
|
172
135
|
>
|
|
173
|
-
<span className="
|
|
136
|
+
<span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
174
137
|
<ContextMenuPrimitive.ItemIndicator>
|
|
175
|
-
<
|
|
138
|
+
<Circle className="h-2 w-2 fill-current" />
|
|
176
139
|
</ContextMenuPrimitive.ItemIndicator>
|
|
177
140
|
</span>
|
|
178
141
|
{children}
|
|
@@ -188,10 +151,9 @@ const ContextMenuLabel = React.forwardRef<
|
|
|
188
151
|
>(({ className, inset, ...props }, ref) => (
|
|
189
152
|
<ContextMenuPrimitive.Label
|
|
190
153
|
ref={ref}
|
|
191
|
-
data-slot="context-menu-label"
|
|
192
|
-
data-inset={inset}
|
|
193
154
|
className={cn(
|
|
194
|
-
"
|
|
155
|
+
"px-2 py-1.5 text-sm font-semibold text-foreground",
|
|
156
|
+
inset && "pl-8",
|
|
195
157
|
className
|
|
196
158
|
)}
|
|
197
159
|
{...props}
|
|
@@ -205,28 +167,27 @@ const ContextMenuSeparator = React.forwardRef<
|
|
|
205
167
|
>(({ className, ...props }, ref) => (
|
|
206
168
|
<ContextMenuPrimitive.Separator
|
|
207
169
|
ref={ref}
|
|
208
|
-
|
|
209
|
-
className={cn("bg-border -mx-1 my-1 h-px", className)}
|
|
170
|
+
className={cn("-mx-1 my-1 h-px bg-border", className)}
|
|
210
171
|
{...props}
|
|
211
172
|
/>
|
|
212
173
|
))
|
|
213
174
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName
|
|
214
175
|
|
|
215
|
-
|
|
176
|
+
const ContextMenuShortcut = ({
|
|
216
177
|
className,
|
|
217
178
|
...props
|
|
218
|
-
}: React.
|
|
179
|
+
}: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
219
180
|
return (
|
|
220
181
|
<span
|
|
221
|
-
data-slot="context-menu-shortcut"
|
|
222
182
|
className={cn(
|
|
223
|
-
"
|
|
183
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
224
184
|
className
|
|
225
185
|
)}
|
|
226
186
|
{...props}
|
|
227
187
|
/>
|
|
228
188
|
)
|
|
229
189
|
}
|
|
190
|
+
ContextMenuShortcut.displayName = "ContextMenuShortcut"
|
|
230
191
|
|
|
231
192
|
export {
|
|
232
193
|
ContextMenu,
|