@object-ui/components 3.3.0 → 3.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 +20 -0
- package/README.md +21 -1
- package/dist/index.css +6339 -2
- package/dist/index.js +17600 -17481
- package/dist/index.umd.cjs +36 -36
- package/dist/packages/components/src/custom/empty.d.ts +12 -1
- package/dist/packages/components/src/renderers/action/action-bar.d.ts +12 -1
- package/dist/packages/components/src/ui/chart.d.ts +10 -29
- package/package.json +65 -44
- package/.turbo/turbo-build.log +0 -84
- package/README_SHADCN_SYNC.md +0 -281
- package/TESTING.md +0 -335
- package/docs/FilterBuilder.md +0 -268
- package/metadata/Chart.component.yml +0 -30
- package/metadata/FilterBuilder.component.yml +0 -39
- package/metadata/GridLayout.component.yml +0 -27
- package/metadata/Menu.component.yml +0 -31
- package/metadata/ObjectForm.component.yml +0 -34
- package/metadata/ObjectGrid.component.yml +0 -72
- package/metadata/Page.component.yml +0 -24
- package/postcss.config.js +0 -14
- package/shadcn-components.json +0 -440
- package/src/SchemaRenderer.tsx +0 -28
- package/src/__tests__/PageRendererRegions.test.tsx +0 -668
- package/src/__tests__/README.md +0 -124
- package/src/__tests__/__snapshots__/snapshot-critical.test.tsx.snap +0 -811
- package/src/__tests__/__snapshots__/snapshot.test.tsx.snap +0 -327
- package/src/__tests__/accessibility.test.tsx +0 -137
- package/src/__tests__/action-bar.test.tsx +0 -206
- package/src/__tests__/api-consistency.test.tsx +0 -596
- package/src/__tests__/basic-renderers.test.tsx +0 -255
- package/src/__tests__/color-contrast.test.tsx +0 -212
- package/src/__tests__/complex-disclosure-renderers.test.tsx +0 -302
- package/src/__tests__/compliance.test.tsx +0 -72
- package/src/__tests__/config-field-renderer.test.tsx +0 -307
- package/src/__tests__/config-panel-renderer.test.tsx +0 -580
- package/src/__tests__/config-primitives.test.tsx +0 -106
- package/src/__tests__/edge-cases.test.tsx +0 -285
- package/src/__tests__/feedback-overlay-renderers.test.tsx +0 -349
- package/src/__tests__/filter-builder.test.tsx +0 -409
- package/src/__tests__/form-renderers.test.tsx +0 -364
- package/src/__tests__/layout-data-renderers.test.tsx +0 -340
- package/src/__tests__/mobile-accessibility.test.tsx +0 -120
- package/src/__tests__/navigation-overlay.test.tsx +0 -370
- package/src/__tests__/snapshot-critical.test.tsx +0 -317
- package/src/__tests__/snapshot.test.tsx +0 -205
- package/src/__tests__/test-utils.tsx +0 -190
- package/src/__tests__/use-config-draft.test.tsx +0 -295
- package/src/__tests__/view-compliance.test.tsx +0 -153
- package/src/__tests__/wcag-audit.test.tsx +0 -493
- package/src/custom/action-param-dialog.tsx +0 -264
- package/src/custom/button-group.tsx +0 -91
- package/src/custom/combobox.tsx +0 -104
- package/src/custom/config-field-renderer.tsx +0 -276
- package/src/custom/config-panel-renderer.tsx +0 -306
- package/src/custom/config-row.tsx +0 -50
- package/src/custom/date-picker.tsx +0 -61
- package/src/custom/empty.tsx +0 -112
- package/src/custom/field.tsx +0 -81
- package/src/custom/filter-builder.tsx +0 -418
- package/src/custom/index.ts +0 -21
- package/src/custom/input-group.tsx +0 -53
- package/src/custom/item.tsx +0 -201
- package/src/custom/kbd.tsx +0 -36
- package/src/custom/mobile-dialog-content.tsx +0 -67
- package/src/custom/native-select.tsx +0 -33
- package/src/custom/navigation-overlay.tsx +0 -334
- package/src/custom/section-header.tsx +0 -68
- package/src/custom/sort-builder.tsx +0 -129
- package/src/custom/spinner.tsx +0 -26
- package/src/custom/view-skeleton.tsx +0 -243
- package/src/custom/view-states.tsx +0 -153
- package/src/debug/DebugPanel.tsx +0 -313
- package/src/debug/__tests__/DebugPanel.test.tsx +0 -134
- package/src/debug/index.ts +0 -10
- package/src/hooks/use-config-draft.ts +0 -127
- package/src/hooks/use-mobile.tsx +0 -27
- package/src/index.css +0 -245
- package/src/index.ts +0 -47
- package/src/lib/use-sync-external-store-shim.ts +0 -10
- package/src/lib/use-sync-external-store-with-selector-shim.ts +0 -90
- package/src/lib/utils.tsx +0 -35
- package/src/new-components.test.ts +0 -73
- package/src/renderers/action/action-bar.tsx +0 -221
- package/src/renderers/action/action-button.tsx +0 -158
- package/src/renderers/action/action-group.tsx +0 -270
- package/src/renderers/action/action-icon.tsx +0 -150
- package/src/renderers/action/action-menu.tsx +0 -203
- package/src/renderers/action/index.ts +0 -19
- package/src/renderers/action/resolve-icon.ts +0 -35
- package/src/renderers/basic/button-group.tsx +0 -79
- package/src/renderers/basic/div.tsx +0 -60
- package/src/renderers/basic/html.tsx +0 -43
- package/src/renderers/basic/icon.tsx +0 -89
- package/src/renderers/basic/image.tsx +0 -49
- package/src/renderers/basic/index.ts +0 -18
- package/src/renderers/basic/navigation-menu.tsx +0 -81
- package/src/renderers/basic/pagination.tsx +0 -109
- package/src/renderers/basic/separator.tsx +0 -57
- package/src/renderers/basic/span.tsx +0 -63
- package/src/renderers/basic/text.tsx +0 -52
- package/src/renderers/complex/README-KANBAN.md +0 -208
- package/src/renderers/complex/TIMELINE.md +0 -353
- package/src/renderers/complex/__tests__/data-table-airtable-ux.test.tsx +0 -239
- package/src/renderers/complex/__tests__/data-table-batch-editing.test.tsx +0 -275
- package/src/renderers/complex/__tests__/data-table-cell-renderer.test.tsx +0 -120
- package/src/renderers/complex/__tests__/data-table-editing.test.tsx +0 -221
- package/src/renderers/complex/__tests__/data-table.test.ts +0 -76
- package/src/renderers/complex/carousel.tsx +0 -69
- package/src/renderers/complex/data-table.tsx +0 -1243
- package/src/renderers/complex/filter-builder.tsx +0 -77
- package/src/renderers/complex/index.ts +0 -16
- package/src/renderers/complex/resizable.tsx +0 -66
- package/src/renderers/complex/scroll-area.tsx +0 -58
- package/src/renderers/complex/table.tsx +0 -95
- package/src/renderers/data-display/alert.tsx +0 -46
- package/src/renderers/data-display/avatar.tsx +0 -38
- package/src/renderers/data-display/badge.tsx +0 -55
- package/src/renderers/data-display/breadcrumb.tsx +0 -61
- package/src/renderers/data-display/index.ts +0 -18
- package/src/renderers/data-display/kbd.tsx +0 -50
- package/src/renderers/data-display/list.tsx +0 -75
- package/src/renderers/data-display/statistic.tsx +0 -95
- package/src/renderers/data-display/table.tsx +0 -78
- package/src/renderers/data-display/tree-view.tsx +0 -176
- package/src/renderers/disclosure/accordion.tsx +0 -69
- package/src/renderers/disclosure/collapsible.tsx +0 -53
- package/src/renderers/disclosure/index.ts +0 -11
- package/src/renderers/disclosure/toggle-group.tsx +0 -79
- package/src/renderers/feedback/empty.tsx +0 -49
- package/src/renderers/feedback/index.ts +0 -16
- package/src/renderers/feedback/loading.tsx +0 -78
- package/src/renderers/feedback/progress.tsx +0 -29
- package/src/renderers/feedback/skeleton.tsx +0 -31
- package/src/renderers/feedback/sonner.tsx +0 -56
- package/src/renderers/feedback/spinner.tsx +0 -55
- package/src/renderers/feedback/toast.tsx +0 -59
- package/src/renderers/feedback/toaster.tsx +0 -23
- package/src/renderers/form/button.tsx +0 -103
- package/src/renderers/form/calendar.tsx +0 -34
- package/src/renderers/form/checkbox.tsx +0 -71
- package/src/renderers/form/combobox.tsx +0 -48
- package/src/renderers/form/command.tsx +0 -58
- package/src/renderers/form/date-picker.tsx +0 -84
- package/src/renderers/form/file-upload.tsx +0 -184
- package/src/renderers/form/form.tsx +0 -540
- package/src/renderers/form/index.ts +0 -26
- package/src/renderers/form/input-otp.tsx +0 -51
- package/src/renderers/form/input.tsx +0 -121
- package/src/renderers/form/label.tsx +0 -45
- package/src/renderers/form/radio-group.tsx +0 -63
- package/src/renderers/form/select.tsx +0 -94
- package/src/renderers/form/slider.tsx +0 -61
- package/src/renderers/form/switch.tsx +0 -48
- package/src/renderers/form/textarea.tsx +0 -76
- package/src/renderers/form/toggle.tsx +0 -42
- package/src/renderers/index.ts +0 -18
- package/src/renderers/layout/aspect-ratio.tsx +0 -51
- package/src/renderers/layout/card.tsx +0 -85
- package/src/renderers/layout/container.tsx +0 -122
- package/src/renderers/layout/flex.tsx +0 -132
- package/src/renderers/layout/grid.tsx +0 -178
- package/src/renderers/layout/index.ts +0 -19
- package/src/renderers/layout/page.tsx +0 -466
- package/src/renderers/layout/semantic.tsx +0 -48
- package/src/renderers/layout/stack.tsx +0 -132
- package/src/renderers/layout/tabs.tsx +0 -97
- package/src/renderers/navigation/header-bar.tsx +0 -118
- package/src/renderers/navigation/index.ts +0 -10
- package/src/renderers/navigation/sidebar.tsx +0 -208
- package/src/renderers/overlay/alert-dialog.tsx +0 -72
- package/src/renderers/overlay/context-menu.tsx +0 -100
- package/src/renderers/overlay/dialog.tsx +0 -77
- package/src/renderers/overlay/drawer.tsx +0 -77
- package/src/renderers/overlay/dropdown-menu.tsx +0 -99
- package/src/renderers/overlay/hover-card.tsx +0 -55
- package/src/renderers/overlay/index.ts +0 -18
- package/src/renderers/overlay/menubar.tsx +0 -76
- package/src/renderers/overlay/popover.tsx +0 -56
- package/src/renderers/overlay/sheet.tsx +0 -77
- package/src/renderers/overlay/tooltip.tsx +0 -67
- package/src/renderers/placeholders.tsx +0 -107
- package/src/stories/CRMApp.stories.tsx +0 -706
- package/src/stories/ConfigPanel.stories.tsx +0 -232
- package/src/stories/Guide.mdx +0 -55
- package/src/stories/MockedData.stories.tsx +0 -121
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +0 -1
- 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 +0 -1
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +0 -1
- 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 +0 -1
- package/src/stories/assets/youtube.svg +0 -1
- package/src/stories/button.css +0 -30
- package/src/stories/header.css +0 -32
- package/src/stories/page.css +0 -68
- package/src/stories-json/Accessibility.mdx +0 -297
- package/src/stories-json/EdgeCases.stories.tsx +0 -160
- package/src/stories-json/GettingStarted.mdx +0 -89
- package/src/stories-json/Introduction.mdx +0 -127
- package/src/stories-json/accordion.stories.tsx +0 -43
- package/src/stories-json/aggrid.stories.tsx +0 -103
- package/src/stories-json/alert.stories.tsx +0 -39
- package/src/stories-json/aspect-ratio.stories.tsx +0 -34
- package/src/stories-json/avatar.stories.tsx +0 -38
- package/src/stories-json/badge.stories.tsx +0 -53
- package/src/stories-json/breadcrumb.stories.tsx +0 -30
- package/src/stories-json/button-group.stories.tsx +0 -43
- package/src/stories-json/button.stories.tsx +0 -73
- package/src/stories-json/calendar.stories.tsx +0 -85
- package/src/stories-json/card.stories.tsx +0 -48
- package/src/stories-json/carousel.stories.tsx +0 -33
- package/src/stories-json/charts.stories.tsx +0 -195
- package/src/stories-json/chatbot.stories.tsx +0 -349
- package/src/stories-json/code-editor.stories.tsx +0 -92
- package/src/stories-json/collapsible.stories.tsx +0 -40
- package/src/stories-json/controls.stories.tsx +0 -36
- package/src/stories-json/crm-live-data.stories.tsx +0 -154
- package/src/stories-json/dashboard.stories.tsx +0 -318
- package/src/stories-json/data-table.stories.tsx +0 -136
- package/src/stories-json/data_display_extras.stories.tsx +0 -102
- package/src/stories-json/date-picker.stories.tsx +0 -28
- package/src/stories-json/detail-view.stories.tsx +0 -258
- package/src/stories-json/dialog.stories.tsx +0 -43
- package/src/stories-json/feedback_extras.stories.tsx +0 -40
- package/src/stories-json/feedback_others.stories.tsx +0 -46
- package/src/stories-json/form-variants.stories.tsx +0 -210
- package/src/stories-json/form_advanced.stories.tsx +0 -117
- package/src/stories-json/form_extras.stories.tsx +0 -123
- package/src/stories-json/grid.stories.tsx +0 -56
- package/src/stories-json/icon.stories.tsx +0 -36
- package/src/stories-json/input.stories.tsx +0 -52
- package/src/stories-json/kanban.stories.tsx +0 -295
- package/src/stories-json/layout_extended.stories.tsx +0 -76
- package/src/stories-json/layout_flex.stories.tsx +0 -107
- package/src/stories-json/list-view.stories.tsx +0 -97
- package/src/stories-json/markdown.stories.tsx +0 -129
- package/src/stories-json/menus.stories.tsx +0 -63
- package/src/stories-json/metric-card.stories.tsx +0 -143
- package/src/stories-json/navigation-menu.stories.tsx +0 -37
- package/src/stories-json/object-aggrid-advanced.stories.tsx +0 -389
- package/src/stories-json/object-aggrid.stories.tsx +0 -252
- package/src/stories-json/object-form.stories.tsx +0 -130
- package/src/stories-json/object-gantt.stories.tsx +0 -114
- package/src/stories-json/object-grid.stories.tsx +0 -315
- package/src/stories-json/object-map.stories.tsx +0 -116
- package/src/stories-json/object-view.stories.tsx +0 -118
- package/src/stories-json/overlay_extras.stories.tsx +0 -113
- package/src/stories-json/overlay_others.stories.tsx +0 -76
- package/src/stories-json/page.stories.tsx +0 -55
- package/src/stories-json/reports.stories.tsx +0 -163
- package/src/stories-json/resizable.stories.tsx +0 -44
- package/src/stories-json/select.stories.tsx +0 -34
- package/src/stories-json/separator.stories.tsx +0 -41
- package/src/stories-json/sidebar.stories.tsx +0 -147
- package/src/stories-json/statistic.stories.tsx +0 -44
- package/src/stories-json/tabs.stories.tsx +0 -51
- package/src/stories-json/timeline.stories.tsx +0 -188
- package/src/stories-json/typography.stories.tsx +0 -45
- package/src/types/config-panel.ts +0 -101
- package/src/ui/accordion.tsx +0 -66
- package/src/ui/alert-dialog.tsx +0 -149
- package/src/ui/alert.tsx +0 -67
- package/src/ui/aspect-ratio.tsx +0 -15
- package/src/ui/avatar.tsx +0 -58
- package/src/ui/badge.tsx +0 -44
- package/src/ui/breadcrumb.tsx +0 -123
- package/src/ui/button.tsx +0 -64
- package/src/ui/calendar.tsx +0 -221
- package/src/ui/card.tsx +0 -87
- package/src/ui/carousel.tsx +0 -270
- package/src/ui/chart.tsx +0 -377
- package/src/ui/checkbox.tsx +0 -38
- package/src/ui/collapsible.tsx +0 -19
- package/src/ui/command.tsx +0 -161
- package/src/ui/context-menu.tsx +0 -208
- package/src/ui/dialog.tsx +0 -130
- package/src/ui/drawer.tsx +0 -126
- package/src/ui/dropdown-menu.tsx +0 -208
- package/src/ui/form.tsx +0 -186
- package/src/ui/hover-card.tsx +0 -37
- package/src/ui/index.ts +0 -56
- package/src/ui/input-otp.tsx +0 -79
- package/src/ui/input.tsx +0 -30
- package/src/ui/label.tsx +0 -34
- package/src/ui/menubar.tsx +0 -264
- package/src/ui/navigation-menu.tsx +0 -136
- package/src/ui/pagination.tsx +0 -125
- package/src/ui/popover.tsx +0 -39
- package/src/ui/progress.tsx +0 -36
- package/src/ui/radio-group.tsx +0 -52
- package/src/ui/resizable.tsx +0 -53
- package/src/ui/scroll-area.tsx +0 -56
- package/src/ui/select.tsx +0 -168
- package/src/ui/separator.tsx +0 -39
- package/src/ui/sheet.tsx +0 -150
- package/src/ui/sidebar.tsx +0 -781
- package/src/ui/skeleton.tsx +0 -23
- package/src/ui/slider.tsx +0 -39
- package/src/ui/sonner.tsx +0 -53
- package/src/ui/switch.tsx +0 -37
- package/src/ui/table.tsx +0 -125
- package/src/ui/tabs.tsx +0 -63
- package/src/ui/textarea.tsx +0 -30
- package/src/ui/toast.tsx +0 -137
- package/src/ui/toggle-group.tsx +0 -69
- package/src/ui/toggle.tsx +0 -53
- package/src/ui/tooltip.tsx +0 -38
- package/src/ui/typography.tsx +0 -85
- package/tsconfig.json +0 -19
- package/vite.config.ts +0 -71
- package/vitest.config.ts +0 -5
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Data Display/Accordion',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'padded' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'accordion',
|
|
24
|
-
className: 'w-[400px]',
|
|
25
|
-
items: [
|
|
26
|
-
{
|
|
27
|
-
label: 'Is it accessible?',
|
|
28
|
-
value: 'item-1',
|
|
29
|
-
content: [{ type: 'text', content: 'Yes. It adheres to the WAI-ARIA design pattern.' }]
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
label: 'Is it styled?',
|
|
33
|
-
value: 'item-2',
|
|
34
|
-
content: [{ type: 'text', content: 'Yes. It comes with default styles that matches the other components\' aesthetic.' }]
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
label: 'Is it animated?',
|
|
38
|
-
value: 'item-3',
|
|
39
|
-
content: [{ type: 'text', content: 'Yes. It\'s animated by default, but you can disable it if you prefer.' }]
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
} as any,
|
|
43
|
-
};
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Plugins/Data Views/AgGrid',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'padded',
|
|
10
|
-
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
|
-
argTypes: {
|
|
13
|
-
schema: { table: { disable: true } },
|
|
14
|
-
},
|
|
15
|
-
} satisfies Meta<any>;
|
|
16
|
-
|
|
17
|
-
export default meta;
|
|
18
|
-
type Story = StoryObj<typeof meta>;
|
|
19
|
-
|
|
20
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
21
|
-
|
|
22
|
-
export const Default: Story = {
|
|
23
|
-
render: renderStory,
|
|
24
|
-
args: {
|
|
25
|
-
type: 'aggrid',
|
|
26
|
-
rowData: [
|
|
27
|
-
{ make: 'Tesla', model: 'Model Y', price: 64950, electric: true },
|
|
28
|
-
{ make: 'Ford', model: 'F-Series', price: 33850, electric: false },
|
|
29
|
-
{ make: 'Toyota', model: 'Corolla', price: 29600, electric: false },
|
|
30
|
-
{ make: 'Mercedes', model: 'EQA', price: 48890, electric: true },
|
|
31
|
-
{ make: 'Fiat', model: '500', price: 15774, electric: false },
|
|
32
|
-
{ make: 'Nissan', model: 'Juke', price: 20675, electric: false },
|
|
33
|
-
{ make: 'Vauxhall', model: 'Corsa', price: 18460, electric: false },
|
|
34
|
-
{ make: 'Volvo', model: 'XC90', price: 72835, electric: false },
|
|
35
|
-
{ make: 'Mercedes', model: 'GLA', price: 47825, electric: false },
|
|
36
|
-
{ make: 'Ford', model: 'Puma', price: 27420, electric: false },
|
|
37
|
-
{ make: 'Volkswagen', model: 'Golf', price: 28850, electric: false },
|
|
38
|
-
{ make: 'Kia', model: 'Sportage', price: 31095, electric: false }
|
|
39
|
-
],
|
|
40
|
-
columnDefs: [
|
|
41
|
-
{ field: 'make', headerName: 'Make', sortable: true, filter: true },
|
|
42
|
-
{ field: 'model', headerName: 'Model', sortable: true, filter: true },
|
|
43
|
-
{ field: 'price', headerName: 'Price', sortable: true, filter: 'agNumberColumnFilter' },
|
|
44
|
-
{ field: 'electric', headerName: 'Electric', sortable: true, filter: true }
|
|
45
|
-
],
|
|
46
|
-
pagination: true,
|
|
47
|
-
paginationPageSize: 10,
|
|
48
|
-
theme: 'quartz',
|
|
49
|
-
height: 500,
|
|
50
|
-
animateRows: true
|
|
51
|
-
} as any,
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const WithPagination: Story = {
|
|
55
|
-
render: renderStory,
|
|
56
|
-
args: {
|
|
57
|
-
type: 'aggrid',
|
|
58
|
-
rowData: [
|
|
59
|
-
{ athlete: 'Michael Phelps', age: 23, country: 'United States', year: 2008, sport: 'Swimming', gold: 8, silver: 0, bronze: 0 },
|
|
60
|
-
{ athlete: 'Natalie Coughlin', age: 25, country: 'United States', year: 2008, sport: 'Swimming', gold: 1, silver: 2, bronze: 3 },
|
|
61
|
-
{ athlete: 'Aleksey Nemov', age: 24, country: 'Russia', year: 2000, sport: 'Gymnastics', gold: 2, silver: 1, bronze: 3 },
|
|
62
|
-
{ athlete: 'Alicia Coutts', age: 24, country: 'Australia', year: 2012, sport: 'Swimming', gold: 1, silver: 3, bronze: 1 },
|
|
63
|
-
{ athlete: 'Missy Franklin', age: 17, country: 'United States', year: 2012, sport: 'Swimming', gold: 4, silver: 0, bronze: 1 },
|
|
64
|
-
],
|
|
65
|
-
columnDefs: [
|
|
66
|
-
{ field: 'athlete', headerName: 'Athlete' },
|
|
67
|
-
{ field: 'age', headerName: 'Age', width: 90 },
|
|
68
|
-
{ field: 'country', headerName: 'Country', width: 120 },
|
|
69
|
-
{ field: 'year', headerName: 'Year', width: 90 },
|
|
70
|
-
{ field: 'sport', headerName: 'Sport', width: 110 },
|
|
71
|
-
{ field: 'gold', headerName: 'Gold', width: 100 },
|
|
72
|
-
{ field: 'silver', headerName: 'Silver', width: 100 },
|
|
73
|
-
{ field: 'bronze', headerName: 'Bronze', width: 100 }
|
|
74
|
-
],
|
|
75
|
-
pagination: true,
|
|
76
|
-
paginationPageSize: 3,
|
|
77
|
-
theme: 'quartz',
|
|
78
|
-
height: 400
|
|
79
|
-
} as any,
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export const AlpineTheme: Story = {
|
|
83
|
-
render: renderStory,
|
|
84
|
-
args: {
|
|
85
|
-
type: 'aggrid',
|
|
86
|
-
rowData: [
|
|
87
|
-
{ product: 'Laptop', category: 'Electronics', price: 1200, stock: 15 },
|
|
88
|
-
{ product: 'Mouse', category: 'Electronics', price: 25, stock: 150 },
|
|
89
|
-
{ product: 'Keyboard', category: 'Electronics', price: 75, stock: 80 },
|
|
90
|
-
{ product: 'Monitor', category: 'Electronics', price: 300, stock: 45 },
|
|
91
|
-
{ product: 'Desk', category: 'Furniture', price: 250, stock: 20 }
|
|
92
|
-
],
|
|
93
|
-
columnDefs: [
|
|
94
|
-
{ field: 'product', headerName: 'Product', sortable: true, filter: true },
|
|
95
|
-
{ field: 'category', headerName: 'Category', sortable: true, filter: true },
|
|
96
|
-
{ field: 'price', headerName: 'Price ($)', sortable: true, filter: 'agNumberColumnFilter' },
|
|
97
|
-
{ field: 'stock', headerName: 'Stock', sortable: true, filter: 'agNumberColumnFilter' }
|
|
98
|
-
],
|
|
99
|
-
theme: 'alpine',
|
|
100
|
-
height: 400,
|
|
101
|
-
domLayout: 'autoHeight'
|
|
102
|
-
} as any,
|
|
103
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Feedback/Alert',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'padded' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'alert',
|
|
24
|
-
title: 'Schema/Data Display/Heads up!',
|
|
25
|
-
description: 'You can add components to your app using the cli.',
|
|
26
|
-
className: 'w-[400px]'
|
|
27
|
-
} as any,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const Destructive: Story = {
|
|
31
|
-
render: renderStory,
|
|
32
|
-
args: {
|
|
33
|
-
type: 'alert',
|
|
34
|
-
variant: 'destructive',
|
|
35
|
-
title: 'Schema/Data Display/Error',
|
|
36
|
-
description: 'Your session has expired. Please log in again.',
|
|
37
|
-
className: 'w-[400px]'
|
|
38
|
-
} as any,
|
|
39
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Data Display/Aspect Ratio',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'centered' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const AspectRatio: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'div',
|
|
24
|
-
className: 'w-[450px]',
|
|
25
|
-
children: [
|
|
26
|
-
{
|
|
27
|
-
type: 'aspect-ratio',
|
|
28
|
-
ratio: 16 / 9,
|
|
29
|
-
image: "https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800&dpr=2&q=80",
|
|
30
|
-
alt: "Photo by Drew Beamer"
|
|
31
|
-
}
|
|
32
|
-
]
|
|
33
|
-
} as any,
|
|
34
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Data Display/Avatar',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'centered' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'avatar',
|
|
24
|
-
src: 'https://github.com/shadcn.png',
|
|
25
|
-
alt: '@shadcn',
|
|
26
|
-
fallback: 'CN'
|
|
27
|
-
} as any,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const Fallback: Story = {
|
|
31
|
-
render: renderStory,
|
|
32
|
-
args: {
|
|
33
|
-
type: 'avatar',
|
|
34
|
-
src: 'https://broken-link',
|
|
35
|
-
alt: '@shadcn',
|
|
36
|
-
fallback: 'CN'
|
|
37
|
-
} as any,
|
|
38
|
-
};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Data Display/Badge',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'centered' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Badge: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'badge',
|
|
24
|
-
label: 'Badge'
|
|
25
|
-
} as any,
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export const Secondary: Story = {
|
|
29
|
-
render: renderStory,
|
|
30
|
-
args: {
|
|
31
|
-
type: 'badge',
|
|
32
|
-
label: 'Secondary',
|
|
33
|
-
variant: 'secondary'
|
|
34
|
-
} as any,
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const Destructive: Story = {
|
|
38
|
-
render: renderStory,
|
|
39
|
-
args: {
|
|
40
|
-
type: 'badge',
|
|
41
|
-
label: 'Destructive',
|
|
42
|
-
variant: 'destructive'
|
|
43
|
-
} as any,
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const Outline: Story = {
|
|
47
|
-
render: renderStory,
|
|
48
|
-
args: {
|
|
49
|
-
type: 'badge',
|
|
50
|
-
label: 'Outline',
|
|
51
|
-
variant: 'outline'
|
|
52
|
-
} as any,
|
|
53
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Navigation/Breadcrumb',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'centered' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'breadcrumb',
|
|
24
|
-
items: [
|
|
25
|
-
{ label: 'Home', href: '/' },
|
|
26
|
-
{ label: 'Components', href: '/components' },
|
|
27
|
-
{ label: 'Breadcrumb' }
|
|
28
|
-
]
|
|
29
|
-
} as any,
|
|
30
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/General/Button Group',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'centered' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'button-group',
|
|
24
|
-
variant: 'outline',
|
|
25
|
-
buttons: [
|
|
26
|
-
{ label: 'Years' },
|
|
27
|
-
{ label: 'Months' },
|
|
28
|
-
{ label: 'Days' }
|
|
29
|
-
]
|
|
30
|
-
} as any,
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const Secondary: Story = {
|
|
34
|
-
render: renderStory,
|
|
35
|
-
args: {
|
|
36
|
-
type: 'button-group',
|
|
37
|
-
variant: 'secondary',
|
|
38
|
-
buttons: [
|
|
39
|
-
{ label: 'Save' },
|
|
40
|
-
{ label: 'Cancel' }
|
|
41
|
-
]
|
|
42
|
-
} as any,
|
|
43
|
-
};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/General/Button',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'centered',
|
|
10
|
-
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
|
-
argTypes: {
|
|
13
|
-
schema: { table: { disable: true } },
|
|
14
|
-
type: { control: "text" },
|
|
15
|
-
props: { control: "object" },
|
|
16
|
-
children: { control: "object" }
|
|
17
|
-
},
|
|
18
|
-
} satisfies Meta<any>;
|
|
19
|
-
|
|
20
|
-
export default meta;
|
|
21
|
-
type Story = StoryObj<typeof meta>;
|
|
22
|
-
|
|
23
|
-
export const Default: Story = {
|
|
24
|
-
render: (args) => {
|
|
25
|
-
// Treat args as the schema definition
|
|
26
|
-
return <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
27
|
-
},
|
|
28
|
-
args: {
|
|
29
|
-
type: 'button',
|
|
30
|
-
props: {
|
|
31
|
-
variant: 'default',
|
|
32
|
-
},
|
|
33
|
-
// Using children array as per spec
|
|
34
|
-
children: [
|
|
35
|
-
{
|
|
36
|
-
type: 'text',
|
|
37
|
-
content: 'Click Me (JSON)'
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
} as any,
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export const Outline: Story = {
|
|
44
|
-
render: (args) => <SchemaRenderer schema={args as unknown as BaseSchema} />,
|
|
45
|
-
args: {
|
|
46
|
-
type: 'button',
|
|
47
|
-
props: {
|
|
48
|
-
variant: 'outline',
|
|
49
|
-
},
|
|
50
|
-
children: [
|
|
51
|
-
{
|
|
52
|
-
type: 'text',
|
|
53
|
-
content: 'Outline Button'
|
|
54
|
-
}
|
|
55
|
-
]
|
|
56
|
-
} as any,
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export const Destructive: Story = {
|
|
60
|
-
render: (args) => <SchemaRenderer schema={args as unknown as BaseSchema} />,
|
|
61
|
-
args: {
|
|
62
|
-
type: 'button',
|
|
63
|
-
props: {
|
|
64
|
-
variant: 'destructive',
|
|
65
|
-
},
|
|
66
|
-
children: [
|
|
67
|
-
{
|
|
68
|
-
type: 'text',
|
|
69
|
-
content: 'Delete'
|
|
70
|
-
}
|
|
71
|
-
]
|
|
72
|
-
} as any,
|
|
73
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Plugins/Scheduling/Calendar',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'padded',
|
|
10
|
-
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
|
-
argTypes: {
|
|
13
|
-
schema: { table: { disable: true } },
|
|
14
|
-
},
|
|
15
|
-
} satisfies Meta<any>;
|
|
16
|
-
|
|
17
|
-
export default meta;
|
|
18
|
-
type Story = StoryObj<typeof meta>;
|
|
19
|
-
|
|
20
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
21
|
-
|
|
22
|
-
export const CalendarView: Story = {
|
|
23
|
-
render: renderStory,
|
|
24
|
-
args: {
|
|
25
|
-
type: 'calendar-view',
|
|
26
|
-
events: [
|
|
27
|
-
{
|
|
28
|
-
id: '1',
|
|
29
|
-
title: 'Schema/Data Display/Team Meeting',
|
|
30
|
-
start: new Date(new Date().getFullYear(), new Date().getMonth(), 15, 10, 0),
|
|
31
|
-
end: new Date(new Date().getFullYear(), new Date().getMonth(), 15, 11, 0),
|
|
32
|
-
color: '#3b82f6'
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: '2',
|
|
36
|
-
title: 'Schema/Data Display/Project Deadline',
|
|
37
|
-
start: new Date(new Date().getFullYear(), new Date().getMonth(), 20),
|
|
38
|
-
end: new Date(new Date().getFullYear(), new Date().getMonth(), 20),
|
|
39
|
-
allDay: true,
|
|
40
|
-
color: '#ef4444'
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: '3',
|
|
44
|
-
title: 'Schema/Data Display/Client Presentation',
|
|
45
|
-
start: new Date(new Date().getFullYear(), new Date().getMonth(), 25, 14, 0),
|
|
46
|
-
end: new Date(new Date().getFullYear(), new Date().getMonth(), 25, 16, 0),
|
|
47
|
-
color: '#10b981'
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
className: 'h-[600px]'
|
|
51
|
-
} as any,
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const MonthView: Story = {
|
|
55
|
-
render: renderStory,
|
|
56
|
-
args: {
|
|
57
|
-
type: 'calendar-view',
|
|
58
|
-
defaultView: 'month',
|
|
59
|
-
events: [
|
|
60
|
-
{
|
|
61
|
-
id: '1',
|
|
62
|
-
title: 'Schema/Data Display/Sprint Planning',
|
|
63
|
-
start: new Date(new Date().getFullYear(), new Date().getMonth(), 1, 9, 0),
|
|
64
|
-
end: new Date(new Date().getFullYear(), new Date().getMonth(), 1, 10, 30),
|
|
65
|
-
color: '#8b5cf6'
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
id: '2',
|
|
69
|
-
title: 'Schema/Data Display/Code Review',
|
|
70
|
-
start: new Date(new Date().getFullYear(), new Date().getMonth(), 5, 15, 0),
|
|
71
|
-
end: new Date(new Date().getFullYear(), new Date().getMonth(), 5, 16, 0),
|
|
72
|
-
color: '#3b82f6'
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
id: '3',
|
|
76
|
-
title: 'Schema/Data Display/Team Building',
|
|
77
|
-
start: new Date(new Date().getFullYear(), new Date().getMonth(), 10),
|
|
78
|
-
end: new Date(new Date().getFullYear(), new Date().getMonth(), 10),
|
|
79
|
-
allDay: true,
|
|
80
|
-
color: '#f59e0b'
|
|
81
|
-
}
|
|
82
|
-
],
|
|
83
|
-
className: 'h-[600px]'
|
|
84
|
-
} as any,
|
|
85
|
-
};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Data Display/Card',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'padded',
|
|
10
|
-
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
|
-
argTypes: {
|
|
13
|
-
schema: { table: { disable: true } },
|
|
14
|
-
children: { control: "object" }
|
|
15
|
-
},
|
|
16
|
-
} satisfies Meta<any>;
|
|
17
|
-
|
|
18
|
-
export default meta;
|
|
19
|
-
type Story = StoryObj<typeof meta>;
|
|
20
|
-
|
|
21
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
22
|
-
|
|
23
|
-
export const Card: Story = {
|
|
24
|
-
render: renderStory,
|
|
25
|
-
args: {
|
|
26
|
-
type: 'card',
|
|
27
|
-
className: "w-[350px]",
|
|
28
|
-
// Using high-level props supported by CardRenderer
|
|
29
|
-
title: 'Schema/Layout/Create Project',
|
|
30
|
-
description: "Deploy your new project in one-click.",
|
|
31
|
-
// Main content (wrapped in CardContent by renderer)
|
|
32
|
-
children: [
|
|
33
|
-
{
|
|
34
|
-
type: 'div',
|
|
35
|
-
className: 'flex flex-col space-y-1.5',
|
|
36
|
-
children: [
|
|
37
|
-
{ type: 'label', content: 'Name', props: { htmlFor: 'name' } },
|
|
38
|
-
{ type: 'input', props: { id: 'name', placeholder: 'Name of your project' } }
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
|
-
// Footer content
|
|
43
|
-
footer: [
|
|
44
|
-
{ type: 'button', props: { variant: 'outline' }, children: [{type:'text', content: 'Cancel'}] },
|
|
45
|
-
{ type: 'button', children: [{type: 'text', content: 'Deploy'}] }
|
|
46
|
-
]
|
|
47
|
-
} as any,
|
|
48
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { SchemaRenderer } from '../SchemaRenderer';
|
|
3
|
-
import type { BaseSchema } from '@object-ui/types';
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'Primitives/Data Display/Carousel',
|
|
7
|
-
component: SchemaRenderer,
|
|
8
|
-
parameters: { layout: 'centered' },
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
schema: { table: { disable: true } }
|
|
12
|
-
}
|
|
13
|
-
} satisfies Meta<typeof SchemaRenderer>;
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
|
|
18
|
-
const renderStory = (args: any) => <SchemaRenderer schema={args as unknown as BaseSchema} />;
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: renderStory,
|
|
22
|
-
args: {
|
|
23
|
-
type: 'carousel',
|
|
24
|
-
className: 'w-full max-w-xs',
|
|
25
|
-
items: [
|
|
26
|
-
{ type: 'card', className: 'p-6 flex aspect-square items-center justify-center', children: [{type:'text', className:'text-4xl font-semibold', content: '1'}] },
|
|
27
|
-
{ type: 'card', className: 'p-6 flex aspect-square items-center justify-center', children: [{type:'text', className:'text-4xl font-semibold', content: '2'}] },
|
|
28
|
-
{ type: 'card', className: 'p-6 flex aspect-square items-center justify-center', children: [{type:'text', className:'text-4xl font-semibold', content: '3'}] },
|
|
29
|
-
{ type: 'card', className: 'p-6 flex aspect-square items-center justify-center', children: [{type:'text', className:'text-4xl font-semibold', content: '4'}] },
|
|
30
|
-
{ type: 'card', className: 'p-6 flex aspect-square items-center justify-center', children: [{type:'text', className:'text-4xl font-semibold', content: '5'}] }
|
|
31
|
-
]
|
|
32
|
-
} as any,
|
|
33
|
-
};
|