@vectoriox/iox-builder 4.13.0 → 4.14.0

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.
@@ -180,6 +180,12 @@ var TraitInputType;
180
180
  /** Ordered list of images (URL / one-by-one / filebox; per-item binding in a later phase).
181
181
  * Controller registered in the consumer (iox-cms-client) as `mediaList`. Value: GalleryImage[]. */
182
182
  TraitInputType["MediaList"] = "mediaList";
183
+ /** Additive validation rules for a Field (`ValidationRule[]` from forms-core). Controller
184
+ * registered in the consumer (iox-cms-client) as `ruleList`. */
185
+ TraitInputType["RuleList"] = "ruleList";
186
+ /** The ordered "After submit" action list on a Form (`SubmitAction[]`). Controller registered
187
+ * in the consumer as `actionList`. */
188
+ TraitInputType["ActionList"] = "actionList";
183
189
  TraitInputType["FontFamily"] = "fontFamily";
184
190
  TraitInputType["GridTemplate"] = "gridTemplate";
185
191
  TraitInputType["SectionLabel"] = "sectionLabel";
@@ -9690,6 +9696,10 @@ class FormComponentConfig extends ComponentConfig {
9690
9696
  // On by default and invisible to the visitor (decision D12).
9691
9697
  new TraitConfig('honeypot', 'Honeypot field', TraitInputType.Checkbox, undefined, true),
9692
9698
  new TraitConfig('minFillMs', 'Minimum fill time (ms)', TraitInputType.Number, undefined, 1200),
9699
+ new TraitConfig('__afterSubmitLabel', 'After submit', TraitInputType.SectionLabel),
9700
+ // The ordered destination list. `store` is always first and cannot be removed — it is
9701
+ // the safety net the whole store-first design rests on.
9702
+ new TraitConfig('actions', 'Destinations', TraitInputType.ActionList, undefined, [{ type: 'store' }]),
9693
9703
  new TraitConfig('__dataLabel', 'Data', TraitInputType.SectionLabel),
9694
9704
  // Absent means keep forever — the confirmed default. A number opts into purging.
9695
9705
  new TraitConfig('retentionDays', 'Delete submissions after (days)', TraitInputType.Number, undefined, ''),
@@ -9757,9 +9767,9 @@ class FieldComponentConfig extends ComponentConfig {
9757
9767
  new TraitConfig('optionsText', 'Choices (one per line)', TraitInputType.Textarea, undefined, '', false, { trait: 'control', values: ['select', 'radio'] }),
9758
9768
  new TraitConfig('__validationLabel', 'Validation', TraitInputType.SectionLabel),
9759
9769
  new TraitConfig('required', 'Required', TraitInputType.Checkbox, undefined, false),
9760
- // `rules` is the additive list (minLength, pattern, matches, …). Its editor is a panel
9761
- // concern; the node just carries the array.
9762
- new TraitConfig('rules', 'Rules', TraitInputType.Textarea, undefined, ''),
9770
+ // The additive rule list (minLength, pattern, matches, …). Unused rules are invisible
9771
+ // rather than a wall of empty controls — the Effects-group pattern.
9772
+ new TraitConfig('rules', 'Rules', TraitInputType.RuleList, undefined, []),
9763
9773
  ];
9764
9774
  this.styleTraits = fullStyles();
9765
9775
  this.applyStyleDefaults({