@object-ui/components 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/ISSUES_FOUND.md +128 -0
- package/README.md +19 -1
- package/README_SHADCN_SYNC.md +281 -0
- package/TESTING.md +335 -0
- package/dist/index.css +1 -1
- package/dist/index.js +30981 -30027
- package/dist/index.umd.cjs +30 -39
- package/dist/src/hooks/use-mobile.d.ts +7 -0
- package/dist/src/index.d.ts +4 -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/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 +7 -0
- package/dist/src/ui/alert-dialog.d.ts +7 -0
- package/dist/src/ui/alert.d.ts +7 -0
- package/dist/src/ui/aspect-ratio.d.ts +7 -0
- package/dist/src/ui/avatar.d.ts +7 -0
- package/dist/src/ui/badge.d.ts +7 -0
- package/dist/src/ui/breadcrumb.d.ts +7 -0
- package/dist/src/ui/button.d.ts +10 -5
- package/dist/src/ui/calendar.d.ts +14 -7
- package/dist/src/ui/card.d.ts +7 -0
- package/dist/src/ui/carousel.d.ts +7 -0
- package/dist/src/ui/checkbox.d.ts +7 -0
- package/dist/src/ui/collapsible.d.ts +7 -0
- package/dist/src/ui/combobox.d.ts +22 -0
- package/dist/src/ui/command.d.ts +7 -0
- package/dist/src/ui/context-menu.d.ts +7 -0
- package/dist/src/ui/date-picker.d.ts +15 -0
- package/dist/src/ui/dialog.d.ts +7 -0
- package/dist/src/ui/drawer.d.ts +7 -0
- package/dist/src/ui/dropdown-menu.d.ts +7 -0
- package/dist/src/ui/filter-builder.d.ts +7 -0
- package/dist/src/ui/form.d.ts +7 -0
- package/dist/src/ui/hover-card.d.ts +7 -0
- package/dist/src/ui/index.d.ts +10 -5
- package/dist/src/ui/input-otp.d.ts +7 -0
- package/dist/src/ui/input.d.ts +7 -0
- package/dist/src/ui/item.d.ts +7 -0
- package/dist/src/ui/kbd.d.ts +7 -0
- package/dist/src/ui/label.d.ts +7 -0
- package/dist/src/ui/menubar.d.ts +7 -0
- package/dist/src/ui/navigation-menu.d.ts +7 -0
- package/dist/src/ui/pagination.d.ts +7 -0
- package/dist/src/ui/popover.d.ts +7 -0
- package/dist/src/ui/progress.d.ts +7 -0
- package/dist/src/ui/radio-group.d.ts +7 -0
- package/dist/src/ui/resizable.d.ts +7 -0
- package/dist/src/ui/scroll-area.d.ts +7 -0
- package/dist/src/ui/select.d.ts +9 -2
- package/dist/src/ui/separator.d.ts +7 -0
- package/dist/src/ui/sheet.d.ts +7 -0
- package/dist/src/ui/sidebar.d.ts +14 -9
- package/dist/src/ui/skeleton.d.ts +7 -0
- package/dist/src/ui/slider.d.ts +7 -0
- package/dist/src/ui/spinner.d.ts +7 -0
- package/dist/src/ui/switch.d.ts +7 -0
- package/dist/src/ui/table.d.ts +15 -8
- package/dist/src/ui/tabs.d.ts +7 -0
- package/dist/src/ui/textarea.d.ts +7 -0
- package/dist/src/ui/toggle-group.d.ts +8 -3
- package/dist/src/ui/toggle.d.ts +7 -0
- package/dist/src/ui/tooltip.d.ts +7 -0
- package/metadata/ObjectGrid.component.yml +72 -0
- package/package.json +23 -11
- package/postcss.config.js +9 -1
- package/shadcn-components.json +310 -0
- package/src/__tests__/README.md +124 -0
- package/src/__tests__/basic-renderers.test.tsx +255 -0
- package/src/__tests__/complex-disclosure-renderers.test.tsx +301 -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/hooks/use-mobile.tsx +8 -0
- package/src/index.css +86 -54
- package/src/index.test.ts +8 -0
- package/src/index.ts +21 -1
- package/src/lib/utils.tsx +8 -0
- package/src/new-components.test.ts +8 -9
- package/src/renderers/basic/button-group.tsx +78 -0
- package/src/renderers/basic/div.tsx +9 -1
- package/src/renderers/basic/html.tsx +8 -0
- package/src/renderers/basic/icon.tsx +66 -3
- package/src/renderers/basic/image.tsx +12 -1
- package/src/renderers/basic/index.ts +11 -0
- package/src/renderers/basic/navigation-menu.tsx +80 -0
- package/src/renderers/basic/pagination.tsx +82 -0
- package/src/renderers/basic/separator.tsx +9 -1
- package/src/renderers/basic/span.tsx +9 -1
- package/src/renderers/basic/text.tsx +8 -0
- package/src/renderers/complex/__tests__/data-table.test.ts +8 -0
- package/src/renderers/complex/carousel.tsx +11 -3
- package/src/renderers/complex/data-table.tsx +19 -4
- package/src/renderers/complex/filter-builder.tsx +8 -0
- package/src/renderers/complex/index.ts +9 -3
- package/src/renderers/complex/resizable.tsx +8 -0
- package/src/renderers/complex/scroll-area.tsx +8 -0
- package/src/renderers/complex/table.tsx +10 -2
- package/src/renderers/data-display/alert.tsx +8 -0
- package/src/renderers/data-display/avatar.tsx +8 -0
- package/src/renderers/data-display/badge.tsx +8 -0
- package/src/renderers/data-display/breadcrumb.tsx +59 -0
- package/src/renderers/data-display/index.ts +12 -0
- package/src/renderers/data-display/kbd.tsx +49 -0
- package/src/renderers/data-display/list.tsx +8 -0
- package/src/renderers/data-display/statistic.tsx +24 -43
- package/src/renderers/data-display/table.tsx +68 -0
- package/src/renderers/data-display/tree-view.tsx +26 -37
- package/src/renderers/disclosure/accordion.tsx +8 -0
- package/src/renderers/disclosure/collapsible.tsx +8 -0
- package/src/renderers/disclosure/index.ts +9 -0
- package/src/renderers/disclosure/toggle-group.tsx +77 -0
- package/src/renderers/feedback/empty.tsx +48 -0
- package/src/renderers/feedback/index.ts +12 -0
- package/src/renderers/feedback/loading.tsx +8 -0
- package/src/renderers/feedback/progress.tsx +8 -0
- package/src/renderers/feedback/skeleton.tsx +8 -0
- package/src/renderers/feedback/sonner.tsx +55 -0
- package/src/renderers/feedback/spinner.tsx +54 -0
- package/src/renderers/feedback/toast.tsx +58 -0
- package/src/renderers/feedback/toaster.tsx +13 -17
- package/src/renderers/form/button.tsx +8 -0
- package/src/renderers/form/calendar.tsx +8 -0
- package/src/renderers/form/checkbox.tsx +8 -0
- package/src/renderers/form/combobox.tsx +47 -0
- package/src/renderers/form/command.tsx +57 -0
- package/src/renderers/form/date-picker.tsx +10 -2
- package/src/renderers/form/file-upload.tsx +10 -2
- package/src/renderers/form/form.tsx +12 -3
- package/src/renderers/form/index.ts +10 -0
- package/src/renderers/form/input-otp.tsx +34 -15
- package/src/renderers/form/input.tsx +89 -50
- package/src/renderers/form/label.tsx +8 -0
- package/src/renderers/form/radio-group.tsx +8 -0
- package/src/renderers/form/select.tsx +8 -0
- package/src/renderers/form/slider.tsx +16 -1
- package/src/renderers/form/switch.tsx +8 -0
- package/src/renderers/form/textarea.tsx +8 -0
- package/src/renderers/form/toggle.tsx +8 -0
- package/src/renderers/index.ts +8 -0
- package/src/renderers/layout/aspect-ratio.tsx +50 -0
- package/src/renderers/layout/card.tsx +8 -0
- package/src/renderers/layout/container.tsx +20 -12
- package/src/renderers/layout/flex.tsx +16 -8
- package/src/renderers/layout/grid.tsx +8 -0
- package/src/renderers/layout/index.ts +9 -0
- package/src/renderers/layout/page.tsx +9 -1
- package/src/renderers/layout/semantic.tsx +8 -0
- package/src/renderers/layout/stack.tsx +16 -8
- package/src/renderers/layout/tabs.tsx +8 -0
- package/src/renderers/navigation/header-bar.tsx +9 -1
- package/src/renderers/navigation/index.ts +8 -0
- package/src/renderers/navigation/sidebar.tsx +8 -0
- package/src/renderers/overlay/alert-dialog.tsx +8 -0
- package/src/renderers/overlay/context-menu.tsx +9 -1
- package/src/renderers/overlay/dialog.tsx +8 -0
- package/src/renderers/overlay/drawer.tsx +8 -0
- package/src/renderers/overlay/dropdown-menu.tsx +8 -0
- package/src/renderers/overlay/hover-card.tsx +8 -0
- package/src/renderers/overlay/index.ts +9 -0
- package/src/renderers/overlay/menubar.tsx +75 -0
- package/src/renderers/overlay/popover.tsx +8 -0
- package/src/renderers/overlay/sheet.tsx +8 -0
- package/src/renderers/overlay/tooltip.tsx +8 -0
- package/src/renderers/placeholders.tsx +107 -0
- package/src/ui/accordion.tsx +8 -0
- package/src/ui/alert-dialog.tsx +8 -0
- package/src/ui/alert.tsx +14 -24
- package/src/ui/aspect-ratio.tsx +8 -0
- package/src/ui/avatar.tsx +8 -0
- package/src/ui/badge.tsx +13 -6
- package/src/ui/breadcrumb.tsx +8 -0
- package/src/ui/button-group.tsx +8 -0
- package/src/ui/button.tsx +38 -36
- package/src/ui/calendar.tsx +57 -200
- package/src/ui/card.tsx +8 -0
- package/src/ui/carousel.tsx +8 -0
- package/src/ui/checkbox.tsx +8 -0
- package/src/ui/collapsible.tsx +8 -0
- package/src/ui/combobox.tsx +104 -0
- package/src/ui/command.tsx +8 -0
- package/src/ui/context-menu.tsx +8 -0
- package/src/ui/date-picker.tsx +61 -0
- package/src/ui/dialog.tsx +8 -0
- package/src/ui/drawer.tsx +8 -0
- package/src/ui/dropdown-menu.tsx +8 -0
- package/src/ui/empty.tsx +8 -0
- package/src/ui/filter-builder.tsx +8 -0
- package/src/ui/form.tsx +8 -0
- package/src/ui/hover-card.tsx +8 -0
- package/src/ui/index.ts +11 -5
- package/src/ui/input-otp.tsx +20 -12
- package/src/ui/input.tsx +8 -0
- package/src/ui/item.tsx +8 -0
- package/src/ui/kbd.tsx +8 -0
- package/src/ui/label.tsx +8 -0
- package/src/ui/menubar.tsx +8 -0
- package/src/ui/navigation-menu.tsx +8 -0
- package/src/ui/pagination.tsx +8 -0
- package/src/ui/popover.tsx +9 -1
- package/src/ui/progress.tsx +11 -15
- package/src/ui/radio-group.tsx +8 -0
- package/src/ui/resizable.tsx +8 -0
- package/src/ui/scroll-area.tsx +9 -1
- package/src/ui/select.tsx +17 -9
- package/src/ui/separator.tsx +8 -0
- package/src/ui/sheet.tsx +8 -0
- package/src/ui/sidebar.tsx +34 -15
- package/src/ui/skeleton.tsx +8 -0
- package/src/ui/slider.tsx +8 -0
- package/src/ui/sonner.tsx +12 -20
- package/src/ui/spinner.tsx +11 -23
- package/src/ui/switch.tsx +8 -0
- package/src/ui/table.tsx +102 -97
- package/src/ui/tabs.tsx +8 -0
- package/src/ui/textarea.tsx +8 -0
- package/src/ui/toggle-group.tsx +12 -21
- package/src/ui/toggle.tsx +15 -12
- package/src/ui/tooltip.tsx +8 -0
- package/tsconfig.json +2 -1
- package/vite.config.ts +11 -1
- 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/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/timeline.tsx +0 -266
- package/tailwind.config.js +0 -75
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
import { ComponentRegistry } from '@object-ui/core';
|
|
10
|
+
import type { ToastSchema } from '@object-ui/types';
|
|
11
|
+
import { toast } from 'sonner';
|
|
12
|
+
import { Button } from '../../ui';
|
|
13
|
+
|
|
14
|
+
ComponentRegistry.register('toast',
|
|
15
|
+
({ schema }: { schema: ToastSchema }) => {
|
|
16
|
+
const showToast = () => {
|
|
17
|
+
const toastFn = schema.variant === 'success' ? toast.success :
|
|
18
|
+
schema.variant === 'error' ? toast.error :
|
|
19
|
+
schema.variant === 'warning' ? toast.warning :
|
|
20
|
+
schema.variant === 'info' ? toast.info :
|
|
21
|
+
toast;
|
|
22
|
+
|
|
23
|
+
toastFn(schema.title || 'Notification', {
|
|
24
|
+
description: schema.description,
|
|
25
|
+
duration: schema.duration,
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<Button onClick={showToast} variant={schema.buttonVariant} className={schema.className}>
|
|
31
|
+
{schema.buttonLabel || 'Show Toast'}
|
|
32
|
+
</Button>
|
|
33
|
+
);
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: 'Toast',
|
|
37
|
+
inputs: [
|
|
38
|
+
{ name: 'title', type: 'string', label: 'Title' },
|
|
39
|
+
{ name: 'description', type: 'string', label: 'Description' },
|
|
40
|
+
{
|
|
41
|
+
name: 'variant',
|
|
42
|
+
type: 'enum',
|
|
43
|
+
enum: ['default', 'success', 'warning', 'error', 'info'],
|
|
44
|
+
defaultValue: 'default',
|
|
45
|
+
label: 'Variant'
|
|
46
|
+
},
|
|
47
|
+
{ name: 'duration', type: 'number', label: 'Duration (ms)' },
|
|
48
|
+
{ name: 'buttonLabel', type: 'string', label: 'Button Label' },
|
|
49
|
+
{ name: 'className', type: 'string', label: 'CSS Class' }
|
|
50
|
+
],
|
|
51
|
+
defaultProps: {
|
|
52
|
+
title: 'Notification',
|
|
53
|
+
buttonLabel: 'Show Toast',
|
|
54
|
+
variant: 'default',
|
|
55
|
+
duration: 5000
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
);
|
|
@@ -1,26 +1,22 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { ToasterSchema } from '@object-ui/types';
|
|
3
|
-
import { Toaster as SonnerToaster } from '../../ui';
|
|
4
|
-
import { Toaster as DefaultToaster } from '../../ui';
|
|
5
|
-
// Note: In shadcn/ui typical setup, Toaster is exported from 'components/ui/toaster' and 'components/ui/sonner'.
|
|
6
|
-
// But in @object-ui/ui index.tsx, we need to check if they are exported.
|
|
7
|
-
// Assuming they are exported as Toaster and Sonner (or similar).
|
|
8
|
-
// Let's assume standard exports.
|
|
11
|
+
import { Toaster as SonnerToaster } from '../../ui/sonner';
|
|
9
12
|
|
|
10
13
|
ComponentRegistry.register('toaster',
|
|
11
|
-
(
|
|
12
|
-
|
|
13
|
-
return <SonnerToaster />;
|
|
14
|
-
}
|
|
15
|
-
return <DefaultToaster />;
|
|
14
|
+
() => {
|
|
15
|
+
return <SonnerToaster />;
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
label: 'Toaster',
|
|
19
|
-
inputs: [
|
|
20
|
-
|
|
21
|
-
],
|
|
22
|
-
defaultProps: {
|
|
23
|
-
provider: 'default'
|
|
24
|
-
}
|
|
19
|
+
inputs: [],
|
|
20
|
+
defaultProps: {}
|
|
25
21
|
}
|
|
26
22
|
);
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { ButtonSchema } from '@object-ui/types';
|
|
3
11
|
import { Button } from '../../ui';
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { CalendarSchema } from '@object-ui/types';
|
|
3
11
|
import { Calendar } from '../../ui';
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { CheckboxSchema } from '@object-ui/types';
|
|
3
11
|
import { Checkbox, Label } from '../../ui';
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
import { ComponentRegistry } from '@object-ui/core';
|
|
10
|
+
import type { ComboboxSchema } from '@object-ui/types';
|
|
11
|
+
import { Combobox } from '../../ui';
|
|
12
|
+
|
|
13
|
+
ComponentRegistry.register('combobox',
|
|
14
|
+
({ schema, ...props }: { schema: ComboboxSchema; [key: string]: any }) => {
|
|
15
|
+
const {
|
|
16
|
+
'data-obj-id': dataObjId,
|
|
17
|
+
'data-obj-type': dataObjType,
|
|
18
|
+
style,
|
|
19
|
+
...comboboxProps
|
|
20
|
+
} = props;
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<Combobox
|
|
24
|
+
options={schema.options || []}
|
|
25
|
+
placeholder={schema.placeholder}
|
|
26
|
+
value={schema.value}
|
|
27
|
+
disabled={schema.disabled}
|
|
28
|
+
className={schema.className}
|
|
29
|
+
{...comboboxProps}
|
|
30
|
+
{...{ 'data-obj-id': dataObjId, 'data-obj-type': dataObjType, style }}
|
|
31
|
+
/>
|
|
32
|
+
);
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
label: 'Combobox',
|
|
36
|
+
inputs: [
|
|
37
|
+
{ name: 'placeholder', type: 'string', label: 'Placeholder' },
|
|
38
|
+
{ name: 'value', type: 'string', label: 'Value' },
|
|
39
|
+
{ name: 'disabled', type: 'boolean', label: 'Disabled', defaultValue: false },
|
|
40
|
+
{ name: 'className', type: 'string', label: 'CSS Class' }
|
|
41
|
+
],
|
|
42
|
+
defaultProps: {
|
|
43
|
+
placeholder: 'Select option...',
|
|
44
|
+
options: []
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
);
|
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
import { ComponentRegistry } from '@object-ui/core';
|
|
10
|
+
import type { CommandSchema } from '@object-ui/types';
|
|
11
|
+
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../../ui/command';
|
|
12
|
+
|
|
13
|
+
ComponentRegistry.register('command',
|
|
14
|
+
({ schema, ...props }: { schema: CommandSchema; [key: string]: any }) => {
|
|
15
|
+
const {
|
|
16
|
+
'data-obj-id': dataObjId,
|
|
17
|
+
'data-obj-type': dataObjType,
|
|
18
|
+
style,
|
|
19
|
+
...commandProps
|
|
20
|
+
} = props;
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<Command
|
|
24
|
+
className={schema.className}
|
|
25
|
+
{...commandProps}
|
|
26
|
+
{...{ 'data-obj-id': dataObjId, 'data-obj-type': dataObjType, style }}
|
|
27
|
+
>
|
|
28
|
+
<CommandInput placeholder={schema.placeholder || 'Type a command or search...'} />
|
|
29
|
+
<CommandList>
|
|
30
|
+
<CommandEmpty>{schema.emptyText || 'No results found.'}</CommandEmpty>
|
|
31
|
+
{schema.groups?.map((group, idx) => (
|
|
32
|
+
<CommandGroup key={idx} heading={group.heading}>
|
|
33
|
+
{group.items?.map((item, itemIdx) => (
|
|
34
|
+
<CommandItem key={itemIdx} value={item.value}>
|
|
35
|
+
{item.label}
|
|
36
|
+
</CommandItem>
|
|
37
|
+
))}
|
|
38
|
+
</CommandGroup>
|
|
39
|
+
))}
|
|
40
|
+
</CommandList>
|
|
41
|
+
</Command>
|
|
42
|
+
);
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
label: 'Command',
|
|
46
|
+
inputs: [
|
|
47
|
+
{ name: 'placeholder', type: 'string', label: 'Placeholder' },
|
|
48
|
+
{ name: 'emptyText', type: 'string', label: 'Empty Text' },
|
|
49
|
+
{ name: 'className', type: 'string', label: 'CSS Class' }
|
|
50
|
+
],
|
|
51
|
+
defaultProps: {
|
|
52
|
+
placeholder: 'Type a command or search...',
|
|
53
|
+
emptyText: 'No results found.',
|
|
54
|
+
groups: []
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
);
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { DatePickerSchema } from '@object-ui/types';
|
|
3
11
|
import { Calendar, Button, Popover, PopoverTrigger, PopoverContent, Label } from '../../ui';
|
|
@@ -35,8 +43,8 @@ ComponentRegistry.register('date-picker',
|
|
|
35
43
|
id={schema.id}
|
|
36
44
|
variant="outline"
|
|
37
45
|
className={cn(
|
|
38
|
-
'w-full justify-start text-left font-normal
|
|
39
|
-
!value
|
|
46
|
+
'w-full justify-start text-left font-normal',
|
|
47
|
+
!value && 'text-muted-foreground',
|
|
40
48
|
className
|
|
41
49
|
)}
|
|
42
50
|
{...triggerProps}
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { FileUploadSchema } from '@object-ui/types';
|
|
3
11
|
import { Label, Button } from '../../ui';
|
|
@@ -87,7 +95,7 @@ ComponentRegistry.register('file-upload',
|
|
|
87
95
|
<div
|
|
88
96
|
onClick={handleClick}
|
|
89
97
|
className={cn(
|
|
90
|
-
"relative overflow-hidden cursor-pointer rounded-lg border-2 border-dashed transition-all duration-300 min-h-[120px] flex flex-col items-center justify-center p-6 gap-3",
|
|
98
|
+
"relative overflow-hidden cursor-pointer rounded-lg border-2 border-dashed transition-all duration-300 min-h-[120px] flex flex-col items-center justify-center p-4 sm:p-6 gap-3",
|
|
91
99
|
isUploading
|
|
92
100
|
? "border-cyan-400 bg-cyan-950/30"
|
|
93
101
|
: "border-slate-700 bg-slate-900/50 hover:bg-slate-900 hover:border-cyan-500/50 hover:shadow-[0_0_20px_-5px_rgba(6,182,212,0.3)]"
|
|
@@ -133,7 +141,7 @@ ComponentRegistry.register('file-upload',
|
|
|
133
141
|
|
|
134
142
|
<div className="flex items-center gap-3 z-10">
|
|
135
143
|
<CheckCircle2 className="w-4 h-4 text-emerald-500 rounded-full" />
|
|
136
|
-
<span className="truncate max-w-[200px] text-muted-foreground group-hover/file:text-foreground font-mono text-xs transition-colors">{file.name}</span>
|
|
144
|
+
<span className="truncate max-w-[150px] sm:max-w-[200px] md:max-w-[300px] text-muted-foreground group-hover/file:text-foreground font-mono text-xs transition-colors">{file.name}</span>
|
|
137
145
|
</div>
|
|
138
146
|
|
|
139
147
|
<Button
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { FormSchema, FormField as FormFieldConfig, ValidationRule, FieldCondition, SelectOption } from '@object-ui/types';
|
|
3
11
|
import { useForm } from 'react-hook-form';
|
|
@@ -118,11 +126,12 @@ ComponentRegistry.register('form',
|
|
|
118
126
|
};
|
|
119
127
|
|
|
120
128
|
// Determine grid classes based on columns (explicit classes for Tailwind JIT)
|
|
129
|
+
// Mobile-first: 1 column on mobile, 2 on sm, then md/lg for larger values
|
|
121
130
|
const gridColsClass =
|
|
122
131
|
columns === 1 ? '' :
|
|
123
|
-
columns === 2 ? '
|
|
124
|
-
columns === 3 ? 'md:grid-cols-3' :
|
|
125
|
-
'md:grid-cols-4';
|
|
132
|
+
columns === 2 ? 'sm:grid-cols-2' :
|
|
133
|
+
columns === 3 ? 'sm:grid-cols-2 md:grid-cols-3' :
|
|
134
|
+
'sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4';
|
|
126
135
|
|
|
127
136
|
const gridClass = columns > 1
|
|
128
137
|
? cn('grid gap-4', gridColsClass)
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import './form';
|
|
2
10
|
import './button';
|
|
3
11
|
import './label';
|
|
@@ -14,3 +22,5 @@ import './input-otp';
|
|
|
14
22
|
import './calendar';
|
|
15
23
|
import './date-picker';
|
|
16
24
|
import './file-upload';
|
|
25
|
+
import './combobox';
|
|
26
|
+
import './command';
|
|
@@ -1,23 +1,42 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { InputOTPSchema } from '@object-ui/types';
|
|
3
11
|
import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '../../ui';
|
|
4
12
|
|
|
5
13
|
ComponentRegistry.register('input-otp',
|
|
6
|
-
({ schema, className, ...props }: { schema: InputOTPSchema; className?: string; [key: string]: any }) =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
({ schema, className, onChange, value, ...props }: { schema: InputOTPSchema; className?: string; [key: string]: any }) => {
|
|
15
|
+
const length = schema.maxLength || 6;
|
|
16
|
+
const slots = Array.from({ length });
|
|
17
|
+
|
|
18
|
+
const handleChange = (val: string) => {
|
|
19
|
+
if (onChange) {
|
|
20
|
+
onChange(val);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<InputOTP
|
|
26
|
+
maxLength={length}
|
|
27
|
+
className={className}
|
|
28
|
+
value={value ?? schema.value}
|
|
29
|
+
onChange={handleChange}
|
|
30
|
+
{...props}
|
|
31
|
+
>
|
|
32
|
+
<InputOTPGroup>
|
|
33
|
+
{slots.map((_, i) => (
|
|
34
|
+
<InputOTPSlot key={i} index={i} />
|
|
35
|
+
))}
|
|
36
|
+
</InputOTPGroup>
|
|
37
|
+
</InputOTP>
|
|
38
|
+
);
|
|
39
|
+
},
|
|
21
40
|
{
|
|
22
41
|
label: 'Input OTP',
|
|
23
42
|
inputs: [
|
|
@@ -1,61 +1,68 @@
|
|
|
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
|
import React from 'react';
|
|
2
10
|
import { ComponentRegistry } from '@object-ui/core';
|
|
3
11
|
import type { InputSchema } from '@object-ui/types';
|
|
4
12
|
import { Input, Label } from '../../ui';
|
|
5
13
|
import { cn } from '../../lib/utils';
|
|
6
14
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
const InputRenderer = ({ schema, className, onChange, value, ...props }: { schema: InputSchema; className?: string; onChange?: (val: any) => void; value?: any; [key: string]: any }) => {
|
|
16
|
+
// Handle change for both raw inputs and form-bound inputs
|
|
17
|
+
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
18
|
+
if (onChange) {
|
|
19
|
+
onChange(e.target.value);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// Extract designer-related props to apply to the wrapper
|
|
24
|
+
// These props are injected by SchemaRenderer for designer interaction
|
|
25
|
+
const {
|
|
26
|
+
'data-obj-id': dataObjId,
|
|
27
|
+
'data-obj-type': dataObjType,
|
|
28
|
+
style,
|
|
29
|
+
...inputProps
|
|
30
|
+
} = props;
|
|
16
31
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
style
|
|
23
|
-
|
|
24
|
-
|
|
32
|
+
return (
|
|
33
|
+
<div
|
|
34
|
+
className={cn("grid w-full items-center gap-1.5", schema.wrapperClass)}
|
|
35
|
+
data-obj-id={dataObjId}
|
|
36
|
+
data-obj-type={dataObjType}
|
|
37
|
+
style={style}
|
|
38
|
+
>
|
|
39
|
+
{schema.label && <Label htmlFor={schema.id} className={cn(schema.required && "text-destructive after:content-['*'] after:ml-0.5")}>{schema.label}</Label>}
|
|
40
|
+
<Input
|
|
41
|
+
type={schema.inputType || 'text'}
|
|
42
|
+
id={schema.id}
|
|
43
|
+
name={schema.name}
|
|
44
|
+
placeholder={schema.placeholder}
|
|
45
|
+
className={className}
|
|
46
|
+
required={schema.required}
|
|
47
|
+
disabled={schema.disabled}
|
|
48
|
+
readOnly={schema.readOnly}
|
|
49
|
+
value={value ?? schema.value ?? ''} // Controlled if value provided
|
|
50
|
+
defaultValue={value === undefined ? schema.defaultValue : undefined}
|
|
51
|
+
onChange={handleChange}
|
|
52
|
+
min={schema.min}
|
|
53
|
+
max={schema.max}
|
|
54
|
+
step={schema.step}
|
|
55
|
+
maxLength={schema.maxLength}
|
|
56
|
+
pattern={schema.pattern}
|
|
57
|
+
{...inputProps}
|
|
58
|
+
/>
|
|
59
|
+
{schema.description && <p className="text-sm text-muted-foreground">{schema.description}</p>}
|
|
60
|
+
{schema.error && <p className="text-sm font-medium text-destructive">{schema.error}</p>}
|
|
61
|
+
</div>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
25
64
|
|
|
26
|
-
|
|
27
|
-
<div
|
|
28
|
-
className={cn("grid w-full items-center gap-1.5", schema.wrapperClass)}
|
|
29
|
-
data-obj-id={dataObjId}
|
|
30
|
-
data-obj-type={dataObjType}
|
|
31
|
-
style={style}
|
|
32
|
-
>
|
|
33
|
-
{schema.label && <Label htmlFor={schema.id} className={cn(schema.required && "text-destructive after:content-['*'] after:ml-0.5")}>{schema.label}</Label>}
|
|
34
|
-
<Input
|
|
35
|
-
type={schema.inputType || 'text'}
|
|
36
|
-
id={schema.id}
|
|
37
|
-
name={schema.name}
|
|
38
|
-
placeholder={schema.placeholder}
|
|
39
|
-
className={className}
|
|
40
|
-
required={schema.required}
|
|
41
|
-
disabled={schema.disabled}
|
|
42
|
-
readOnly={schema.readOnly}
|
|
43
|
-
value={value ?? schema.value ?? ''} // Controlled if value provided
|
|
44
|
-
defaultValue={value === undefined ? schema.defaultValue : undefined}
|
|
45
|
-
onChange={handleChange}
|
|
46
|
-
min={schema.min}
|
|
47
|
-
max={schema.max}
|
|
48
|
-
step={schema.step}
|
|
49
|
-
maxLength={schema.maxLength}
|
|
50
|
-
pattern={schema.pattern}
|
|
51
|
-
{...inputProps}
|
|
52
|
-
/>
|
|
53
|
-
{schema.description && <p className="text-sm text-muted-foreground">{schema.description}</p>}
|
|
54
|
-
{schema.error && <p className="text-sm font-medium text-destructive">{schema.error}</p>}
|
|
55
|
-
</div>
|
|
56
|
-
);
|
|
57
|
-
},
|
|
58
|
-
{
|
|
65
|
+
ComponentRegistry.register('input', InputRenderer, {
|
|
59
66
|
label: 'Input Field',
|
|
60
67
|
inputs: [
|
|
61
68
|
{ name: 'label', type: 'string', label: 'Label' },
|
|
@@ -77,3 +84,35 @@ ComponentRegistry.register('input',
|
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
);
|
|
87
|
+
|
|
88
|
+
ComponentRegistry.register('email',
|
|
89
|
+
(props: any) => <InputRenderer {...props} schema={{ ...props.schema, inputType: 'email' }} />,
|
|
90
|
+
{
|
|
91
|
+
label: 'Email Input',
|
|
92
|
+
icon: 'mail',
|
|
93
|
+
inputs: [
|
|
94
|
+
{ name: 'label', type: 'string', label: 'Label' },
|
|
95
|
+
{ name: 'name', type: 'string', label: 'Field Name' },
|
|
96
|
+
{ name: 'placeholder', type: 'string', label: 'Placeholder' },
|
|
97
|
+
{ name: 'required', type: 'boolean', label: 'Required' },
|
|
98
|
+
{ name: 'disabled', type: 'boolean', label: 'Disabled' },
|
|
99
|
+
{ name: 'description', type: 'string', label: 'Description' }
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
ComponentRegistry.register('password',
|
|
105
|
+
(props: any) => <InputRenderer {...props} schema={{ ...props.schema, inputType: 'password' }} />,
|
|
106
|
+
{
|
|
107
|
+
label: 'Password Input',
|
|
108
|
+
icon: 'lock',
|
|
109
|
+
inputs: [
|
|
110
|
+
{ name: 'label', type: 'string', label: 'Label' },
|
|
111
|
+
{ name: 'name', type: 'string', label: 'Field Name' },
|
|
112
|
+
{ name: 'placeholder', type: 'string', label: 'Placeholder' },
|
|
113
|
+
{ name: 'required', type: 'boolean', label: 'Required' },
|
|
114
|
+
{ name: 'disabled', type: 'boolean', label: 'Disabled' },
|
|
115
|
+
{ name: 'description', type: 'string', label: 'Description' }
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
);
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { LabelSchema } from '@object-ui/types';
|
|
3
11
|
import { Label } from '../../ui';
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { RadioGroupSchema } from '@object-ui/types';
|
|
3
11
|
import { RadioGroup, RadioGroupItem, Label } from '../../ui';
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { SelectSchema } from '@object-ui/types';
|
|
3
11
|
import {
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { SliderSchema } from '@object-ui/types';
|
|
3
11
|
import { Slider } from '../../ui';
|
|
@@ -12,9 +20,16 @@ ComponentRegistry.register('slider',
|
|
|
12
20
|
...sliderProps
|
|
13
21
|
} = props;
|
|
14
22
|
|
|
23
|
+
// Ensure defaultValue is an array for backward compatibility
|
|
24
|
+
const defaultValue = Array.isArray(schema.defaultValue)
|
|
25
|
+
? schema.defaultValue
|
|
26
|
+
: schema.defaultValue !== undefined
|
|
27
|
+
? [schema.defaultValue]
|
|
28
|
+
: undefined;
|
|
29
|
+
|
|
15
30
|
return (
|
|
16
31
|
<Slider
|
|
17
|
-
defaultValue={
|
|
32
|
+
defaultValue={defaultValue}
|
|
18
33
|
max={schema.max}
|
|
19
34
|
min={schema.min}
|
|
20
35
|
step={schema.step}
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { SwitchSchema } from '@object-ui/types';
|
|
3
11
|
import { Switch, Label } from '../../ui';
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { TextareaSchema } from '@object-ui/types';
|
|
3
11
|
import { Textarea, Label } from '../../ui';
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
import { ComponentRegistry } from '@object-ui/core';
|
|
2
10
|
import type { ToggleSchema } from '@object-ui/types';
|
|
3
11
|
import { Toggle, ToggleGroup, ToggleGroupItem } from '../../ui';
|