Files
formipay/src/admin/components/formBuilder/FormFieldPreview.css
dwindown ec1f01ef24 feat: build React Form Builder (F2.7-F2.10)
Components:
- FieldPalette: drag-and-drop source for all field types
- FormCanvas: drop target with field list, reordering, CRUD
- FormField: individual field component with actions
- FieldSettingsPanel: edit field properties (label, ID, options, etc.)
- FormFieldOptions: manage select/radio/checkbox options
- FormPreview: live preview of rendered form
- FormFieldPreview: preview individual field types

Features:
- 16 field types (text, email, select, checkbox, radio, etc.)
- Categorized field palette
- Drag-and-drop field reordering
- Per-field settings panel
- Option management for choice fields
- Live form preview
- Save via AJAX

Config:
- fieldTypes.js: field definitions and constants
- Generate unique field IDs
- Field type categories (input, choice, layout, preset, advanced)
2026-04-18 11:34:13 +07:00

88 lines
1.4 KiB
CSS

.formipay-preview-form {
display: flex;
flex-direction: column;
gap: 16px;
}
.formipay-field-preview {
display: flex;
flex-direction: column;
gap: 6px;
}
.formipay-field-label {
display: block;
font-size: 13px;
font-weight: 500;
color: #1e1e1e;
}
.formipay-field-label .required {
color: #d63638;
margin-left: 2px;
}
.formipay-input,
.formipay-textarea,
.formipay-select {
width: 100%;
padding: 8px 12px;
font-size: 13px;
color: #1e1e1e;
background: #fff;
border: 1px solid #8c8f94;
border-radius: 2px;
}
.formipay-input:focus,
.formipay-textarea:focus,
.formipay-select:focus {
outline: none;
border-color: #2271b1;
box-shadow: 0 0 0 1px #2271b1;
}
.formipay-textarea {
resize: vertical;
min-height: 80px;
}
.formipay-radio-group,
.formipay-checkbox-group {
display: flex;
flex-direction: column;
gap: 8px;
}
.formipay-radio-label,
.formipay-checkbox-label {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
color: #1e1e1e;
cursor: not-allowed;
}
.formipay-field-description {
margin: 0;
font-size: 12px;
color: #646970;
}
.formipay-divider {
border: none;
border-top: 1px solid #c3c4c7;
margin: 8px 0;
}
.formipay-page-break {
padding: 12px;
text-align: center;
background: #f6f7f7;
border: 1px dashed #c3c4c7;
border-radius: 2px;
font-size: 12px;
color: #646970;
}