Patch Changes
-
1a35219: Fix codegen class-mode constructor TS2345 on
fields. The generatedGenerated${X}Managerconstructor was typing itsoptionsargument as a hand-rolledPartial<{ ... fields: Record<string, unknown>; [key: string]: unknown }>. The toxic combo (Record<string, unknown>+ index signature) widened the inline literal's strictly-typedfields: Record<string, FieldConfig>at thesuper({ ...literal, ...options })spread, sovue-tsc --noEmitagainst generated files reportedTS2345: Argument of type '{ ...; fields: Record<string, unknown>; ... }' is not assignable to parameter of type 'EntityManagerOptions<XxxEntity>'.The codegen now emits
constructor(options: Partial<EntityManagerOptions<${className}Entity>> = {})and importsEntityManagerOptionsfrom@quazardous/qdadm. The signature stays in sync with the parent class automatically — future additions toEntityManagerOptionsno longer require touching the template — and the strictfieldstyping survives the spread. Reported by skybot-claude onvue-tsc --noEmitover generated managers in 1.19.4. -
8043b44: Fix asymmetric button size between
FormPageandListPageheader actions.ListPage.vueforcedsize='small'on its header action buttons, butFormPage.vuerendered actions fromform.addAction(...)without asizeprop — so PrimeVue's default (normal/large) showed up on edit pages, breaking visual coherence with the list. Reported by skybot-claude in qdadm #1016.FormPage.vuenow renders header actions with:size="action.size || 'small'"to matchListPage. Symmetric overrides:size?: stringis now part of the sharedActionConfig(useEntityItemFormPage.types.ts) andHeaderActionConfig(useListPage.types.ts) — consumers can opt into a different size from either side without touching component code.ListPage.vue's local wideninginterface ResolvedHeaderAction extends BaseResolvedHeaderAction { size?: string }is removed since the base type now carriessizedirectly.Default remains
'small'on both pages, so no breaking change for existing consumers.