@praxisui/dynamic-form 8.0.0-beta.0 → 8.0.0-beta.11

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/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { MatDialog } from '@angular/material/dialog';
7
7
  import { MatSnackBar } from '@angular/material/snack-bar';
8
8
  import { CdkDragStart, CdkDragMove, CdkDragEnd, CdkDragDrop } from '@angular/cdk/drag-drop';
9
9
  import * as _praxisui_core from '@praxisui/core';
10
- import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormActionButton, AiCapability, BackConfig, ApiEndpoint, ApiUrlEntry, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, FieldDefinition, ComponentDocMeta, Breakpoint, IconPickerService, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
10
+ import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormActionButton, AiCapability, BackConfig, ApiEndpoint, ApiUrlEntry, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, GlobalActionCatalogEntry, FieldDefinition, ComponentDocMeta, Breakpoint, IconPickerService, GlobalActionRef, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, ComponentAuthoringManifest } from '@praxisui/core';
11
11
  import * as rxjs from 'rxjs';
12
12
  import { Observable, BehaviorSubject } from 'rxjs';
13
13
  import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
@@ -280,6 +280,28 @@ interface PraxisFormActionEvent {
280
280
  }
281
281
  declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
282
282
  private shortcuts;
283
+ private readonly i18n;
284
+ private actionButtonsCache;
285
+ private actionButtonsCacheSource?;
286
+ private actionButtonsCacheOverrides?;
287
+ private formActionsClassesCacheSource?;
288
+ private formActionsClassesCache;
289
+ private viewClassMapCacheSource?;
290
+ private viewClassMapCacheEditorialContext?;
291
+ private viewClassMapCache;
292
+ private visibleButtonsCacheSource;
293
+ private visibleButtonsCache;
294
+ private collapsedButtonsCacheSource;
295
+ private collapsedButtonsCache;
296
+ private primaryButtonsCacheSource;
297
+ private primaryButtonsCache;
298
+ private secondaryButtonsCacheSource;
299
+ private secondaryButtonsCache;
300
+ private buttonClassCache;
301
+ private buttonStylesCache;
302
+ private invalidSubmitHintCacheSignature;
303
+ private invalidSubmitHintCacheValue;
304
+ private readonly invalidSubmitHint;
283
305
  /** Configuration object describing form action buttons */
284
306
  actions?: FormConfig['actions'];
285
307
  /** Whether the actions are rendered inside an editorial visual context */
@@ -290,6 +312,8 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
290
312
  formIsValid: boolean;
291
313
  /** Optional error message displayed above the actions */
292
314
  submitError?: string | null;
315
+ /** Visible required fields that currently block submit */
316
+ invalidRequiredFieldLabels: string[];
293
317
  /** Identifier used when registering keyboard shortcuts */
294
318
  formId?: string;
295
319
  /** Overrides coming from runtime rules */
@@ -308,6 +332,8 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
308
332
  };
309
333
  getMatColor(btn: FormActionButton | undefined): 'primary' | 'accent' | 'warn' | undefined;
310
334
  getActionButtons(): FormActionButton[];
335
+ private computeActionButtons;
336
+ private refreshActionButtons;
311
337
  getVisibleButtons(): FormActionButton[];
312
338
  getCollapsedButtons(): FormActionButton[];
313
339
  isSplitLayout(): boolean;
@@ -319,11 +345,14 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
319
345
  };
320
346
  getButtonStyles(button: FormActionButton): Record<string, any> | null;
321
347
  isActionButtonDisabled(button: FormActionButton): boolean;
348
+ shouldShowInvalidSubmitHint(): boolean;
349
+ getInvalidSubmitHint(): string;
322
350
  private applyOverrides;
323
351
  private registerActionShortcuts;
352
+ private resolveButtonActionId;
324
353
  private isSecondaryButton;
325
354
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFormActionsComponent, never>;
326
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFormActionsComponent, "praxis-form-actions", never, { "actions": { "alias": "actions"; "required": false; }; "editorialVisualContext": { "alias": "editorialVisualContext"; "required": false; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; }; "formIsValid": { "alias": "formIsValid"; "required": false; }; "submitError": { "alias": "submitError"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "actionOverrides": { "alias": "actionOverrides"; "required": false; }; }, { "action": "action"; }, never, never, true, never>;
355
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFormActionsComponent, "praxis-form-actions", never, { "actions": { "alias": "actions"; "required": false; }; "editorialVisualContext": { "alias": "editorialVisualContext"; "required": false; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; }; "formIsValid": { "alias": "formIsValid"; "required": false; }; "submitError": { "alias": "submitError"; "required": false; }; "invalidRequiredFieldLabels": { "alias": "invalidRequiredFieldLabels"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "actionOverrides": { "alias": "actionOverrides"; "required": false; }; }, { "action": "action"; }, never, never, true, never>;
327
356
  }
328
357
 
329
358
  /**
@@ -510,6 +539,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
510
539
  private logger?;
511
540
  private readonly i18n;
512
541
  private readonly DEBUG;
542
+ private effectiveActionsCache?;
543
+ private effectiveActionsCacheBase?;
544
+ private effectiveActionsCacheOverride?;
545
+ private invalidRequiredFieldLabelsCache;
546
+ private invalidRequiredFieldLabelsSignature;
513
547
  resourcePath?: string;
514
548
  resourceId?: string | number;
515
549
  initialValue?: Record<string, unknown> | null;
@@ -521,6 +555,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
521
555
  editorialContext: Record<string, unknown> | null;
522
556
  mode: 'create' | 'edit' | 'view';
523
557
  config: FormConfig;
558
+ /** Optional host-level overrides for the rendered form action bar. */
559
+ actions?: FormConfig['actions'] | null;
524
560
  /**
525
561
  * Fonte de schema para construir o formulário.
526
562
  * 'resource' (padrão) usa o schema do recurso (/{resource}/schemas -> .../all response)
@@ -586,6 +622,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
586
622
  get effectiveReadonly(): boolean;
587
623
  get effectiveDisabledMode(): boolean | null;
588
624
  get effectiveFormIsValid(): boolean;
625
+ get invalidRequiredFieldLabels(): string[];
589
626
  /** Value propagated to DynamicFieldLoader; null allows per-field metadata */
590
627
  get presentationForLoader(): boolean | null;
591
628
  /** Custom endpoints for CRUD operations */
@@ -649,6 +686,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
649
686
  private lastCorrelationId?;
650
687
  private currentDnD?;
651
688
  private columnFieldsCache;
689
+ private rowClassesCache;
690
+ private rowStylesCache;
691
+ private sectionClassesCache;
692
+ private sectionStylesCache;
693
+ private columnClassesCache;
694
+ private columnStylesCache;
652
695
  private lastFieldPatchSig;
653
696
  private lastFieldPatchAt;
654
697
  schemaOutdated: boolean;
@@ -664,6 +707,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
664
707
  get formBlocksAfterDocument(): RichContentDocument;
665
708
  get beforeActionsPlacement(): 'insideLastSection' | 'afterSections';
666
709
  get actionPlacement(): 'insideLastSection' | 'afterSections' | 'top';
710
+ get effectiveActions(): FormConfig['actions'];
667
711
  /**
668
712
  * Precedence for editorial rich-content interpolation:
669
713
  * 1. form runtime context
@@ -740,6 +784,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
740
784
  private formInputsKey;
741
785
  private crudBackKey;
742
786
  private tryInitializeForm;
787
+ private hasExplicitSchemaUrl;
788
+ private hasSchemaBackedRuntime;
743
789
  private hasRenderableConfig;
744
790
  private initializeStandaloneConfig;
745
791
  private reloadForModeChange;
@@ -748,9 +794,13 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
748
794
  private blurAllInputs;
749
795
  private initializeForm;
750
796
  private handleInitializationError;
797
+ private loadConfigFailOpen;
798
+ private resolveFieldLabel;
751
799
  private getErrorMessage;
752
800
  private persistFormConfig;
753
801
  private createDefaultConfig;
802
+ private createConfigFromHostConfig;
803
+ private reconcileLoadedConfigWithServerSchema;
754
804
  private syncWithServer;
755
805
  private loadEntity;
756
806
  private buildFormFromConfig;
@@ -758,6 +808,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
758
808
  private scheduleValueChangeBootstrapRelease;
759
809
  private hasInteractiveFormState;
760
810
  private captureFormRuntimeState;
811
+ private getDirtyFieldNames;
812
+ private collectDirtyFieldNames;
761
813
  private buildCurrentFormRuntimeContext;
762
814
  private buildRestoreTargetContext;
763
815
  private isCompatibleRuntimeStateContext;
@@ -833,6 +885,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
833
885
  hasEditorialVisualContext(): boolean;
834
886
  private applyBorderPropsToStyle;
835
887
  private resolveRuleVisibility;
888
+ private resolveFieldVisibility;
889
+ private isFieldMetadataHidden;
836
890
  toggleSectionCollapse(event: Event, section: FormSection): void;
837
891
  sectionPanelId(section: FormSection, index: number): string;
838
892
  getSectionCollapsedSummary(section: FormSection): string;
@@ -840,6 +894,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
840
894
  fields: string[];
841
895
  id?: string;
842
896
  }): FieldMetadata[];
897
+ private getColumnFieldsSignature;
843
898
  private getColumnRuleProps;
844
899
  private buildFieldRuleMetadataOverrides;
845
900
  private normalizeRuleFieldOptions;
@@ -858,6 +913,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
858
913
  private _showConfirmationDialog;
859
914
  onFormAction(event: PraxisFormActionEvent): void;
860
915
  private _executeAction;
916
+ private getFormActionEventId;
861
917
  onSubmit(): Promise<void>;
862
918
  private navigateAfterSave;
863
919
  private shouldConfirmCancelOnDirty;
@@ -925,6 +981,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
925
981
  private getControlTypeName;
926
982
  private applyNullDeletionPatch;
927
983
  private stripNullMarkersFromPatch;
984
+ private mergeMetadataObjectPatch;
928
985
  private deleteMetadataPath;
929
986
  private getMetadataPath;
930
987
  /**
@@ -1010,12 +1067,13 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
1010
1067
  private getSchemaWithCache;
1011
1068
  private isReactiveValidationEnabled;
1012
1069
  private getReactiveValidationDebounceMs;
1070
+ private waitForGlobalConfigReadyForSchema;
1013
1071
  private setupReactiveValidation;
1014
1072
  private logRowGapsSnapshot;
1015
1073
  private applyPresentationVars;
1016
1074
  private applyPresentationConfig;
1017
1075
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicForm, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
1018
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "editorialContext": { "alias": "editorialContext"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "config": { "alias": "config"; "required": false; }; "schemaSource": { "alias": "schemaSource"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "responseSchemaUrl": { "alias": "responseSchemaUrl"; "required": false; }; "apiEndpointKey": { "alias": "apiEndpointKey"; "required": false; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "backConfig": { "alias": "backConfig"; "required": false; }; "hooks": { "alias": "hooks"; "required": false; }; "removeEmptyContainersOnSave": { "alias": "removeEmptyContainersOnSave"; "required": false; }; "reactiveValidation": { "alias": "reactiveValidation"; "required": false; }; "reactiveValidationDebounceMs": { "alias": "reactiveValidationDebounceMs"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "readonlyModeGlobal": { "alias": "readonlyModeGlobal"; "required": false; }; "disabledModeGlobal": { "alias": "disabledModeGlobal"; "required": false; }; "presentationModeGlobal": { "alias": "presentationModeGlobal"; "required": false; }; "visibleGlobal": { "alias": "visibleGlobal"; "required": false; }; "customEndpoints": { "alias": "customEndpoints"; "required": false; }; }, { "formSubmit": "formSubmit"; "formCancel": "formCancel"; "formReset": "formReset"; "configChange": "configChange"; "formReady": "formReady"; "valueChange": "valueChange"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; }, never, never, true, never>;
1076
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "editorialContext": { "alias": "editorialContext"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "config": { "alias": "config"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "schemaSource": { "alias": "schemaSource"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "responseSchemaUrl": { "alias": "responseSchemaUrl"; "required": false; }; "apiEndpointKey": { "alias": "apiEndpointKey"; "required": false; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "backConfig": { "alias": "backConfig"; "required": false; }; "hooks": { "alias": "hooks"; "required": false; }; "removeEmptyContainersOnSave": { "alias": "removeEmptyContainersOnSave"; "required": false; }; "reactiveValidation": { "alias": "reactiveValidation"; "required": false; }; "reactiveValidationDebounceMs": { "alias": "reactiveValidationDebounceMs"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "readonlyModeGlobal": { "alias": "readonlyModeGlobal"; "required": false; }; "disabledModeGlobal": { "alias": "disabledModeGlobal"; "required": false; }; "presentationModeGlobal": { "alias": "presentationModeGlobal"; "required": false; }; "visibleGlobal": { "alias": "visibleGlobal"; "required": false; }; "customEndpoints": { "alias": "customEndpoints"; "required": false; }; }, { "formSubmit": "formSubmit"; "formCancel": "formCancel"; "formReset": "formReset"; "configChange": "configChange"; "formReady": "formReady"; "valueChange": "valueChange"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; }, never, never, true, never>;
1019
1077
  }
1020
1078
 
1021
1079
  declare class FormConfigService {
@@ -1146,13 +1204,16 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
1146
1204
  };
1147
1205
  private destroy$;
1148
1206
  private hasProcessedInitialRuleState;
1207
+ private jsonEditorIsValid;
1208
+ private globalActionValidationIssues;
1209
+ private readonly globalActionCatalog;
1149
1210
  isDirty$: BehaviorSubject<boolean>;
1150
1211
  isValid$: BehaviorSubject<boolean>;
1151
1212
  isBusy$: BehaviorSubject<boolean>;
1152
1213
  private lastRulesSignature;
1153
1214
  private readonly DEBUG;
1154
1215
  private debugLog;
1155
- constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, injectedData?: any);
1216
+ constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, globalActionCatalogSource?: ReadonlyArray<GlobalActionCatalogEntry[]>, injectedData?: any);
1156
1217
  ngOnInit(): void;
1157
1218
  reset(): void;
1158
1219
  updateDirtyState(reason?: string): void;
@@ -1162,6 +1223,11 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
1162
1223
  onJsonValidationChange(result: JsonValidationResult): void;
1163
1224
  onJsonEditorEvent(_event: JsonEditorEvent): void;
1164
1225
  onConfigChange(newConfig: FormConfig): void;
1226
+ private updateValidityState;
1227
+ private collectGlobalActionValidationIssues;
1228
+ private collectGlobalActionValidationTargets;
1229
+ private findGlobalActionCatalogEntry;
1230
+ private buildGlobalActionCatalog;
1165
1231
  onRulesChanged(state: RuleBuilderState): void;
1166
1232
  get jsonDocument(): DynamicFormAuthoringDocument;
1167
1233
  onBackConfigChange(): void;
@@ -1194,7 +1260,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
1194
1260
  private toPresentationSnapshot;
1195
1261
  private toSchemaPrefsSnapshot;
1196
1262
  private toBackConfigSnapshot;
1197
- static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }]>;
1263
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }, { optional: true; }]>;
1198
1264
  static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicFormConfigEditor, "praxis-dynamic-form-config-editor", never, {}, {}, never, never, true, never>;
1199
1265
  }
1200
1266
  interface FormConfigLike {
@@ -1527,6 +1593,7 @@ type ActionCatalogOption = {
1527
1593
  id: string;
1528
1594
  label: string;
1529
1595
  description?: string;
1596
+ payloadSchema?: GlobalActionCatalogEntry['payloadSchema'];
1530
1597
  param?: {
1531
1598
  required?: boolean;
1532
1599
  label?: string;
@@ -1580,7 +1647,6 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
1580
1647
  isBusy$: BehaviorSubject<boolean>;
1581
1648
  private readonly globalActionCatalogSource;
1582
1649
  private readonly i18n;
1583
- readonly legacyActionSpecs: _praxisui_core.GlobalActionSpec[];
1584
1650
  readonly globalActionCatalog: ActionCatalogOption[];
1585
1651
  readonly customActionValue = "__custom__";
1586
1652
  private destroy$;
@@ -1600,12 +1666,12 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
1600
1666
  label?: string;
1601
1667
  }): string;
1602
1668
  getHeaderActionSpecById(id: string): ActionCatalogOption | undefined;
1603
- getHeaderActionSelectValue(value?: string): string;
1604
- getHeaderActionParam(value?: string): string;
1605
- getHeaderActionCustomValue(value?: string): string;
1606
- getHeaderGlobalActionSchema(value?: string): _praxisui_core.GlobalActionUiSchema | undefined;
1607
- getHeaderSurfaceOpenActionPayload(value?: string): SurfaceOpenPayload;
1608
- isHeaderActionParamMissing(value?: string): boolean;
1669
+ getHeaderActionSelectValue(value?: string, globalAction?: GlobalActionRef): string;
1670
+ getHeaderActionParam(value?: string, globalAction?: GlobalActionRef): string;
1671
+ getHeaderActionCustomValue(value?: string, globalAction?: GlobalActionRef): string;
1672
+ getHeaderGlobalActionSchema(value?: string, globalAction?: GlobalActionRef): _praxisui_core.GlobalActionUiSchema | undefined;
1673
+ getHeaderSurfaceOpenActionPayload(value?: string, globalAction?: GlobalActionRef): SurfaceOpenPayload;
1674
+ isHeaderActionParamMissing(value?: string, globalAction?: GlobalActionRef): boolean;
1609
1675
  onHeaderActionSelectChange(index: number, value: string): void;
1610
1676
  onHeaderActionParamChange(index: number, value: string): void;
1611
1677
  onHeaderActionCustomChange(index: number, value: string): void;
@@ -1639,6 +1705,7 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
1639
1705
  private normalizeHeaderActions;
1640
1706
  private mapCatalogEntryToActionSpec;
1641
1707
  private getActionCatalogDescription;
1708
+ private normalizeHeaderGlobalAction;
1642
1709
  private headerActionStyleValidator;
1643
1710
  private stringifyHeaderActionStyle;
1644
1711
  private parseHeaderActionStyle;
@@ -1919,5 +1986,14 @@ declare const FORM_COMPONENT_AI_CAPABILITIES: CapabilityCatalog;
1919
1986
  */
1920
1987
  declare function getFormAiCatalog(formConfig?: FormConfig): AiCapabilityCatalog;
1921
1988
 
1922
- export { ActionsEditorComponent, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DynamicFormLayoutService, FORM_AI_CAPABILITIES, FORM_COMPONENT_AI_CAPABILITIES, FieldConfiguratorComponent, FieldEditorComponent, FormConfigService, FormContextService, FormLayoutService, JsonConfigEditorComponent, LayoutColorToken, LayoutEditorComponent, LayoutPrefsService, PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA, PRAXIS_FILTER_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisFilterForm, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildDynamicFormApplyPlan, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
1989
+ /**
1990
+ * Manifesto de authoring canônico para o componente praxis-dynamic-form.
1991
+ * Este arquivo define as operações permitidas pela IA para editar formulários.
1992
+ *
1993
+ * @version 1.4.0
1994
+ * @status COMPLIANT - Alinhado com contrato v2, gate de aceitação e semântica local/schema-backed.
1995
+ */
1996
+ declare const PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST: ComponentAuthoringManifest;
1997
+
1998
+ export { ActionsEditorComponent, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DynamicFormLayoutService, FORM_AI_CAPABILITIES, FORM_COMPONENT_AI_CAPABILITIES, FieldConfiguratorComponent, FieldEditorComponent, FormConfigService, FormContextService, FormLayoutService, JsonConfigEditorComponent, LayoutColorToken, LayoutEditorComponent, LayoutPrefsService, PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST, PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA, PRAXIS_FILTER_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisFilterForm, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildDynamicFormApplyPlan, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
1923
1999
  export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, DynamicFieldRenderErrorEvent, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormContextSnapshot, DynamicFormMode, DynamicFormPresentationSnapshot, DynamicFormProjectionContext, DynamicFormResolvedRuntimeContract, DynamicFormRuntimeContext, DynamicFormRuntimeValueSource, DynamicFormSchemaPrefsSnapshot, DynamicFormValidationContext, EditorDiagnostic, EditorDocument, FieldPath, FieldPathContainer, FieldPathWithIndex, Capability as FormComponentCapability, CapabilityCatalog as FormComponentCapabilityCatalog, CapabilityCategory as FormComponentCapabilityCategory, ValueKind as FormComponentValueKind, FormConfigLike, IdPath, JsonEditorEvent, JsonValidationResult, LayoutChange, LayoutResult, Operation, Path, PathWithIndex, PraxisFormActionEvent, RemovePolicy, ValidationReport, ValueKind$1 as ValueKind };
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@praxisui/dynamic-form",
3
- "version": "8.0.0-beta.0",
3
+ "version": "8.0.0-beta.11",
4
4
  "description": "Angular dynamic form engine for Praxis UI: metadata-driven forms, hooks, and services integrating @praxisui/* packages.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^20.0.0",
7
7
  "@angular/core": "^20.0.0",
8
8
  "@angular/cdk": "^20.0.0",
9
- "@praxisui/rich-content": "^8.0.0-beta.0",
10
- "@praxisui/settings-panel": "^8.0.0-beta.0",
11
- "@praxisui/visual-builder": "^8.0.0-beta.0",
12
- "@praxisui/core": "^8.0.0-beta.0",
13
- "@praxisui/cron-builder": "^8.0.0-beta.0"
9
+ "@praxisui/rich-content": "^8.0.0-beta.11",
10
+ "@praxisui/settings-panel": "^8.0.0-beta.11",
11
+ "@praxisui/visual-builder": "^8.0.0-beta.11",
12
+ "@praxisui/core": "^8.0.0-beta.11",
13
+ "@praxisui/cron-builder": "^8.0.0-beta.11"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.3.0",