@praxisui/dynamic-form 9.0.0-beta.60 → 9.0.0-beta.62

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-09T12:14:45.592Z",
3
+ "generatedAt": "2026-07-09T14:19:11.232Z",
4
4
  "packageName": "@praxisui/dynamic-form",
5
- "packageVersion": "9.0.0-beta.60",
5
+ "packageVersion": "9.0.0-beta.62",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 2,
@@ -10638,6 +10638,12 @@ class PraxisDynamicForm {
10638
10638
  next ??= { ...field };
10639
10639
  return next;
10640
10640
  };
10641
+ if (this.shouldMaterializeBooleanControl(field)) {
10642
+ const target = draft();
10643
+ target['controlType'] = 'toggle';
10644
+ target['dataType'] = target['dataType'] ?? 'boolean';
10645
+ target['valuePresentation'] = target['valuePresentation'] ?? { type: 'boolean' };
10646
+ }
10641
10647
  if (this.shouldSuppressFieldIcons()) {
10642
10648
  const target = draft();
10643
10649
  delete target['icon'];
@@ -10656,6 +10662,15 @@ class PraxisDynamicForm {
10656
10662
  }
10657
10663
  return next ?? field;
10658
10664
  }
10665
+ shouldMaterializeBooleanControl(field) {
10666
+ const controlType = String(field.controlType ?? '').trim().toLowerCase();
10667
+ if (controlType && controlType !== 'boolean') {
10668
+ return false;
10669
+ }
10670
+ const dataType = String(field.dataType ?? field.type ?? '').trim().toLowerCase();
10671
+ const valuePresentationType = String(field.valuePresentation?.type ?? '').trim().toLowerCase();
10672
+ return dataType === 'boolean' || valuePresentationType === 'boolean' || controlType === 'boolean';
10673
+ }
10659
10674
  materializeFieldHelpPolicy(field, helpPresentation) {
10660
10675
  if (!helpPresentation?.display) {
10661
10676
  return field;
@@ -14309,10 +14324,7 @@ class PraxisDynamicForm {
14309
14324
  if (items.some((item) => item.kind === 'richContent' && this.isRichContentLayoutItemVisible(item))) {
14310
14325
  return true;
14311
14326
  }
14312
- // Explicit runtime visibility wins; otherwise resolve metadata/rule visibility directly.
14313
- return getFormLayoutFieldNames(items).some((fieldName) => {
14314
- return this.isFieldRenderableInLayout(fieldName);
14315
- });
14327
+ return this.getColumnFields(column).length > 0;
14316
14328
  }
14317
14329
  isResponsiveHiddenActive(hidden) {
14318
14330
  if (!hidden || typeof hidden !== 'object' || Array.isArray(hidden)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/dynamic-form",
3
- "version": "9.0.0-beta.60",
3
+ "version": "9.0.0-beta.62",
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": "^21.0.0",
@@ -9,13 +9,13 @@
9
9
  "@angular/forms": "^21.0.0",
10
10
  "@angular/material": "^21.0.0",
11
11
  "@angular/router": "^21.0.0",
12
- "@praxisui/ai": "^9.0.0-beta.60",
13
- "@praxisui/dynamic-fields": "^9.0.0-beta.60",
14
- "@praxisui/metadata-editor": "^9.0.0-beta.60",
15
- "@praxisui/rich-content": "^9.0.0-beta.60",
16
- "@praxisui/settings-panel": "^9.0.0-beta.60",
17
- "@praxisui/visual-builder": "^9.0.0-beta.60",
18
- "@praxisui/core": "^9.0.0-beta.60",
12
+ "@praxisui/ai": "^9.0.0-beta.62",
13
+ "@praxisui/dynamic-fields": "^9.0.0-beta.62",
14
+ "@praxisui/metadata-editor": "^9.0.0-beta.62",
15
+ "@praxisui/rich-content": "^9.0.0-beta.62",
16
+ "@praxisui/settings-panel": "^9.0.0-beta.62",
17
+ "@praxisui/visual-builder": "^9.0.0-beta.62",
18
+ "@praxisui/core": "^9.0.0-beta.62",
19
19
  "rxjs": "^7.8.0"
20
20
  },
21
21
  "dependencies": {
@@ -809,6 +809,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
809
809
  get presentationForLoader(): boolean | null;
810
810
  getRenderableFieldsForLoader(fields: FieldMetadata[]): FieldMetadata[];
811
811
  private materializeFieldPresentationPolicy;
812
+ private shouldMaterializeBooleanControl;
812
813
  private materializeFieldHelpPolicy;
813
814
  private shouldSuppressFieldIcons;
814
815
  private resolveFieldHelpDisplay;