refactor(form-schema): extract schema types and schema-driven behaviors to shared package
Moves formBuilder types, formValidation, useConditionalLogic, useFormSteps, and formatFieldValue from apps/portal/src to packages/form-schema/src. Adds @form-schema path alias to both apps/portal and apps/app. Vue field components remain per-app to allow independent visual evolution. Behavior-neutral: all 35 Vitest tests green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,8 +21,8 @@ vi.mock('@/composables/publicFormInjection', () => ({
|
||||
}))
|
||||
|
||||
import FieldAvailabilityPicker from '@/components/public-form/FieldAvailabilityPicker.vue'
|
||||
import { FormFieldType } from '@/types/formBuilder'
|
||||
import type { PublicFormField, PublicFormTimeSlot } from '@/types/formBuilder'
|
||||
import { FormFieldType } from '@form-schema/types/formBuilder'
|
||||
import type { PublicFormField, PublicFormTimeSlot } from '@form-schema/types/formBuilder'
|
||||
|
||||
function field(partial: Partial<PublicFormField> = {}): PublicFormField {
|
||||
return {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { mount } from '@vue/test-utils'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import FieldRenderer from '@/components/public-form/FieldRenderer.vue'
|
||||
import { FormFieldType } from '@/types/formBuilder'
|
||||
import type { PublicFormField } from '@/types/formBuilder'
|
||||
import { FormFieldType } from '@form-schema/types/formBuilder'
|
||||
import type { PublicFormField } from '@form-schema/types/formBuilder'
|
||||
|
||||
function makeField(partial: Partial<PublicFormField>): PublicFormField {
|
||||
return {
|
||||
|
||||
@@ -36,8 +36,8 @@ vi.mock('vuedraggable', () => ({
|
||||
}))
|
||||
|
||||
import FieldSectionPriority from '@/components/public-form/FieldSectionPriority.vue'
|
||||
import { FormFieldType } from '@/types/formBuilder'
|
||||
import type { PublicFormField, PublicFormSectionOption } from '@/types/formBuilder'
|
||||
import { FormFieldType } from '@form-schema/types/formBuilder'
|
||||
import type { PublicFormField, PublicFormSectionOption } from '@form-schema/types/formBuilder'
|
||||
|
||||
function field(partial: Partial<PublicFormField> = {}): PublicFormField {
|
||||
return {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { mount } from '@vue/test-utils'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import FieldTagPicker from '@/components/public-form/FieldTagPicker.vue'
|
||||
import { FormFieldType } from '@/types/formBuilder'
|
||||
import type { AvailableTag, PublicFormField } from '@/types/formBuilder'
|
||||
import { FormFieldType } from '@form-schema/types/formBuilder'
|
||||
import type { AvailableTag, PublicFormField } from '@form-schema/types/formBuilder'
|
||||
|
||||
function field(partial: Partial<PublicFormField> = {}): PublicFormField {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user