diff --git a/assets/style/css/form/box.css b/assets/style/css/form/box.css index fe988a1..c07a0a1 100644 --- a/assets/style/css/form/box.css +++ b/assets/style/css/form/box.css @@ -3,7 +3,7 @@ } .formkit-fieldset-box { - @apply max-w-md border border-[rgb(var(--fk-border-color))] rounded-lg px-4 py-2; + @apply border-0 rounded-lg py-2; } .formkit-legend-box { diff --git a/components/ConditionalLogicEngine.vue b/components/ConditionalLogicEngine.vue index 474ef6a..b9f28cd 100644 --- a/components/ConditionalLogicEngine.vue +++ b/components/ConditionalLogicEngine.vue @@ -24,6 +24,20 @@ const emit = defineEmits(['script-generated']) const generatedScript = ref('') const isInitialized = ref(false) +// Helper function to map operators to valid JavaScript +const getJavaScriptOperator = (operator) => { + switch (operator) { + case 'and': + case 'AND': + return '&&' + case 'or': + case 'OR': + return '||' + default: + return '&&' // Default to AND if unknown operator + } +} + // Generate conditional logic script from form components const generateConditionalLogicScript = () => { const scriptsArray = [] @@ -65,7 +79,7 @@ const generateConditionalLogicScript = () => { default: return `getField('${field}') === '${value}'` } - }).join(` ${operator} `) + }).join(` ${getJavaScriptOperator(operator)} `) // Generate action functions const actionCode = action === 'show' ? `showField('${fieldName}')` : diff --git a/components/FormBuilderComponents.vue b/components/FormBuilderComponents.vue index 235a79b..e8805a9 100644 --- a/components/FormBuilderComponents.vue +++ b/components/FormBuilderComponents.vue @@ -659,7 +659,9 @@ const availableComponents = [ description: 'Section heading text', defaultProps: { value: 'Section Heading', - level: 2 + level: 2, + width: '100%', + gridColumn: 'span 12' } }, { @@ -669,7 +671,9 @@ const availableComponents = [ icon: 'material-symbols:text-snippet-outline', description: 'Paragraph of text', defaultProps: { - value: 'Enter some descriptive text here.' + value: 'Enter some descriptive text here.', + width: '100%', + gridColumn: 'span 12' } }, { diff --git a/components/FormBuilderFieldSettingsModal.vue b/components/FormBuilderFieldSettingsModal.vue index 30a42e6..2cc2747 100644 --- a/components/FormBuilderFieldSettingsModal.vue +++ b/components/FormBuilderFieldSettingsModal.vue @@ -58,65 +58,166 @@
-
+ +
- - - - + +
+
+ + Preview Change +
+
+
+ From: + {{ getComponentTypeName(component.type) }} +
+
+ To: + {{ getComponentTypeName(pendingTypeChange) }} +
+
+ Preserved: + {{ getPreservedProperties(component.type, pendingTypeChange).join(', ') }} +
+
+
+ + + Confirm Change + + + + Cancel + +
+
- + + - + + + + +
@@ -350,23 +451,7 @@ - - +