@enerjisaformlibrary/formbuilder-react 1.0.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/README.md +83 -0
- package/index.cjs +6433 -0
- package/index.js +6365 -0
- package/package.json +58 -0
- package/types/client/src/components/form-builder/CanvasField.d.ts +15 -0
- package/types/client/src/components/form-builder/CanvasField.d.ts.map +1 -0
- package/types/client/src/components/form-builder/ComponentLibrary.d.ts +7 -0
- package/types/client/src/components/form-builder/ComponentLibrary.d.ts.map +1 -0
- package/types/client/src/components/form-builder/DragOverlayContent.d.ts +6 -0
- package/types/client/src/components/form-builder/DragOverlayContent.d.ts.map +1 -0
- package/types/client/src/components/form-builder/FormCanvas.d.ts +2 -0
- package/types/client/src/components/form-builder/FormCanvas.d.ts.map +1 -0
- package/types/client/src/components/form-builder/JsonViewerModal.d.ts +9 -0
- package/types/client/src/components/form-builder/JsonViewerModal.d.ts.map +1 -0
- package/types/client/src/components/form-builder/PropertiesPanel.d.ts +2 -0
- package/types/client/src/components/form-builder/PropertiesPanel.d.ts.map +1 -0
- package/types/client/src/components/form-builder/Toolbar.d.ts +6 -0
- package/types/client/src/components/form-builder/Toolbar.d.ts.map +1 -0
- package/types/client/src/components/ui/accordion.d.ts +8 -0
- package/types/client/src/components/ui/accordion.d.ts.map +1 -0
- package/types/client/src/components/ui/alert-dialog.d.ts +21 -0
- package/types/client/src/components/ui/alert-dialog.d.ts.map +1 -0
- package/types/client/src/components/ui/alert.d.ts +9 -0
- package/types/client/src/components/ui/alert.d.ts.map +1 -0
- package/types/client/src/components/ui/aspect-ratio.d.ts +4 -0
- package/types/client/src/components/ui/aspect-ratio.d.ts.map +1 -0
- package/types/client/src/components/ui/avatar.d.ts +7 -0
- package/types/client/src/components/ui/avatar.d.ts.map +1 -0
- package/types/client/src/components/ui/badge.d.ts +10 -0
- package/types/client/src/components/ui/badge.d.ts.map +1 -0
- package/types/client/src/components/ui/breadcrumb.d.ts +20 -0
- package/types/client/src/components/ui/breadcrumb.d.ts.map +1 -0
- package/types/client/src/components/ui/button.d.ts +12 -0
- package/types/client/src/components/ui/button.d.ts.map +1 -0
- package/types/client/src/components/ui/calendar.d.ts +9 -0
- package/types/client/src/components/ui/calendar.d.ts.map +1 -0
- package/types/client/src/components/ui/card.d.ts +9 -0
- package/types/client/src/components/ui/card.d.ts.map +1 -0
- package/types/client/src/components/ui/carousel.d.ts +19 -0
- package/types/client/src/components/ui/carousel.d.ts.map +1 -0
- package/types/client/src/components/ui/chart.d.ts +63 -0
- package/types/client/src/components/ui/chart.d.ts.map +1 -0
- package/types/client/src/components/ui/checkbox.d.ts +5 -0
- package/types/client/src/components/ui/checkbox.d.ts.map +1 -0
- package/types/client/src/components/ui/collapsible.d.ts +6 -0
- package/types/client/src/components/ui/collapsible.d.ts.map +1 -0
- package/types/client/src/components/ui/command.d.ts +81 -0
- package/types/client/src/components/ui/command.d.ts.map +1 -0
- package/types/client/src/components/ui/context-menu.d.ts +28 -0
- package/types/client/src/components/ui/context-menu.d.ts.map +1 -0
- package/types/client/src/components/ui/dialog.d.ts +20 -0
- package/types/client/src/components/ui/dialog.d.ts.map +1 -0
- package/types/client/src/components/ui/drawer.d.ts +23 -0
- package/types/client/src/components/ui/drawer.d.ts.map +1 -0
- package/types/client/src/components/ui/dropdown-menu.d.ts +28 -0
- package/types/client/src/components/ui/dropdown-menu.d.ts.map +1 -0
- package/types/client/src/components/ui/form.d.ts +24 -0
- package/types/client/src/components/ui/form.d.ts.map +1 -0
- package/types/client/src/components/ui/hover-card.d.ts +7 -0
- package/types/client/src/components/ui/hover-card.d.ts.map +1 -0
- package/types/client/src/components/ui/input-otp.d.ts +35 -0
- package/types/client/src/components/ui/input-otp.d.ts.map +1 -0
- package/types/client/src/components/ui/input.d.ts +4 -0
- package/types/client/src/components/ui/input.d.ts.map +1 -0
- package/types/client/src/components/ui/label.d.ts +6 -0
- package/types/client/src/components/ui/label.d.ts.map +1 -0
- package/types/client/src/components/ui/menubar.d.ts +29 -0
- package/types/client/src/components/ui/menubar.d.ts.map +1 -0
- package/types/client/src/components/ui/navigation-menu.d.ts +13 -0
- package/types/client/src/components/ui/navigation-menu.d.ts.map +1 -0
- package/types/client/src/components/ui/pagination.d.ts +29 -0
- package/types/client/src/components/ui/pagination.d.ts.map +1 -0
- package/types/client/src/components/ui/popover.d.ts +7 -0
- package/types/client/src/components/ui/popover.d.ts.map +1 -0
- package/types/client/src/components/ui/progress.d.ts +5 -0
- package/types/client/src/components/ui/progress.d.ts.map +1 -0
- package/types/client/src/components/ui/radio-group.d.ts +6 -0
- package/types/client/src/components/ui/radio-group.d.ts.map +1 -0
- package/types/client/src/components/ui/resizable.d.ts +24 -0
- package/types/client/src/components/ui/resizable.d.ts.map +1 -0
- package/types/client/src/components/ui/scroll-area.d.ts +6 -0
- package/types/client/src/components/ui/scroll-area.d.ts.map +1 -0
- package/types/client/src/components/ui/select.d.ts +14 -0
- package/types/client/src/components/ui/select.d.ts.map +1 -0
- package/types/client/src/components/ui/separator.d.ts +5 -0
- package/types/client/src/components/ui/separator.d.ts.map +1 -0
- package/types/client/src/components/ui/sheet.d.ts +26 -0
- package/types/client/src/components/ui/sheet.d.ts.map +1 -0
- package/types/client/src/components/ui/sidebar.d.ts +70 -0
- package/types/client/src/components/ui/sidebar.d.ts.map +1 -0
- package/types/client/src/components/ui/skeleton.d.ts +3 -0
- package/types/client/src/components/ui/skeleton.d.ts.map +1 -0
- package/types/client/src/components/ui/slider.d.ts +5 -0
- package/types/client/src/components/ui/slider.d.ts.map +1 -0
- package/types/client/src/components/ui/switch.d.ts +5 -0
- package/types/client/src/components/ui/switch.d.ts.map +1 -0
- package/types/client/src/components/ui/table.d.ts +11 -0
- package/types/client/src/components/ui/table.d.ts.map +1 -0
- package/types/client/src/components/ui/tabs.d.ts +8 -0
- package/types/client/src/components/ui/tabs.d.ts.map +1 -0
- package/types/client/src/components/ui/textarea.d.ts +4 -0
- package/types/client/src/components/ui/textarea.d.ts.map +1 -0
- package/types/client/src/components/ui/toast.d.ts +16 -0
- package/types/client/src/components/ui/toast.d.ts.map +1 -0
- package/types/client/src/components/ui/toaster.d.ts +2 -0
- package/types/client/src/components/ui/toaster.d.ts.map +1 -0
- package/types/client/src/components/ui/toggle-group.d.ts +13 -0
- package/types/client/src/components/ui/toggle-group.d.ts.map +1 -0
- package/types/client/src/components/ui/toggle.d.ts +13 -0
- package/types/client/src/components/ui/toggle.d.ts.map +1 -0
- package/types/client/src/components/ui/tooltip.d.ts +8 -0
- package/types/client/src/components/ui/tooltip.d.ts.map +1 -0
- package/types/client/src/hooks/use-mobile.d.ts +2 -0
- package/types/client/src/hooks/use-mobile.d.ts.map +1 -0
- package/types/client/src/hooks/use-toast.d.ts +45 -0
- package/types/client/src/hooks/use-toast.d.ts.map +1 -0
- package/types/client/src/lib/formbuilder/index.d.ts +10 -0
- package/types/client/src/lib/formbuilder/index.d.ts.map +1 -0
- package/types/client/src/lib/queryClient.d.ts +9 -0
- package/types/client/src/lib/queryClient.d.ts.map +1 -0
- package/types/client/src/lib/utils.d.ts +3 -0
- package/types/client/src/lib/utils.d.ts.map +1 -0
- package/types/client/src/store/formStore.d.ts +75 -0
- package/types/client/src/store/formStore.d.ts.map +1 -0
- package/types/lib/index.d.ts +10 -0
- package/types/lib/index.d.ts.map +1 -0
- package/types/shared/schema.d.ts +17303 -0
- package/types/shared/schema.d.ts.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# @enerjisaformlibrary/formbuilder-react
|
|
2
|
+
|
|
3
|
+
Dynamic drag-and-drop form builder React components with 20+ field types, conditional logic, multi-step forms, and custom styling.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @enerjisaformlibrary/formbuilder-react
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Peer Dependencies
|
|
12
|
+
|
|
13
|
+
This package requires the following peer dependencies:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install react react-dom @dnd-kit/core @dnd-kit/sortable @dnd-kit/utilities zustand zod lucide-react nanoid framer-motion class-variance-authority clsx tailwind-merge date-fns qrcode.react
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import {
|
|
23
|
+
FormCanvas,
|
|
24
|
+
PropertiesPanel,
|
|
25
|
+
ComponentLibrary,
|
|
26
|
+
Toolbar,
|
|
27
|
+
useFormStore,
|
|
28
|
+
FormSchema
|
|
29
|
+
} from '@enerjisaformlibrary/formbuilder-react';
|
|
30
|
+
|
|
31
|
+
function FormBuilder() {
|
|
32
|
+
const { form, setForm } = useFormStore();
|
|
33
|
+
|
|
34
|
+
const handleSave = () => {
|
|
35
|
+
const formJson = JSON.stringify(form);
|
|
36
|
+
// Save to your database
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div className="flex h-screen">
|
|
41
|
+
<ComponentLibrary />
|
|
42
|
+
<FormCanvas />
|
|
43
|
+
<PropertiesPanel />
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- 20+ field types (input, textarea, dropdown, checkbox, radio, date, file, signature, rating, etc.)
|
|
52
|
+
- Drag-and-drop interface with dnd-kit
|
|
53
|
+
- Multi-step wizard forms
|
|
54
|
+
- Conditional logic (show/hide/enable/disable fields)
|
|
55
|
+
- Custom styling per field
|
|
56
|
+
- Form versioning
|
|
57
|
+
- JSON export/import
|
|
58
|
+
- Responsive grid system (12-column)
|
|
59
|
+
- Unified sizing system (compact, normal, comfortable)
|
|
60
|
+
|
|
61
|
+
## Exports
|
|
62
|
+
|
|
63
|
+
### Components
|
|
64
|
+
- `FormCanvas` - Main canvas for form editing
|
|
65
|
+
- `CanvasField` - Individual field renderer
|
|
66
|
+
- `PropertiesPanel` - Field properties editor
|
|
67
|
+
- `ComponentLibrary` - Draggable component palette
|
|
68
|
+
- `Toolbar` - Save, preview, settings toolbar
|
|
69
|
+
- `JsonViewerModal` - JSON export viewer
|
|
70
|
+
|
|
71
|
+
### Store
|
|
72
|
+
- `useFormStore` - Zustand store for form state
|
|
73
|
+
|
|
74
|
+
### Types
|
|
75
|
+
- `FormSchema` - Form schema type
|
|
76
|
+
- `FormField` - Field type
|
|
77
|
+
- `FormRow` - Row type
|
|
78
|
+
- `FormColumn` - Column type
|
|
79
|
+
- All validation and conditional logic types
|
|
80
|
+
|
|
81
|
+
## License
|
|
82
|
+
|
|
83
|
+
MIT
|