@praxisui/visual-builder 0.0.1 → 1.0.0-beta.1

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.
@@ -768,7 +768,7 @@ class FieldConditionEditorComponent {
768
768
  <div class="preview-text">{{ getPreviewText() }}</div>
769
769
  </div>
770
770
  </form>
771
- `, isInline: true, styles: [".field-condition-form{display:flex;flex-direction:column;gap:16px;min-width:300px}.form-row{display:flex;gap:12px;align-items:flex-start}.field-select,.operator-select,.value-type-select{flex:1;min-width:150px}.value-input-container{display:flex;flex-direction:column;gap:12px;flex:2}.value-input{width:100%}.field-option,.context-option,.function-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.variable-name{font-family:monospace;font-weight:500;color:var(--mdc-theme-secondary)}.variable-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.function-name{font-weight:500;color:var(--mdc-theme-tertiary)}.function-desc{font-size:12px;color:var(--mdc-theme-on-surface-variant);font-style:italic}.boolean-input{display:flex;align-items:center;padding:12px 0}.array-input{width:100%}.function-input{display:flex;flex-direction:column;gap:8px}.function-select{width:100%}.validation-messages{background:var(--mdc-theme-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--mdc-theme-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.condition-preview{background:var(--mdc-theme-surface-variant);border-radius:8px;padding:12px;border-left:4px solid var(--mdc-theme-primary)}.preview-label{font-size:12px;font-weight:500;color:var(--mdc-theme-on-surface-variant);margin-bottom:4px}.preview-text{font-family:monospace;font-size:14px;color:var(--mdc-theme-on-surface);background:var(--mdc-theme-surface);padding:8px;border-radius:4px;border:1px solid var(--mdc-theme-outline)}@media (max-width: 768px){.form-row{flex-direction:column}.field-select,.operator-select,.value-type-select{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "ngmodule", type: MatTooltipModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
771
+ `, isInline: true, styles: [".field-condition-form{display:flex;flex-direction:column;gap:16px;min-width:300px}.form-row{display:flex;gap:12px;align-items:flex-start}.field-select,.operator-select,.value-type-select{flex:1;min-width:150px}.value-input-container{display:flex;flex-direction:column;gap:12px;flex:2}.value-input{width:100%}.field-option,.context-option,.function-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.variable-name{font-family:monospace;font-weight:500;color:var(--md-sys-color-secondary)}.variable-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.function-name{font-weight:500;color:var(--md-sys-color-tertiary)}.function-desc{font-size:12px;color:var(--md-sys-color-on-surface-variant);font-style:italic}.boolean-input{display:flex;align-items:center;padding:12px 0}.array-input{width:100%}.function-input{display:flex;flex-direction:column;gap:8px}.function-select{width:100%}.validation-messages{background:var(--md-sys-color-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--md-sys-color-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.condition-preview{background:var(--md-sys-color-surface-container);border-radius:8px;padding:12px;border-left:4px solid var(--md-sys-color-primary)}.preview-label{font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface-variant);margin-bottom:4px}.preview-text{font-family:monospace;font-size:14px;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface);padding:8px;border-radius:4px;border:1px solid var(--md-sys-color-outline-variant)}@media (max-width: 768px){.form-row{flex-direction:column}.field-select,.operator-select,.value-type-select{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "ngmodule", type: MatTooltipModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
772
772
  }
773
773
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FieldConditionEditorComponent, decorators: [{
774
774
  type: Component,
@@ -1026,7 +1026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
1026
1026
  <div class="preview-text">{{ getPreviewText() }}</div>
1027
1027
  </div>
1028
1028
  </form>
1029
- `, styles: [".field-condition-form{display:flex;flex-direction:column;gap:16px;min-width:300px}.form-row{display:flex;gap:12px;align-items:flex-start}.field-select,.operator-select,.value-type-select{flex:1;min-width:150px}.value-input-container{display:flex;flex-direction:column;gap:12px;flex:2}.value-input{width:100%}.field-option,.context-option,.function-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.variable-name{font-family:monospace;font-weight:500;color:var(--mdc-theme-secondary)}.variable-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.function-name{font-weight:500;color:var(--mdc-theme-tertiary)}.function-desc{font-size:12px;color:var(--mdc-theme-on-surface-variant);font-style:italic}.boolean-input{display:flex;align-items:center;padding:12px 0}.array-input{width:100%}.function-input{display:flex;flex-direction:column;gap:8px}.function-select{width:100%}.validation-messages{background:var(--mdc-theme-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--mdc-theme-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.condition-preview{background:var(--mdc-theme-surface-variant);border-radius:8px;padding:12px;border-left:4px solid var(--mdc-theme-primary)}.preview-label{font-size:12px;font-weight:500;color:var(--mdc-theme-on-surface-variant);margin-bottom:4px}.preview-text{font-family:monospace;font-size:14px;color:var(--mdc-theme-on-surface);background:var(--mdc-theme-surface);padding:8px;border-radius:4px;border:1px solid var(--mdc-theme-outline)}@media (max-width: 768px){.form-row{flex-direction:column}.field-select,.operator-select,.value-type-select{width:100%}}\n"] }]
1029
+ `, styles: [".field-condition-form{display:flex;flex-direction:column;gap:16px;min-width:300px}.form-row{display:flex;gap:12px;align-items:flex-start}.field-select,.operator-select,.value-type-select{flex:1;min-width:150px}.value-input-container{display:flex;flex-direction:column;gap:12px;flex:2}.value-input{width:100%}.field-option,.context-option,.function-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.variable-name{font-family:monospace;font-weight:500;color:var(--md-sys-color-secondary)}.variable-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.function-name{font-weight:500;color:var(--md-sys-color-tertiary)}.function-desc{font-size:12px;color:var(--md-sys-color-on-surface-variant);font-style:italic}.boolean-input{display:flex;align-items:center;padding:12px 0}.array-input{width:100%}.function-input{display:flex;flex-direction:column;gap:8px}.function-select{width:100%}.validation-messages{background:var(--md-sys-color-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--md-sys-color-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.condition-preview{background:var(--md-sys-color-surface-container);border-radius:8px;padding:12px;border-left:4px solid var(--md-sys-color-primary)}.preview-label{font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface-variant);margin-bottom:4px}.preview-text{font-family:monospace;font-size:14px;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface);padding:8px;border-radius:4px;border:1px solid var(--md-sys-color-outline-variant)}@media (max-width: 768px){.form-row{flex-direction:column}.field-select,.operator-select,.value-type-select{width:100%}}\n"] }]
1030
1030
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { config: [{
1031
1031
  type: Input
1032
1032
  }], fieldSchemas: [{
@@ -1630,7 +1630,7 @@ class ConditionalValidatorEditorComponent {
1630
1630
  </div>
1631
1631
  </div>
1632
1632
  </form>
1633
- `, isInline: true, styles: [".conditional-validator-form{display:flex;flex-direction:column;gap:16px;max-width:800px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-field-select{flex:1;min-width:200px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--mdc-theme-primary)}.validator-option small{color:var(--mdc-theme-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:16px;background:var(--mdc-theme-surface-variant)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.condition-mode-selector{margin-bottom:16px}.simple-condition,.advanced-condition{background:var(--mdc-theme-surface);border-radius:8px;padding:16px}.logic-operator{width:100%;margin-bottom:16px}.conditions-list{display:flex;flex-direction:column;gap:12px}.condition-item{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:12px;background:var(--mdc-theme-surface-variant)}.condition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.condition-number{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.add-condition-button{align-self:flex-start}.validation-settings,.ui-settings{display:flex;flex-direction:column;gap:12px}.validation-options{display:flex;flex-direction:column;gap:8px}.error-message-input,.animation-select,.disabled-style-select,.readonly-style-select,.disabled-message-input{width:100%}.preview-section{background:var(--mdc-theme-primary-container);border-color:var(--mdc-theme-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--mdc-theme-surface);padding:12px;border-radius:4px;border:1px solid var(--mdc-theme-outline)}.preview-logic{font-size:12px;color:var(--mdc-theme-on-surface-variant)}.validation-messages{background:var(--mdc-theme-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--mdc-theme-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-field-select{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i7$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: FieldConditionEditorComponent, selector: "praxis-field-condition-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1633
+ `, isInline: true, styles: [".conditional-validator-form{display:flex;flex-direction:column;gap:16px;max-width:800px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-field-select{flex:1;min-width:200px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--md-sys-color-primary)}.validator-option small{color:var(--md-sys-color-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-variant);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--md-sys-color-outline);border-radius:8px;padding:16px;background:var(--md-sys-color-surface-variant)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.condition-mode-selector{margin-bottom:16px}.simple-condition,.advanced-condition{background:var(--md-sys-color-surface);border-radius:8px;padding:16px}.logic-operator{width:100%;margin-bottom:16px}.conditions-list{display:flex;flex-direction:column;gap:12px}.condition-item{border:1px solid var(--md-sys-color-outline);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-variant)}.condition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.condition-number{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.add-condition-button{align-self:flex-start}.validation-settings,.ui-settings{display:flex;flex-direction:column;gap:12px}.validation-options{display:flex;flex-direction:column;gap:8px}.error-message-input,.animation-select,.disabled-style-select,.readonly-style-select,.disabled-message-input{width:100%}.preview-section{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--md-sys-color-surface);padding:12px;border-radius:4px;border:1px solid var(--md-sys-color-outline)}.preview-logic{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.validation-messages{background:var(--md-sys-color-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--md-sys-color-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-field-select{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i7$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: FieldConditionEditorComponent, selector: "praxis-field-condition-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1634
1634
  }
1635
1635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: ConditionalValidatorEditorComponent, decorators: [{
1636
1636
  type: Component,
@@ -1962,7 +1962,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
1962
1962
  </div>
1963
1963
  </div>
1964
1964
  </form>
1965
- `, styles: [".conditional-validator-form{display:flex;flex-direction:column;gap:16px;max-width:800px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-field-select{flex:1;min-width:200px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--mdc-theme-primary)}.validator-option small{color:var(--mdc-theme-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:16px;background:var(--mdc-theme-surface-variant)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.condition-mode-selector{margin-bottom:16px}.simple-condition,.advanced-condition{background:var(--mdc-theme-surface);border-radius:8px;padding:16px}.logic-operator{width:100%;margin-bottom:16px}.conditions-list{display:flex;flex-direction:column;gap:12px}.condition-item{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:12px;background:var(--mdc-theme-surface-variant)}.condition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.condition-number{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.add-condition-button{align-self:flex-start}.validation-settings,.ui-settings{display:flex;flex-direction:column;gap:12px}.validation-options{display:flex;flex-direction:column;gap:8px}.error-message-input,.animation-select,.disabled-style-select,.readonly-style-select,.disabled-message-input{width:100%}.preview-section{background:var(--mdc-theme-primary-container);border-color:var(--mdc-theme-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--mdc-theme-surface);padding:12px;border-radius:4px;border:1px solid var(--mdc-theme-outline)}.preview-logic{font-size:12px;color:var(--mdc-theme-on-surface-variant)}.validation-messages{background:var(--mdc-theme-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--mdc-theme-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-field-select{width:100%}}\n"] }]
1965
+ `, styles: [".conditional-validator-form{display:flex;flex-direction:column;gap:16px;max-width:800px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-field-select{flex:1;min-width:200px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--md-sys-color-primary)}.validator-option small{color:var(--md-sys-color-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-variant);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--md-sys-color-outline);border-radius:8px;padding:16px;background:var(--md-sys-color-surface-variant)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.condition-mode-selector{margin-bottom:16px}.simple-condition,.advanced-condition{background:var(--md-sys-color-surface);border-radius:8px;padding:16px}.logic-operator{width:100%;margin-bottom:16px}.conditions-list{display:flex;flex-direction:column;gap:12px}.condition-item{border:1px solid var(--md-sys-color-outline);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-variant)}.condition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.condition-number{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.add-condition-button{align-self:flex-start}.validation-settings,.ui-settings{display:flex;flex-direction:column;gap:12px}.validation-options{display:flex;flex-direction:column;gap:8px}.error-message-input,.animation-select,.disabled-style-select,.readonly-style-select,.disabled-message-input{width:100%}.preview-section{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--md-sys-color-surface);padding:12px;border-radius:4px;border:1px solid var(--md-sys-color-outline)}.preview-logic{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.validation-messages{background:var(--md-sys-color-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--md-sys-color-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-field-select{width:100%}}\n"] }]
1966
1966
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { config: [{
1967
1967
  type: Input
1968
1968
  }], fieldSchemas: [{
@@ -2694,7 +2694,7 @@ class CollectionValidatorEditorComponent {
2694
2694
  </div>
2695
2695
  </div>
2696
2696
  </form>
2697
- `, isInline: true, styles: [".collection-validator-form{display:flex;flex-direction:column;gap:16px;max-width:900px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-collection-select{flex:1;min-width:250px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--mdc-theme-primary)}.validator-option small{color:var(--mdc-theme-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:16px;background:var(--mdc-theme-surface-variant)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.section-title h5{margin:16px 0 8px;font-size:13px;font-weight:500;color:var(--mdc-theme-primary)}.foreach-config,.unique-config,.length-config{display:flex;flex-direction:column;gap:16px}.item-schema-info{display:flex;gap:12px}.item-variable-input,.index-variable-input{flex:1}.validation-rules{background:var(--mdc-theme-surface);border-radius:8px;padding:16px}.validation-rule-item,.unique-field-item{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--mdc-theme-surface-variant)}.rule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rule-number{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.rule-config{display:flex;flex-direction:column;gap:8px}.unique-field-item{display:flex;align-items:center;gap:8px}.field-path-input{flex:1}.length-inputs{display:flex;gap:12px}.length-input{flex:1}.length-slider{margin:16px 0}.length-slider label{display:block;margin-bottom:8px;font-size:13px;font-weight:500}.length-options,.unique-options{display:flex;flex-direction:column;gap:12px}.advanced-options{background:var(--mdc-theme-secondary-container);border-color:var(--mdc-theme-secondary)}.advanced-config{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.validation-timing,.error-handling,.performance-options{display:flex;flex-direction:column;gap:8px}.validation-timing h5,.error-handling h5,.performance-options h5{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--mdc-theme-secondary);text-transform:uppercase}.add-rule-button,.add-field-button{align-self:flex-start}.preview-section{background:var(--mdc-theme-primary-container);border-color:var(--mdc-theme-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--mdc-theme-surface);padding:12px;border-radius:4px;border:1px solid var(--mdc-theme-outline)}.preview-details{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.validation-messages{background:var(--mdc-theme-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--mdc-theme-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 1024px){.advanced-config{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-collection-select{width:100%}.item-schema-info,.length-inputs{flex-direction:column}.advanced-config{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i9.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i9.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2697
+ `, isInline: true, styles: [".collection-validator-form{display:flex;flex-direction:column;gap:16px;max-width:900px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-collection-select{flex:1;min-width:250px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--md-sys-color-primary)}.validator-option small{color:var(--md-sys-color-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;padding:16px;background:var(--md-sys-color-surface-container)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.section-title h5{margin:16px 0 8px;font-size:13px;font-weight:500;color:var(--md-sys-color-primary)}.foreach-config,.unique-config,.length-config{display:flex;flex-direction:column;gap:16px}.item-schema-info{display:flex;gap:12px}.item-variable-input,.index-variable-input{flex:1}.validation-rules{background:var(--md-sys-color-surface);border-radius:8px;padding:16px}.validation-rule-item,.unique-field-item{border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--md-sys-color-surface-container)}.rule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rule-number{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.rule-config{display:flex;flex-direction:column;gap:8px}.unique-field-item{display:flex;align-items:center;gap:8px}.field-path-input{flex:1}.length-inputs{display:flex;gap:12px}.length-input{flex:1}.length-slider{margin:16px 0}.length-slider label{display:block;margin-bottom:8px;font-size:13px;font-weight:500}.length-options,.unique-options{display:flex;flex-direction:column;gap:12px}.advanced-options{background:var(--md-sys-color-secondary-container);border-color:var(--md-sys-color-secondary)}.advanced-config{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.validation-timing,.error-handling,.performance-options{display:flex;flex-direction:column;gap:8px}.validation-timing h5,.error-handling h5,.performance-options h5{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--md-sys-color-secondary);text-transform:uppercase}.add-rule-button,.add-field-button{align-self:flex-start}.preview-section{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--md-sys-color-surface);padding:12px;border-radius:4px;border:1px solid var(--md-sys-color-outline-variant)}.preview-details{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.validation-messages{background:var(--md-sys-color-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--md-sys-color-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 1024px){.advanced-config{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-collection-select{width:100%}.item-schema-info,.length-inputs{flex-direction:column}.advanced-config{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i9.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i9.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2698
2698
  }
2699
2699
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: CollectionValidatorEditorComponent, decorators: [{
2700
2700
  type: Component,
@@ -3100,7 +3100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
3100
3100
  </div>
3101
3101
  </div>
3102
3102
  </form>
3103
- `, styles: [".collection-validator-form{display:flex;flex-direction:column;gap:16px;max-width:900px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-collection-select{flex:1;min-width:250px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--mdc-theme-primary)}.validator-option small{color:var(--mdc-theme-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:16px;background:var(--mdc-theme-surface-variant)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.section-title h5{margin:16px 0 8px;font-size:13px;font-weight:500;color:var(--mdc-theme-primary)}.foreach-config,.unique-config,.length-config{display:flex;flex-direction:column;gap:16px}.item-schema-info{display:flex;gap:12px}.item-variable-input,.index-variable-input{flex:1}.validation-rules{background:var(--mdc-theme-surface);border-radius:8px;padding:16px}.validation-rule-item,.unique-field-item{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--mdc-theme-surface-variant)}.rule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rule-number{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.rule-config{display:flex;flex-direction:column;gap:8px}.unique-field-item{display:flex;align-items:center;gap:8px}.field-path-input{flex:1}.length-inputs{display:flex;gap:12px}.length-input{flex:1}.length-slider{margin:16px 0}.length-slider label{display:block;margin-bottom:8px;font-size:13px;font-weight:500}.length-options,.unique-options{display:flex;flex-direction:column;gap:12px}.advanced-options{background:var(--mdc-theme-secondary-container);border-color:var(--mdc-theme-secondary)}.advanced-config{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.validation-timing,.error-handling,.performance-options{display:flex;flex-direction:column;gap:8px}.validation-timing h5,.error-handling h5,.performance-options h5{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--mdc-theme-secondary);text-transform:uppercase}.add-rule-button,.add-field-button{align-self:flex-start}.preview-section{background:var(--mdc-theme-primary-container);border-color:var(--mdc-theme-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--mdc-theme-surface);padding:12px;border-radius:4px;border:1px solid var(--mdc-theme-outline)}.preview-details{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.validation-messages{background:var(--mdc-theme-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--mdc-theme-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 1024px){.advanced-config{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-collection-select{width:100%}.item-schema-info,.length-inputs{flex-direction:column}.advanced-config{grid-template-columns:1fr}}\n"] }]
3103
+ `, styles: [".collection-validator-form{display:flex;flex-direction:column;gap:16px;max-width:900px}.form-row{display:flex;gap:12px;align-items:flex-start}.validator-type-select,.target-collection-select{flex:1;min-width:250px}.validator-option{display:flex;flex-direction:column;gap:4px}.validator-option mat-icon{align-self:flex-start;color:var(--md-sys-color-primary)}.validator-option small{color:var(--md-sys-color-on-surface-variant);font-size:11px}.field-option{display:flex;align-items:center;gap:8px;width:100%}.field-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.form-section{border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;padding:16px;background:var(--md-sys-color-surface-container)}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.section-title h5{margin:16px 0 8px;font-size:13px;font-weight:500;color:var(--md-sys-color-primary)}.foreach-config,.unique-config,.length-config{display:flex;flex-direction:column;gap:16px}.item-schema-info{display:flex;gap:12px}.item-variable-input,.index-variable-input{flex:1}.validation-rules{background:var(--md-sys-color-surface);border-radius:8px;padding:16px}.validation-rule-item,.unique-field-item{border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--md-sys-color-surface-container)}.rule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rule-number{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.rule-config{display:flex;flex-direction:column;gap:8px}.unique-field-item{display:flex;align-items:center;gap:8px}.field-path-input{flex:1}.length-inputs{display:flex;gap:12px}.length-input{flex:1}.length-slider{margin:16px 0}.length-slider label{display:block;margin-bottom:8px;font-size:13px;font-weight:500}.length-options,.unique-options{display:flex;flex-direction:column;gap:12px}.advanced-options{background:var(--md-sys-color-secondary-container);border-color:var(--md-sys-color-secondary)}.advanced-config{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.validation-timing,.error-handling,.performance-options{display:flex;flex-direction:column;gap:8px}.validation-timing h5,.error-handling h5,.performance-options h5{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--md-sys-color-secondary);text-transform:uppercase}.add-rule-button,.add-field-button{align-self:flex-start}.preview-section{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary)}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-text{font-family:monospace;font-size:14px;background:var(--md-sys-color-surface);padding:12px;border-radius:4px;border:1px solid var(--md-sys-color-outline-variant)}.preview-details{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.validation-messages{background:var(--md-sys-color-error-container);border-radius:4px;padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;color:var(--md-sys-color-on-error-container);font-size:12px;margin-bottom:4px}.validation-error:last-child{margin-bottom:0}.validation-error mat-icon{font-size:14px;width:14px;height:14px}@media (max-width: 1024px){.advanced-config{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.form-row{flex-direction:column}.validator-type-select,.target-collection-select{width:100%}.item-schema-info,.length-inputs{flex-direction:column}.advanced-config{grid-template-columns:1fr}}\n"] }]
3104
3104
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { config: [{
3105
3105
  type: Input
3106
3106
  }], fieldSchemas: [{
@@ -3610,7 +3610,7 @@ class RuleNodeComponent {
3610
3610
  </div>
3611
3611
  </div>
3612
3612
  </div>
3613
- `, isInline: true, styles: [":host{--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.rule-node-container{position:relative;margin-bottom:16px}.rule-node{min-width:300px;border:2px solid transparent;cursor:pointer;transition:all .2s ease;position:relative}.rule-node:hover{border-color:var(--mdc-theme-primary);box-shadow:0 4px 8px var(--vb-shadow-low-color)}.rule-node.selected{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.rule-node-container.has-errors .rule-node{border-color:var(--mdc-theme-error)}.node-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--mdc-theme-outline);background:var(--mdc-theme-surface-variant)}.node-type{display:flex;align-items:center;gap:8px}.type-icon{font-size:20px;width:20px;height:20px}.type-icon.field-condition{color:var(--mdc-theme-primary)}.type-icon.boolean-group{color:var(--mdc-theme-secondary)}.type-icon.conditional-validator{color:var(--mdc-theme-tertiary)}.type-icon.collection-validation{color:var(--mdc-theme-error)}.type-label{font-weight:500;font-size:14px}.node-actions{display:flex;align-items:center;gap:4px}.error-badge{color:var(--mdc-theme-error);font-size:18px}.node-content{padding:16px}.field-condition-content,.boolean-group-content,.conditional-validator-content,.collection-validation-content{min-height:60px}.group-operator{display:flex;justify-content:center}.operator-select{width:120px}.metadata-preview{margin-top:12px;padding-top:12px;border-top:1px solid var(--mdc-theme-outline)}.metadata-chips{margin-bottom:8px}.metadata-chip{font-size:11px;height:20px}.code-chip{background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container)}.tag-chip{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container)}.metadata-message{font-size:12px;color:var(--mdc-theme-on-surface-variant);font-style:italic;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-errors{border-top:1px solid var(--mdc-theme-error);background:var(--mdc-theme-error-container);padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}.validation-error:last-child{margin-bottom:0}.validation-error.error{color:var(--mdc-theme-on-error-container)}.validation-error.warning{color:var(--mdc-theme-warning)}.error-icon{font-size:14px;width:14px;height:14px}.children-container{margin-left:24px;position:relative}.children-connector{position:absolute;left:-12px;top:0;width:12px;height:24px}.connector-line{width:2px;height:100%;background:var(--mdc-theme-outline);margin-left:10px}.children-list{padding-left:12px;border-left:2px solid var(--mdc-theme-outline)}.child-wrapper{position:relative}.child-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.child-connector .connector-line{width:2px;height:12px;background:var(--mdc-theme-outline)}.connector-operator{background:var(--mdc-theme-secondary);color:var(--mdc-theme-on-secondary);padding:2px 6px;border-radius:8px;font-size:10px;font-weight:600;margin-top:-1px}.add-child-area{display:flex;justify-content:center;margin-top:16px;padding:8px;border:1px dashed var(--mdc-theme-outline);border-radius:8px;background:var(--mdc-theme-surface-variant)}.add-child-button{color:var(--mdc-theme-primary)}.level-1{margin-left:20px}.level-2{margin-left:40px}.level-3{margin-left:60px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.children-list.cdk-drop-list-dragging .child-wrapper:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.delete-action{color:var(--mdc-theme-error)}\n"], dependencies: [{ kind: "component", type: RuleNodeComponent, selector: "praxis-rule-node", inputs: ["node", "fieldSchemas", "level", "isSelected", "validationErrors"], outputs: ["nodeClicked", "nodeUpdated", "nodeDeleted", "childAdded", "childMoved"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: FieldConditionEditorComponent, selector: "praxis-field-condition-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }, { kind: "component", type: ConditionalValidatorEditorComponent, selector: "praxis-conditional-validator-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }, { kind: "component", type: CollectionValidatorEditorComponent, selector: "praxis-collection-validator-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3613
+ `, isInline: true, styles: [":host{--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.rule-node-container{position:relative;margin-bottom:16px}.rule-node{min-width:300px;border:2px solid transparent;cursor:pointer;transition:all .2s ease;position:relative}.rule-node:hover{border-color:var(--md-sys-color-primary);box-shadow:0 4px 8px var(--vb-shadow-low-color)}.rule-node.selected{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.rule-node-container.has-errors .rule-node{border-color:var(--md-sys-color-error)}.node-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline);background:var(--md-sys-color-surface-variant)}.node-type{display:flex;align-items:center;gap:8px}.type-icon{font-size:20px;width:20px;height:20px}.type-icon.field-condition{color:var(--md-sys-color-primary)}.type-icon.boolean-group{color:var(--md-sys-color-secondary)}.type-icon.conditional-validator{color:var(--md-sys-color-tertiary)}.type-icon.collection-validation{color:var(--md-sys-color-error)}.type-label{font-weight:500;font-size:14px}.node-actions{display:flex;align-items:center;gap:4px}.error-badge{color:var(--md-sys-color-error);font-size:18px}.node-content{padding:16px}.field-condition-content,.boolean-group-content,.conditional-validator-content,.collection-validation-content{min-height:60px}.group-operator{display:flex;justify-content:center}.operator-select{width:120px}.metadata-preview{margin-top:12px;padding-top:12px;border-top:1px solid var(--md-sys-color-outline)}.metadata-chips{margin-bottom:8px}.metadata-chip{font-size:11px;height:20px}.code-chip{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.tag-chip{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.metadata-message{font-size:12px;color:var(--md-sys-color-on-surface-variant);font-style:italic;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-errors{border-top:1px solid var(--md-sys-color-error);background:var(--md-sys-color-error-container);padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}.validation-error:last-child{margin-bottom:0}.validation-error.error{color:var(--md-sys-color-on-error-container)}.validation-error.warning{color:var(--md-sys-color-secondary)}.error-icon{font-size:14px;width:14px;height:14px}.children-container{margin-left:24px;position:relative}.children-connector{position:absolute;left:-12px;top:0;width:12px;height:24px}.connector-line{width:2px;height:100%;background:var(--md-sys-color-outline);margin-left:10px}.children-list{padding-left:12px;border-left:2px solid var(--md-sys-color-outline)}.child-wrapper{position:relative}.child-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.child-connector .connector-line{width:2px;height:12px;background:var(--md-sys-color-outline)}.connector-operator{background:var(--md-sys-color-secondary);color:var(--md-sys-color-on-secondary);padding:2px 6px;border-radius:8px;font-size:10px;font-weight:600;margin-top:-1px}.add-child-area{display:flex;justify-content:center;margin-top:16px;padding:8px;border:1px dashed var(--md-sys-color-outline);border-radius:8px;background:var(--md-sys-color-surface-variant)}.add-child-button{color:var(--md-sys-color-primary)}.level-1{margin-left:20px}.level-2{margin-left:40px}.level-3{margin-left:60px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.children-list.cdk-drop-list-dragging .child-wrapper:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.delete-action{color:var(--md-sys-color-error)}\n"], dependencies: [{ kind: "component", type: RuleNodeComponent, selector: "praxis-rule-node", inputs: ["node", "fieldSchemas", "level", "isSelected", "validationErrors"], outputs: ["nodeClicked", "nodeUpdated", "nodeDeleted", "childAdded", "childMoved"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: FieldConditionEditorComponent, selector: "praxis-field-condition-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }, { kind: "component", type: ConditionalValidatorEditorComponent, selector: "praxis-conditional-validator-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }, { kind: "component", type: CollectionValidatorEditorComponent, selector: "praxis-collection-validator-editor", inputs: ["config", "fieldSchemas"], outputs: ["configChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3614
3614
  }
3615
3615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: RuleNodeComponent, decorators: [{
3616
3616
  type: Component,
@@ -3876,7 +3876,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
3876
3876
  </div>
3877
3877
  </div>
3878
3878
  </div>
3879
- `, styles: [":host{--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.rule-node-container{position:relative;margin-bottom:16px}.rule-node{min-width:300px;border:2px solid transparent;cursor:pointer;transition:all .2s ease;position:relative}.rule-node:hover{border-color:var(--mdc-theme-primary);box-shadow:0 4px 8px var(--vb-shadow-low-color)}.rule-node.selected{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.rule-node-container.has-errors .rule-node{border-color:var(--mdc-theme-error)}.node-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--mdc-theme-outline);background:var(--mdc-theme-surface-variant)}.node-type{display:flex;align-items:center;gap:8px}.type-icon{font-size:20px;width:20px;height:20px}.type-icon.field-condition{color:var(--mdc-theme-primary)}.type-icon.boolean-group{color:var(--mdc-theme-secondary)}.type-icon.conditional-validator{color:var(--mdc-theme-tertiary)}.type-icon.collection-validation{color:var(--mdc-theme-error)}.type-label{font-weight:500;font-size:14px}.node-actions{display:flex;align-items:center;gap:4px}.error-badge{color:var(--mdc-theme-error);font-size:18px}.node-content{padding:16px}.field-condition-content,.boolean-group-content,.conditional-validator-content,.collection-validation-content{min-height:60px}.group-operator{display:flex;justify-content:center}.operator-select{width:120px}.metadata-preview{margin-top:12px;padding-top:12px;border-top:1px solid var(--mdc-theme-outline)}.metadata-chips{margin-bottom:8px}.metadata-chip{font-size:11px;height:20px}.code-chip{background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container)}.tag-chip{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container)}.metadata-message{font-size:12px;color:var(--mdc-theme-on-surface-variant);font-style:italic;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-errors{border-top:1px solid var(--mdc-theme-error);background:var(--mdc-theme-error-container);padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}.validation-error:last-child{margin-bottom:0}.validation-error.error{color:var(--mdc-theme-on-error-container)}.validation-error.warning{color:var(--mdc-theme-warning)}.error-icon{font-size:14px;width:14px;height:14px}.children-container{margin-left:24px;position:relative}.children-connector{position:absolute;left:-12px;top:0;width:12px;height:24px}.connector-line{width:2px;height:100%;background:var(--mdc-theme-outline);margin-left:10px}.children-list{padding-left:12px;border-left:2px solid var(--mdc-theme-outline)}.child-wrapper{position:relative}.child-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.child-connector .connector-line{width:2px;height:12px;background:var(--mdc-theme-outline)}.connector-operator{background:var(--mdc-theme-secondary);color:var(--mdc-theme-on-secondary);padding:2px 6px;border-radius:8px;font-size:10px;font-weight:600;margin-top:-1px}.add-child-area{display:flex;justify-content:center;margin-top:16px;padding:8px;border:1px dashed var(--mdc-theme-outline);border-radius:8px;background:var(--mdc-theme-surface-variant)}.add-child-button{color:var(--mdc-theme-primary)}.level-1{margin-left:20px}.level-2{margin-left:40px}.level-3{margin-left:60px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.children-list.cdk-drop-list-dragging .child-wrapper:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.delete-action{color:var(--mdc-theme-error)}\n"] }]
3879
+ `, styles: [":host{--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.rule-node-container{position:relative;margin-bottom:16px}.rule-node{min-width:300px;border:2px solid transparent;cursor:pointer;transition:all .2s ease;position:relative}.rule-node:hover{border-color:var(--md-sys-color-primary);box-shadow:0 4px 8px var(--vb-shadow-low-color)}.rule-node.selected{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.rule-node-container.has-errors .rule-node{border-color:var(--md-sys-color-error)}.node-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline);background:var(--md-sys-color-surface-variant)}.node-type{display:flex;align-items:center;gap:8px}.type-icon{font-size:20px;width:20px;height:20px}.type-icon.field-condition{color:var(--md-sys-color-primary)}.type-icon.boolean-group{color:var(--md-sys-color-secondary)}.type-icon.conditional-validator{color:var(--md-sys-color-tertiary)}.type-icon.collection-validation{color:var(--md-sys-color-error)}.type-label{font-weight:500;font-size:14px}.node-actions{display:flex;align-items:center;gap:4px}.error-badge{color:var(--md-sys-color-error);font-size:18px}.node-content{padding:16px}.field-condition-content,.boolean-group-content,.conditional-validator-content,.collection-validation-content{min-height:60px}.group-operator{display:flex;justify-content:center}.operator-select{width:120px}.metadata-preview{margin-top:12px;padding-top:12px;border-top:1px solid var(--md-sys-color-outline)}.metadata-chips{margin-bottom:8px}.metadata-chip{font-size:11px;height:20px}.code-chip{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.tag-chip{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.metadata-message{font-size:12px;color:var(--md-sys-color-on-surface-variant);font-style:italic;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-errors{border-top:1px solid var(--md-sys-color-error);background:var(--md-sys-color-error-container);padding:8px 12px}.validation-error{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px}.validation-error:last-child{margin-bottom:0}.validation-error.error{color:var(--md-sys-color-on-error-container)}.validation-error.warning{color:var(--md-sys-color-secondary)}.error-icon{font-size:14px;width:14px;height:14px}.children-container{margin-left:24px;position:relative}.children-connector{position:absolute;left:-12px;top:0;width:12px;height:24px}.connector-line{width:2px;height:100%;background:var(--md-sys-color-outline);margin-left:10px}.children-list{padding-left:12px;border-left:2px solid var(--md-sys-color-outline)}.child-wrapper{position:relative}.child-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.child-connector .connector-line{width:2px;height:12px;background:var(--md-sys-color-outline)}.connector-operator{background:var(--md-sys-color-secondary);color:var(--md-sys-color-on-secondary);padding:2px 6px;border-radius:8px;font-size:10px;font-weight:600;margin-top:-1px}.add-child-area{display:flex;justify-content:center;margin-top:16px;padding:8px;border:1px dashed var(--md-sys-color-outline);border-radius:8px;background:var(--md-sys-color-surface-variant)}.add-child-button{color:var(--md-sys-color-primary)}.level-1{margin-left:20px}.level-2{margin-left:40px}.level-3{margin-left:60px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.children-list.cdk-drop-list-dragging .child-wrapper:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.delete-action{color:var(--md-sys-color-error)}\n"] }]
3880
3880
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { node: [{
3881
3881
  type: Input
3882
3882
  }], fieldSchemas: [{
@@ -4111,7 +4111,7 @@ class RuleCanvasComponent {
4111
4111
  </div>
4112
4112
  </div>
4113
4113
  </div>
4114
- `, isInline: true, styles: [":host{--mdc-theme-background: var(--md-sys-color-background, var(--sicoob-bg-high));--mdc-theme-surface: var(--md-sys-color-surface, var(--sicoob-bg-elev-1));--mdc-theme-surface-variant: var(--md-sys-color-surface-container, var(--sicoob-bg-elev-2));--mdc-theme-outline: var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));--mdc-theme-on-surface: var(--md-sys-color-on-surface, var(--sicoob-text-high));--mdc-theme-on-surface-variant: var(--md-sys-color-on-surface-variant, color-mix(in srgb, var(--sicoob-text-high), transparent 40%));--mdc-theme-primary: var(--md-sys-color-primary, var(--sicoob-primary-default));--mdc-theme-on-primary: var(--md-sys-color-on-primary, #fff);--mdc-theme-primary-container: var(--md-sys-color-primary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 85%));--mdc-theme-primary-rgb: 0, 150, 136}.rule-canvas{position:relative;min-height:500px;width:100%;background:var(--mdc-theme-surface);border:2px dashed var(--mdc-theme-outline);border-radius:12px;padding:24px;transition:all .3s ease}.rule-canvas.drag-over{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container);border-style:solid}.empty-state{display:flex;align-items:center;justify-content:center;height:400px;text-align:center}.empty-state-content{max-width:400px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--mdc-theme-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--mdc-theme-on-surface);font-weight:500}.empty-state p{margin:0 0 24px;color:var(--mdc-theme-on-surface-variant);line-height:1.4}.rule-tree{display:flex;flex-direction:column;gap:16px}.root-rule-container{position:relative}.root-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.connector-line{width:2px;height:16px;background:var(--mdc-theme-outline)}.connector-operator{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;margin-top:-1px}.drop-zone-overlay{position:absolute;inset:0;background:rgba(var(--mdc-theme-primary-rgb),.1);border:3px dashed var(--mdc-theme-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;z-index:1000;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--mdc-theme-primary);font-weight:500}.drop-zone-content mat-icon{font-size:48px;width:48px;height:48px}.floating-add-menu{position:fixed;bottom:24px;right:24px;z-index:1000}.main-add-button{transition:transform .3s ease}.floating-add-menu.expanded .main-add-button{transform:rotate(45deg)}.add-menu-options{position:absolute;bottom:64px;right:0;display:flex;flex-direction:column;gap:8px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.add-option-button{animation:fadeIn .3s ease;animation-fill-mode:both}.add-option-button:nth-child(1){animation-delay:.1s}.add-option-button:nth-child(2){animation-delay:.15s}.add-option-button:nth-child(3){animation-delay:.2s}.add-option-button:nth-child(4){animation-delay:.25s}.add-option-button:nth-child(5){animation-delay:.3s}@keyframes fadeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.rule-canvas{padding:16px}.floating-add-menu{bottom:16px;right:16px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "component", type: RuleNodeComponent, selector: "praxis-rule-node", inputs: ["node", "fieldSchemas", "level", "isSelected", "validationErrors"], outputs: ["nodeClicked", "nodeUpdated", "nodeDeleted", "childAdded", "childMoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4114
+ `, isInline: true, styles: [".rule-canvas{position:relative;min-height:500px;width:100%;background:var(--md-sys-color-surface);border:2px dashed var(--md-sys-color-outline);border-radius:12px;padding:24px;transition:all .3s ease}.rule-canvas.drag-over{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);border-style:solid}.empty-state{display:flex;align-items:center;justify-content:center;height:400px;text-align:center}.empty-state-content{max-width:400px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--md-sys-color-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--md-sys-color-on-surface);font-weight:500}.empty-state p{margin:0 0 24px;color:var(--md-sys-color-on-surface-variant);line-height:1.4}.rule-tree{display:flex;flex-direction:column;gap:16px}.root-rule-container{position:relative}.root-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.connector-line{width:2px;height:16px;background:var(--md-sys-color-outline)}.connector-operator{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;margin-top:-1px}.drop-zone-overlay{position:absolute;inset:0;background:color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent);border:3px dashed var(--md-sys-color-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;z-index:1000;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--md-sys-color-primary);font-weight:500}.drop-zone-content mat-icon{font-size:48px;width:48px;height:48px}.floating-add-menu{position:fixed;bottom:24px;right:24px;z-index:1000}.main-add-button{transition:transform .3s ease}.floating-add-menu.expanded .main-add-button{transform:rotate(45deg)}.add-menu-options{position:absolute;bottom:64px;right:0;display:flex;flex-direction:column;gap:8px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.add-option-button{animation:fadeIn .3s ease;animation-fill-mode:both}.add-option-button:nth-child(1){animation-delay:.1s}.add-option-button:nth-child(2){animation-delay:.15s}.add-option-button:nth-child(3){animation-delay:.2s}.add-option-button:nth-child(4){animation-delay:.25s}.add-option-button:nth-child(5){animation-delay:.3s}@keyframes fadeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.rule-canvas{padding:16px}.floating-add-menu{bottom:16px;right:16px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "component", type: RuleNodeComponent, selector: "praxis-rule-node", inputs: ["node", "fieldSchemas", "level", "isSelected", "validationErrors"], outputs: ["nodeClicked", "nodeUpdated", "nodeDeleted", "childAdded", "childMoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4115
4115
  }
4116
4116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: RuleCanvasComponent, decorators: [{
4117
4117
  type: Component,
@@ -4202,7 +4202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
4202
4202
  </div>
4203
4203
  </div>
4204
4204
  </div>
4205
- `, styles: [":host{--mdc-theme-background: var(--md-sys-color-background, var(--sicoob-bg-high));--mdc-theme-surface: var(--md-sys-color-surface, var(--sicoob-bg-elev-1));--mdc-theme-surface-variant: var(--md-sys-color-surface-container, var(--sicoob-bg-elev-2));--mdc-theme-outline: var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));--mdc-theme-on-surface: var(--md-sys-color-on-surface, var(--sicoob-text-high));--mdc-theme-on-surface-variant: var(--md-sys-color-on-surface-variant, color-mix(in srgb, var(--sicoob-text-high), transparent 40%));--mdc-theme-primary: var(--md-sys-color-primary, var(--sicoob-primary-default));--mdc-theme-on-primary: var(--md-sys-color-on-primary, #fff);--mdc-theme-primary-container: var(--md-sys-color-primary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 85%));--mdc-theme-primary-rgb: 0, 150, 136}.rule-canvas{position:relative;min-height:500px;width:100%;background:var(--mdc-theme-surface);border:2px dashed var(--mdc-theme-outline);border-radius:12px;padding:24px;transition:all .3s ease}.rule-canvas.drag-over{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container);border-style:solid}.empty-state{display:flex;align-items:center;justify-content:center;height:400px;text-align:center}.empty-state-content{max-width:400px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--mdc-theme-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--mdc-theme-on-surface);font-weight:500}.empty-state p{margin:0 0 24px;color:var(--mdc-theme-on-surface-variant);line-height:1.4}.rule-tree{display:flex;flex-direction:column;gap:16px}.root-rule-container{position:relative}.root-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.connector-line{width:2px;height:16px;background:var(--mdc-theme-outline)}.connector-operator{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;margin-top:-1px}.drop-zone-overlay{position:absolute;inset:0;background:rgba(var(--mdc-theme-primary-rgb),.1);border:3px dashed var(--mdc-theme-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;z-index:1000;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--mdc-theme-primary);font-weight:500}.drop-zone-content mat-icon{font-size:48px;width:48px;height:48px}.floating-add-menu{position:fixed;bottom:24px;right:24px;z-index:1000}.main-add-button{transition:transform .3s ease}.floating-add-menu.expanded .main-add-button{transform:rotate(45deg)}.add-menu-options{position:absolute;bottom:64px;right:0;display:flex;flex-direction:column;gap:8px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.add-option-button{animation:fadeIn .3s ease;animation-fill-mode:both}.add-option-button:nth-child(1){animation-delay:.1s}.add-option-button:nth-child(2){animation-delay:.15s}.add-option-button:nth-child(3){animation-delay:.2s}.add-option-button:nth-child(4){animation-delay:.25s}.add-option-button:nth-child(5){animation-delay:.3s}@keyframes fadeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.rule-canvas{padding:16px}.floating-add-menu{bottom:16px;right:16px}}\n"] }]
4205
+ `, styles: [".rule-canvas{position:relative;min-height:500px;width:100%;background:var(--md-sys-color-surface);border:2px dashed var(--md-sys-color-outline);border-radius:12px;padding:24px;transition:all .3s ease}.rule-canvas.drag-over{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);border-style:solid}.empty-state{display:flex;align-items:center;justify-content:center;height:400px;text-align:center}.empty-state-content{max-width:400px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--md-sys-color-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--md-sys-color-on-surface);font-weight:500}.empty-state p{margin:0 0 24px;color:var(--md-sys-color-on-surface-variant);line-height:1.4}.rule-tree{display:flex;flex-direction:column;gap:16px}.root-rule-container{position:relative}.root-connector{display:flex;flex-direction:column;align-items:center;margin:8px 0}.connector-line{width:2px;height:16px;background:var(--md-sys-color-outline)}.connector-operator{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;margin-top:-1px}.drop-zone-overlay{position:absolute;inset:0;background:color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent);border:3px dashed var(--md-sys-color-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;z-index:1000;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--md-sys-color-primary);font-weight:500}.drop-zone-content mat-icon{font-size:48px;width:48px;height:48px}.floating-add-menu{position:fixed;bottom:24px;right:24px;z-index:1000}.main-add-button{transition:transform .3s ease}.floating-add-menu.expanded .main-add-button{transform:rotate(45deg)}.add-menu-options{position:absolute;bottom:64px;right:0;display:flex;flex-direction:column;gap:8px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.add-option-button{animation:fadeIn .3s ease;animation-fill-mode:both}.add-option-button:nth-child(1){animation-delay:.1s}.add-option-button:nth-child(2){animation-delay:.15s}.add-option-button:nth-child(3){animation-delay:.2s}.add-option-button:nth-child(4){animation-delay:.25s}.add-option-button:nth-child(5){animation-delay:.3s}@keyframes fadeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.rule-canvas{padding:16px}.floating-add-menu{bottom:16px;right:16px}}\n"] }]
4206
4206
  }], ctorParameters: () => [], propDecorators: { state: [{
4207
4207
  type: Input
4208
4208
  }], fieldSchemas: [{
@@ -5011,7 +5011,7 @@ class MetadataEditorComponent {
5011
5011
  <p>Select a rule from the canvas or sidebar to edit its metadata</p>
5012
5012
  </div>
5013
5013
  </div>
5014
- `, isInline: true, styles: [".metadata-editor-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--mdc-theme-surface-variant);border-bottom:1px solid var(--mdc-theme-outline)}.node-info{display:flex;align-items:center;gap:12px}.node-icon{font-size:24px;width:24px;height:24px;color:var(--mdc-theme-primary)}.node-details{display:flex;flex-direction:column}.node-title{margin:0;font-size:16px;font-weight:500;color:var(--mdc-theme-on-surface)}.node-subtitle{margin:0;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.header-actions{display:flex;gap:8px}.metadata-form{flex:1;overflow:auto;padding:16px}.tab-content{padding:16px 0;display:flex;flex-direction:column;gap:16px}.full-width{width:100%}.form-row{display:flex;gap:12px;align-items:flex-start}.form-row>*{flex:1}.config-panel{margin-bottom:16px}.panel-content{padding:16px;display:flex;flex-direction:column;gap:16px}.priority-option,.icon-option{display:flex;align-items:center;gap:8px}.priority-option small,.icon-option small{color:var(--mdc-theme-on-surface-variant);font-size:11px}.toggle-options,.display-options,.animation-options{display:flex;flex-direction:column;gap:8px}.custom-properties{display:flex;flex-direction:column;gap:12px}.custom-property-item{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:12px;background:var(--mdc-theme-surface)}.property-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.property-number{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.property-form{display:flex;gap:8px}.property-key,.property-value{flex:2}.property-type{flex:1}.conditional-config{display:flex;flex-direction:column;gap:12px}.conditional-rules{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--mdc-theme-surface);border-radius:8px;border:1px solid var(--mdc-theme-outline)}.documentation-links{display:flex;flex-direction:column;gap:8px}.documentation-links h5{margin:0;font-size:13px;font-weight:500;color:var(--mdc-theme-primary)}.doc-link-item{display:flex;gap:8px;align-items:center}.link-title,.link-url{flex:1}.add-property-button,.add-link-button{align-self:flex-start}.preview-section{margin-top:24px;border:1px solid var(--mdc-theme-outline);border-radius:8px;overflow:hidden}.preview-title{display:flex;align-items:center;gap:8px;margin:0;padding:12px 16px;background:var(--mdc-theme-primary-container);border-bottom:1px solid var(--mdc-theme-outline);font-size:14px;font-weight:500}.preview-content{padding:16px;background:var(--mdc-theme-surface)}.preview-json{font-family:Courier New,monospace;font-size:12px;color:var(--mdc-theme-on-surface);margin:0;white-space:pre-wrap;background:var(--mdc-theme-surface-variant);padding:12px;border-radius:4px;border:1px solid var(--mdc-theme-outline);max-height:200px;overflow-y:auto}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.empty-state-content{max-width:300px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--mdc-theme-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--mdc-theme-on-surface);font-weight:500}.empty-state p{margin:0;color:var(--mdc-theme-on-surface-variant);line-height:1.4}@media (max-width: 768px){.form-row,.property-form{flex-direction:column}.doc-link-item{flex-direction:column;align-items:stretch}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i12$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i12$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5014
+ `, isInline: true, styles: [".metadata-editor-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--md-sys-color-surface-container);border-bottom:1px solid var(--md-sys-color-outline-variant)}.node-info{display:flex;align-items:center;gap:12px}.node-icon{font-size:24px;width:24px;height:24px;color:var(--md-sys-color-primary)}.node-details{display:flex;flex-direction:column}.node-title{margin:0;font-size:16px;font-weight:500;color:var(--md-sys-color-on-surface)}.node-subtitle{margin:0;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.header-actions{display:flex;gap:8px}.metadata-form{flex:1;overflow:auto;padding:16px}.tab-content{padding:16px 0;display:flex;flex-direction:column;gap:16px}.full-width{width:100%}.form-row{display:flex;gap:12px;align-items:flex-start}.form-row>*{flex:1}.config-panel{margin-bottom:16px}.panel-content{padding:16px;display:flex;flex-direction:column;gap:16px}.priority-option,.icon-option{display:flex;align-items:center;gap:8px}.priority-option small,.icon-option small{color:var(--md-sys-color-on-surface-variant);font-size:11px}.toggle-options,.display-options,.animation-options{display:flex;flex-direction:column;gap:8px}.custom-properties{display:flex;flex-direction:column;gap:12px}.custom-property-item{border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;padding:12px;background:var(--md-sys-color-surface)}.property-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.property-number{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.property-form{display:flex;gap:8px}.property-key,.property-value{flex:2}.property-type{flex:1}.conditional-config{display:flex;flex-direction:column;gap:12px}.conditional-rules{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--md-sys-color-surface);border-radius:8px;border:1px solid var(--md-sys-color-outline-variant)}.documentation-links{display:flex;flex-direction:column;gap:8px}.documentation-links h5{margin:0;font-size:13px;font-weight:500;color:var(--md-sys-color-primary)}.doc-link-item{display:flex;gap:8px;align-items:center}.link-title,.link-url{flex:1}.add-property-button,.add-link-button{align-self:flex-start}.preview-section{margin-top:24px;border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;overflow:hidden}.preview-title{display:flex;align-items:center;gap:8px;margin:0;padding:12px 16px;background:var(--md-sys-color-primary-container);border-bottom:1px solid var(--md-sys-color-outline-variant);font-size:14px;font-weight:500}.preview-content{padding:16px;background:var(--md-sys-color-surface)}.preview-json{font-family:Courier New,monospace;font-size:12px;color:var(--md-sys-color-on-surface);margin:0;white-space:pre-wrap;background:var(--md-sys-color-surface-container);padding:12px;border-radius:4px;border:1px solid var(--md-sys-color-outline-variant);max-height:200px;overflow-y:auto}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.empty-state-content{max-width:300px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--md-sys-color-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--md-sys-color-on-surface);font-weight:500}.empty-state p{margin:0;color:var(--md-sys-color-on-surface-variant);line-height:1.4}@media (max-width: 768px){.form-row,.property-form{flex-direction:column}.doc-link-item{flex-direction:column;align-items:stretch}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i12$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i12$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5015
5015
  }
5016
5016
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: MetadataEditorComponent, decorators: [{
5017
5017
  type: Component,
@@ -5511,7 +5511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
5511
5511
  <p>Select a rule from the canvas or sidebar to edit its metadata</p>
5512
5512
  </div>
5513
5513
  </div>
5514
- `, styles: [".metadata-editor-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--mdc-theme-surface-variant);border-bottom:1px solid var(--mdc-theme-outline)}.node-info{display:flex;align-items:center;gap:12px}.node-icon{font-size:24px;width:24px;height:24px;color:var(--mdc-theme-primary)}.node-details{display:flex;flex-direction:column}.node-title{margin:0;font-size:16px;font-weight:500;color:var(--mdc-theme-on-surface)}.node-subtitle{margin:0;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.header-actions{display:flex;gap:8px}.metadata-form{flex:1;overflow:auto;padding:16px}.tab-content{padding:16px 0;display:flex;flex-direction:column;gap:16px}.full-width{width:100%}.form-row{display:flex;gap:12px;align-items:flex-start}.form-row>*{flex:1}.config-panel{margin-bottom:16px}.panel-content{padding:16px;display:flex;flex-direction:column;gap:16px}.priority-option,.icon-option{display:flex;align-items:center;gap:8px}.priority-option small,.icon-option small{color:var(--mdc-theme-on-surface-variant);font-size:11px}.toggle-options,.display-options,.animation-options{display:flex;flex-direction:column;gap:8px}.custom-properties{display:flex;flex-direction:column;gap:12px}.custom-property-item{border:1px solid var(--mdc-theme-outline);border-radius:8px;padding:12px;background:var(--mdc-theme-surface)}.property-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.property-number{background:var(--mdc-theme-primary);color:var(--mdc-theme-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.property-form{display:flex;gap:8px}.property-key,.property-value{flex:2}.property-type{flex:1}.conditional-config{display:flex;flex-direction:column;gap:12px}.conditional-rules{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--mdc-theme-surface);border-radius:8px;border:1px solid var(--mdc-theme-outline)}.documentation-links{display:flex;flex-direction:column;gap:8px}.documentation-links h5{margin:0;font-size:13px;font-weight:500;color:var(--mdc-theme-primary)}.doc-link-item{display:flex;gap:8px;align-items:center}.link-title,.link-url{flex:1}.add-property-button,.add-link-button{align-self:flex-start}.preview-section{margin-top:24px;border:1px solid var(--mdc-theme-outline);border-radius:8px;overflow:hidden}.preview-title{display:flex;align-items:center;gap:8px;margin:0;padding:12px 16px;background:var(--mdc-theme-primary-container);border-bottom:1px solid var(--mdc-theme-outline);font-size:14px;font-weight:500}.preview-content{padding:16px;background:var(--mdc-theme-surface)}.preview-json{font-family:Courier New,monospace;font-size:12px;color:var(--mdc-theme-on-surface);margin:0;white-space:pre-wrap;background:var(--mdc-theme-surface-variant);padding:12px;border-radius:4px;border:1px solid var(--mdc-theme-outline);max-height:200px;overflow-y:auto}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.empty-state-content{max-width:300px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--mdc-theme-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--mdc-theme-on-surface);font-weight:500}.empty-state p{margin:0;color:var(--mdc-theme-on-surface-variant);line-height:1.4}@media (max-width: 768px){.form-row,.property-form{flex-direction:column}.doc-link-item{flex-direction:column;align-items:stretch}}\n"] }]
5514
+ `, styles: [".metadata-editor-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--md-sys-color-surface-container);border-bottom:1px solid var(--md-sys-color-outline-variant)}.node-info{display:flex;align-items:center;gap:12px}.node-icon{font-size:24px;width:24px;height:24px;color:var(--md-sys-color-primary)}.node-details{display:flex;flex-direction:column}.node-title{margin:0;font-size:16px;font-weight:500;color:var(--md-sys-color-on-surface)}.node-subtitle{margin:0;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.header-actions{display:flex;gap:8px}.metadata-form{flex:1;overflow:auto;padding:16px}.tab-content{padding:16px 0;display:flex;flex-direction:column;gap:16px}.full-width{width:100%}.form-row{display:flex;gap:12px;align-items:flex-start}.form-row>*{flex:1}.config-panel{margin-bottom:16px}.panel-content{padding:16px;display:flex;flex-direction:column;gap:16px}.priority-option,.icon-option{display:flex;align-items:center;gap:8px}.priority-option small,.icon-option small{color:var(--md-sys-color-on-surface-variant);font-size:11px}.toggle-options,.display-options,.animation-options{display:flex;flex-direction:column;gap:8px}.custom-properties{display:flex;flex-direction:column;gap:12px}.custom-property-item{border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;padding:12px;background:var(--md-sys-color-surface)}.property-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.property-number{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.property-form{display:flex;gap:8px}.property-key,.property-value{flex:2}.property-type{flex:1}.conditional-config{display:flex;flex-direction:column;gap:12px}.conditional-rules{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--md-sys-color-surface);border-radius:8px;border:1px solid var(--md-sys-color-outline-variant)}.documentation-links{display:flex;flex-direction:column;gap:8px}.documentation-links h5{margin:0;font-size:13px;font-weight:500;color:var(--md-sys-color-primary)}.doc-link-item{display:flex;gap:8px;align-items:center}.link-title,.link-url{flex:1}.add-property-button,.add-link-button{align-self:flex-start}.preview-section{margin-top:24px;border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;overflow:hidden}.preview-title{display:flex;align-items:center;gap:8px;margin:0;padding:12px 16px;background:var(--md-sys-color-primary-container);border-bottom:1px solid var(--md-sys-color-outline-variant);font-size:14px;font-weight:500}.preview-content{padding:16px;background:var(--md-sys-color-surface)}.preview-json{font-family:Courier New,monospace;font-size:12px;color:var(--md-sys-color-on-surface);margin:0;white-space:pre-wrap;background:var(--md-sys-color-surface-container);padding:12px;border-radius:4px;border:1px solid var(--md-sys-color-outline-variant);max-height:200px;overflow-y:auto}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.empty-state-content{max-width:300px}.empty-icon{font-size:64px;width:64px;height:64px;color:var(--md-sys-color-on-surface-variant);margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--md-sys-color-on-surface);font-weight:500}.empty-state p{margin:0;color:var(--md-sys-color-on-surface-variant);line-height:1.4}@media (max-width: 768px){.form-row,.property-form{flex-direction:column}.doc-link-item{flex-direction:column;align-items:stretch}}\n"] }]
5515
5515
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { selectedNode: [{
5516
5516
  type: Input
5517
5517
  }], metadataUpdated: [{
@@ -5600,8 +5600,8 @@ class DslViewerComponent {
5600
5600
  textarea.style.fontFamily = 'monospace';
5601
5601
  textarea.style.fontSize = '14px';
5602
5602
  textarea.style.padding = '16px';
5603
- textarea.style.background = 'var(--mdc-theme-surface)';
5604
- textarea.style.color = 'var(--mdc-theme-on-surface)';
5603
+ textarea.style.background = 'var(--md-sys-color-surface)';
5604
+ textarea.style.color = 'var(--md-sys-color-on-surface)';
5605
5605
  this.editorContainer.nativeElement.appendChild(textarea);
5606
5606
  // Mock Monaco Editor interface
5607
5607
  this.monacoEditor = {
@@ -6042,7 +6042,7 @@ class DslViewerComponent {
6042
6042
  </div>
6043
6043
  </div>
6044
6044
  </div>
6045
- `, isInline: true, styles: [".dsl-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.dsl-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--mdc-theme-success-container);color:var(--mdc-theme-on-success-container)}.validation-status.invalid{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.validation-status.warning{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.monaco-editor-container{width:100%;height:100%;position:relative}.monaco-editor-container.loading{opacity:.5}.loading-overlay{position:absolute;inset:0;background:var(--mdc-theme-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:1000}.loading-text{color:var(--mdc-theme-on-surface-variant);font-size:14px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--mdc-theme-surface-variant);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--mdc-theme-surface-variant);border-top:1px solid var(--mdc-theme-outline);font-size:12px;color:var(--mdc-theme-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.cursor-position{font-family:monospace}.syntax-errors,.warnings{display:flex;align-items:center;gap:4px}.syntax-errors mat-icon,.warnings mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--mdc-theme-primary);font-weight:700;font-size:16px}.error-panel{background:var(--mdc-theme-surface);border-top:1px solid var(--mdc-theme-outline);max-height:200px;overflow-y:auto;flex-shrink:0}.error-panel-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--mdc-theme-surface-variant);border-bottom:1px solid var(--mdc-theme-outline)}.error-panel-header h4{margin:0;font-size:14px;font-weight:500}.error-list{padding:8px}.error-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px;cursor:pointer;transition:background .2s ease}.error-item:hover{background:var(--mdc-theme-surface-variant)}.error-item.severity-error{border-left:3px solid var(--mdc-theme-error)}.error-item.severity-warning{border-left:3px solid var(--mdc-theme-warning)}.error-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px}.error-item.severity-error mat-icon{color:var(--mdc-theme-error)}.error-item.severity-warning mat-icon{color:var(--mdc-theme-warning)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-location{font-size:11px;color:var(--mdc-theme-on-surface-variant);font-family:monospace}@media (max-width: 768px){.toolbar-actions{gap:4px}.status-bar{flex-direction:column;gap:4px;align-items:stretch}.status-left,.status-center,.status-right{justify-content:center}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatChipsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6045
+ `, isInline: true, styles: [".dsl-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.dsl-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.validation-status.invalid{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.validation-status.warning{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.monaco-editor-container{width:100%;height:100%;position:relative}.monaco-editor-container.loading{opacity:.5}.loading-overlay{position:absolute;inset:0;background:var(--md-sys-color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:1000}.loading-text{color:var(--md-sys-color-on-surface-variant);font-size:14px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--md-sys-color-surface-container);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--md-sys-color-outline-variant);font-size:12px;color:var(--md-sys-color-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.cursor-position{font-family:monospace}.syntax-errors,.warnings{display:flex;align-items:center;gap:4px}.syntax-errors mat-icon,.warnings mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--md-sys-color-primary);font-weight:700;font-size:16px}.error-panel{background:var(--md-sys-color-surface);border-top:1px solid var(--md-sys-color-outline-variant);max-height:200px;overflow-y:auto;flex-shrink:0}.error-panel-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--md-sys-color-surface-container);border-bottom:1px solid var(--md-sys-color-outline-variant)}.error-panel-header h4{margin:0;font-size:14px;font-weight:500}.error-list{padding:8px}.error-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px;cursor:pointer;transition:background .2s ease}.error-item:hover{background:var(--md-sys-color-surface-container)}.error-item.severity-error{border-left:3px solid var(--md-sys-color-error)}.error-item.severity-warning{border-left:3px solid var(--md-sys-color-secondary)}.error-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px}.error-item.severity-error mat-icon{color:var(--md-sys-color-error)}.error-item.severity-warning mat-icon{color:var(--md-sys-color-secondary)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-location{font-size:11px;color:var(--md-sys-color-on-surface-variant);font-family:monospace}@media (max-width: 768px){.toolbar-actions{gap:4px}.status-bar{flex-direction:column;gap:4px;align-items:stretch}.status-left,.status-center,.status-right{justify-content:center}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatChipsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6046
6046
  }
6047
6047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: DslViewerComponent, decorators: [{
6048
6048
  type: Component,
@@ -6236,7 +6236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
6236
6236
  </div>
6237
6237
  </div>
6238
6238
  </div>
6239
- `, styles: [".dsl-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.dsl-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--mdc-theme-success-container);color:var(--mdc-theme-on-success-container)}.validation-status.invalid{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.validation-status.warning{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.monaco-editor-container{width:100%;height:100%;position:relative}.monaco-editor-container.loading{opacity:.5}.loading-overlay{position:absolute;inset:0;background:var(--mdc-theme-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:1000}.loading-text{color:var(--mdc-theme-on-surface-variant);font-size:14px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--mdc-theme-surface-variant);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--mdc-theme-surface-variant);border-top:1px solid var(--mdc-theme-outline);font-size:12px;color:var(--mdc-theme-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.cursor-position{font-family:monospace}.syntax-errors,.warnings{display:flex;align-items:center;gap:4px}.syntax-errors mat-icon,.warnings mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--mdc-theme-primary);font-weight:700;font-size:16px}.error-panel{background:var(--mdc-theme-surface);border-top:1px solid var(--mdc-theme-outline);max-height:200px;overflow-y:auto;flex-shrink:0}.error-panel-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--mdc-theme-surface-variant);border-bottom:1px solid var(--mdc-theme-outline)}.error-panel-header h4{margin:0;font-size:14px;font-weight:500}.error-list{padding:8px}.error-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px;cursor:pointer;transition:background .2s ease}.error-item:hover{background:var(--mdc-theme-surface-variant)}.error-item.severity-error{border-left:3px solid var(--mdc-theme-error)}.error-item.severity-warning{border-left:3px solid var(--mdc-theme-warning)}.error-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px}.error-item.severity-error mat-icon{color:var(--mdc-theme-error)}.error-item.severity-warning mat-icon{color:var(--mdc-theme-warning)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-location{font-size:11px;color:var(--mdc-theme-on-surface-variant);font-family:monospace}@media (max-width: 768px){.toolbar-actions{gap:4px}.status-bar{flex-direction:column;gap:4px;align-items:stretch}.status-left,.status-center,.status-right{justify-content:center}}\n"] }]
6239
+ `, styles: [".dsl-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.dsl-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.validation-status.invalid{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.validation-status.warning{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.monaco-editor-container{width:100%;height:100%;position:relative}.monaco-editor-container.loading{opacity:.5}.loading-overlay{position:absolute;inset:0;background:var(--md-sys-color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:1000}.loading-text{color:var(--md-sys-color-on-surface-variant);font-size:14px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--md-sys-color-surface-container);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--md-sys-color-outline-variant);font-size:12px;color:var(--md-sys-color-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.cursor-position{font-family:monospace}.syntax-errors,.warnings{display:flex;align-items:center;gap:4px}.syntax-errors mat-icon,.warnings mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--md-sys-color-primary);font-weight:700;font-size:16px}.error-panel{background:var(--md-sys-color-surface);border-top:1px solid var(--md-sys-color-outline-variant);max-height:200px;overflow-y:auto;flex-shrink:0}.error-panel-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--md-sys-color-surface-container);border-bottom:1px solid var(--md-sys-color-outline-variant)}.error-panel-header h4{margin:0;font-size:14px;font-weight:500}.error-list{padding:8px}.error-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px;cursor:pointer;transition:background .2s ease}.error-item:hover{background:var(--md-sys-color-surface-container)}.error-item.severity-error{border-left:3px solid var(--md-sys-color-error)}.error-item.severity-warning{border-left:3px solid var(--md-sys-color-secondary)}.error-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px}.error-item.severity-error mat-icon{color:var(--md-sys-color-error)}.error-item.severity-warning mat-icon{color:var(--md-sys-color-secondary)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-location{font-size:11px;color:var(--md-sys-color-on-surface-variant);font-family:monospace}@media (max-width: 768px){.toolbar-actions{gap:4px}.status-bar{flex-direction:column;gap:4px;align-items:stretch}.status-left,.status-center,.status-right{justify-content:center}}\n"] }]
6240
6240
  }], ctorParameters: () => [{ type: i1$1.MatSnackBar }], propDecorators: { dsl: [{
6241
6241
  type: Input
6242
6242
  }], editable: [{
@@ -6524,7 +6524,7 @@ class JsonViewerComponent {
6524
6524
  </div>
6525
6525
  </div>
6526
6526
  </div>
6527
- `, isInline: true, styles: [".json-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.json-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--mdc-theme-success-container);color:var(--mdc-theme-on-success-container)}.validation-status.invalid{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.json-editor{position:relative;height:100%;display:flex}.json-textarea{flex:1;border:none;outline:none;resize:none;font-family:Courier New,monospace;font-size:14px;line-height:1.5;padding:16px;background:var(--mdc-theme-surface);color:var(--mdc-theme-on-surface);white-space:pre;overflow-wrap:normal;overflow:auto}.json-textarea.line-numbers{padding-left:60px}.json-textarea.word-wrap{white-space:pre-wrap;overflow-wrap:break-word}.json-textarea:read-only{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.line-numbers{position:absolute;left:0;top:0;width:50px;height:100%;background:var(--mdc-theme-surface-variant);border-right:1px solid var(--mdc-theme-outline);padding:16px 8px;font-family:Courier New,monospace;font-size:14px;line-height:1.5;color:var(--mdc-theme-on-surface-variant);text-align:right;overflow:hidden;-webkit-user-select:none;user-select:none}.line-number{height:21px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--mdc-theme-surface-variant);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--mdc-theme-surface-variant);border-top:1px solid var(--mdc-theme-outline);font-size:12px;color:var(--mdc-theme-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.validation-error{display:flex;align-items:center;gap:4px;color:var(--mdc-theme-error)}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--mdc-theme-primary);font-weight:700;font-size:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSnackBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6527
+ `, isInline: true, styles: [".json-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.json-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.validation-status.invalid{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.json-editor{position:relative;height:100%;display:flex}.json-textarea{flex:1;border:none;outline:none;resize:none;font-family:Courier New,monospace;font-size:14px;line-height:1.5;padding:16px;background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);white-space:pre;overflow-wrap:normal;overflow:auto}.json-textarea.line-numbers{padding-left:60px}.json-textarea.word-wrap{white-space:pre-wrap;overflow-wrap:break-word}.json-textarea:read-only{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant)}.line-numbers{position:absolute;left:0;top:0;width:50px;height:100%;background:var(--md-sys-color-surface-container);border-right:1px solid var(--md-sys-color-outline-variant);padding:16px 8px;font-family:Courier New,monospace;font-size:14px;line-height:1.5;color:var(--md-sys-color-on-surface-variant);text-align:right;overflow:hidden;-webkit-user-select:none;user-select:none}.line-number{height:21px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--md-sys-color-surface-container);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--md-sys-color-outline-variant);font-size:12px;color:var(--md-sys-color-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.validation-error{display:flex;align-items:center;gap:4px;color:var(--md-sys-color-error)}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--md-sys-color-primary);font-weight:700;font-size:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSnackBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6528
6528
  }
6529
6529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: JsonViewerComponent, decorators: [{
6530
6530
  type: Component,
@@ -6669,7 +6669,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
6669
6669
  </div>
6670
6670
  </div>
6671
6671
  </div>
6672
- `, styles: [".json-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.json-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--mdc-theme-success-container);color:var(--mdc-theme-on-success-container)}.validation-status.invalid{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.json-editor{position:relative;height:100%;display:flex}.json-textarea{flex:1;border:none;outline:none;resize:none;font-family:Courier New,monospace;font-size:14px;line-height:1.5;padding:16px;background:var(--mdc-theme-surface);color:var(--mdc-theme-on-surface);white-space:pre;overflow-wrap:normal;overflow:auto}.json-textarea.line-numbers{padding-left:60px}.json-textarea.word-wrap{white-space:pre-wrap;overflow-wrap:break-word}.json-textarea:read-only{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.line-numbers{position:absolute;left:0;top:0;width:50px;height:100%;background:var(--mdc-theme-surface-variant);border-right:1px solid var(--mdc-theme-outline);padding:16px 8px;font-family:Courier New,monospace;font-size:14px;line-height:1.5;color:var(--mdc-theme-on-surface-variant);text-align:right;overflow:hidden;-webkit-user-select:none;user-select:none}.line-number{height:21px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--mdc-theme-surface-variant);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--mdc-theme-surface-variant);border-top:1px solid var(--mdc-theme-outline);font-size:12px;color:var(--mdc-theme-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.validation-error{display:flex;align-items:center;gap:4px;color:var(--mdc-theme-error)}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--mdc-theme-primary);font-weight:700;font-size:16px}\n"] }]
6672
+ `, styles: [".json-viewer-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.json-toolbar{flex-shrink:0;padding:0 16px}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px}.validation-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.validation-status.valid{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.validation-status.invalid{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.editor-container{flex:1;position:relative;overflow:hidden}.json-editor{position:relative;height:100%;display:flex}.json-textarea{flex:1;border:none;outline:none;resize:none;font-family:Courier New,monospace;font-size:14px;line-height:1.5;padding:16px;background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);white-space:pre;overflow-wrap:normal;overflow:auto}.json-textarea.line-numbers{padding-left:60px}.json-textarea.word-wrap{white-space:pre-wrap;overflow-wrap:break-word}.json-textarea:read-only{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant)}.line-numbers{position:absolute;left:0;top:0;width:50px;height:100%;background:var(--md-sys-color-surface-container);border-right:1px solid var(--md-sys-color-outline-variant);padding:16px 8px;font-family:Courier New,monospace;font-size:14px;line-height:1.5;color:var(--md-sys-color-on-surface-variant);text-align:right;overflow:hidden;-webkit-user-select:none;user-select:none}.line-number{height:21px}.readonly-overlay{position:absolute;top:8px;right:8px;z-index:100}.readonly-message{display:flex;align-items:center;gap:4px;background:var(--md-sys-color-surface-container);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.readonly-message mat-icon{font-size:14px;width:14px;height:14px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--md-sys-color-outline-variant);font-size:12px;color:var(--md-sys-color-on-surface-variant);flex-shrink:0}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:12px}.validation-error{display:flex;align-items:center;gap:4px;color:var(--md-sys-color-error)}.validation-error mat-icon{font-size:14px;width:14px;height:14px}.language-mode{font-family:monospace;font-weight:600}.unsaved-indicator{color:var(--md-sys-color-primary);font-weight:700;font-size:16px}\n"] }]
6673
6673
  }], ctorParameters: () => [{ type: i1$1.MatSnackBar }], propDecorators: { json: [{
6674
6674
  type: Input
6675
6675
  }], editable: [{
@@ -10790,7 +10790,7 @@ class RoundTripTesterComponent {
10790
10790
  </div>
10791
10791
  </div>
10792
10792
  </div>
10793
- `, isInline: true, styles: [".round-trip-tester-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;gap:8px}.tester-content{flex:1;padding:16px;overflow:auto}.tester-grid{display:grid;grid-template-columns:1fr 2fr;gap:16px;height:100%}.test-selection-panel,.results-panel{height:fit-content;max-height:100%;overflow:auto}.test-options{display:flex;flex-direction:column;gap:16px}.test-option h4{margin:0 0 8px;color:var(--mdc-theme-primary)}.test-description{margin:0 0 12px;color:var(--mdc-theme-on-surface-variant);font-size:14px}.current-rule-info,.test-suite-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-type,.test-count{background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container);padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.rule-label{font-size:13px;color:var(--mdc-theme-on-surface-variant)}.no-rule-message{color:var(--mdc-theme-error);font-style:italic;font-size:13px}.test-cases-list{margin-top:12px;border:1px solid var(--mdc-theme-outline);border-radius:4px;padding:8px}.test-case-item{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--mdc-theme-outline-variant)}.test-case-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.test-case-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.test-case-name{font-weight:500;font-size:14px}.test-case-description{margin:0;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.progress-bar{margin-bottom:16px}.running-icon{animation:spin 2s linear infinite;margin-left:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-results{text-align:center;padding:40px;color:var(--mdc-theme-on-surface-variant)}.no-results mat-icon{font-size:48px;width:48px;height:48px;margin-bottom:16px}.no-results h3{margin:0 0 8px}.single-test-result{display:flex;flex-direction:column;gap:16px}.result-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:8px;background:var(--mdc-theme-surface-variant)}.result-status{display:flex;align-items:center;gap:8px;font-weight:600}.result-status.success{color:var(--mdc-theme-tertiary)}.result-status.failure{color:var(--mdc-theme-error)}.result-timing{font-family:monospace;font-size:14px;color:var(--mdc-theme-on-surface-variant)}.stages-list,.integrity-checks{display:flex;flex-direction:column;gap:8px}.stage-item{padding:12px;border-radius:4px;border-left:4px solid var(--mdc-theme-outline)}.stage-item.stage-success{border-left-color:var(--mdc-theme-tertiary);background:var(--mdc-theme-tertiary-container)}.stage-item.stage-error{border-left-color:var(--mdc-theme-error);background:var(--mdc-theme-error-container)}.stage-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.stage-name{flex:1;font-weight:500}.stage-timing{font-family:monospace;font-size:12px}.stage-error-message{color:var(--mdc-theme-error);font-size:13px;margin-top:4px}.stage-dsl-output{margin-top:8px}.stage-dsl-output pre{background:var(--mdc-theme-surface);padding:8px;border-radius:4px;font-size:12px;margin:4px 0 0;overflow-x:auto}.integrity-check{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px}.integrity-check.check-passed{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.integrity-check.check-failed{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.issues-section{margin-top:16px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}.error-title{color:var(--mdc-theme-error)}.warning-title{color:var(--mdc-theme-warning)}.issue-item{padding:12px;border-radius:4px;margin-bottom:8px}.error-item{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container);border-left:4px solid var(--mdc-theme-error)}.warning-item{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container);border-left:4px solid var(--mdc-theme-warning)}.issue-header{display:flex;gap:8px;margin-bottom:4px}.issue-code{font-family:monospace;font-size:12px;background:#0000001a;padding:2px 6px;border-radius:3px}.issue-severity{font-size:11px;text-transform:uppercase;font-weight:600}.issue-message{font-size:14px}.test-suite-results{display:flex;flex-direction:column;gap:16px}.suite-summary{background:var(--mdc-theme-surface-variant);padding:16px;border-radius:8px}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.stat-item{text-align:center;padding:12px;border-radius:4px;background:var(--mdc-theme-surface)}.stat-item.passed{border-left:4px solid var(--mdc-theme-tertiary)}.stat-item.failed{border-left:4px solid var(--mdc-theme-error)}.stat-label{display:block;font-size:12px;color:var(--mdc-theme-on-surface-variant);margin-bottom:4px}.stat-value{display:block;font-size:20px;font-weight:600}.success-rate{text-align:center}.rate-label{font-size:14px;color:var(--mdc-theme-on-surface-variant)}.rate-value{font-size:18px;font-weight:600;margin-left:8px}.rate-value.excellent{color:var(--mdc-theme-tertiary)}.rate-value.good{color:var(--mdc-theme-warning)}.rate-value.poor{color:var(--mdc-theme-error)}.test-result-panel{margin-bottom:8px}.success-icon{color:var(--mdc-theme-tertiary)}.error-icon{color:var(--mdc-theme-error)}.test-timing{margin-left:auto;font-family:monospace;font-size:12px}.test-details{display:flex;flex-direction:column;gap:16px;padding:16px}.test-case-info h5,.quick-summary h5{margin:0 0 8px;color:var(--mdc-theme-primary)}.test-case-details{display:flex;flex-direction:column;gap:4px}.detail-item{font-size:13px}.summary-items{display:flex;gap:16px;flex-wrap:wrap}.summary-item{display:flex;align-items:center;gap:4px;font-size:13px}.summary-item.success{color:var(--mdc-theme-tertiary)}.summary-item.failure{color:var(--mdc-theme-error)}@media (max-width: 1024px){.tester-grid{grid-template-columns:1fr;gap:16px}.test-selection-panel{order:2}.results-panel{order:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10793
+ `, isInline: true, styles: [".round-trip-tester-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;gap:8px}.tester-content{flex:1;padding:16px;overflow:auto}.tester-grid{display:grid;grid-template-columns:1fr 2fr;gap:16px;height:100%}.test-selection-panel,.results-panel{height:fit-content;max-height:100%;overflow:auto}.test-options{display:flex;flex-direction:column;gap:16px}.test-option h4{margin:0 0 8px;color:var(--md-sys-color-primary)}.test-description{margin:0 0 12px;color:var(--md-sys-color-on-surface-variant);font-size:14px}.current-rule-info,.test-suite-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-type,.test-count{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.rule-label{font-size:13px;color:var(--md-sys-color-on-surface-variant)}.no-rule-message{color:var(--md-sys-color-error);font-style:italic;font-size:13px}.test-cases-list{margin-top:12px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:8px}.test-case-item{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--md-sys-color-outline-variant)}.test-case-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.test-case-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.test-case-name{font-weight:500;font-size:14px}.test-case-description{margin:0;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.progress-bar{margin-bottom:16px}.running-icon{animation:spin 2s linear infinite;margin-left:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-results{text-align:center;padding:40px;color:var(--md-sys-color-on-surface-variant)}.no-results mat-icon{font-size:48px;width:48px;height:48px;margin-bottom:16px}.no-results h3{margin:0 0 8px}.single-test-result{display:flex;flex-direction:column;gap:16px}.result-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:8px;background:var(--md-sys-color-surface-container)}.result-status{display:flex;align-items:center;gap:8px;font-weight:600}.result-status.success{color:var(--md-sys-color-tertiary)}.result-status.failure{color:var(--md-sys-color-error)}.result-timing{font-family:monospace;font-size:14px;color:var(--md-sys-color-on-surface-variant)}.stages-list,.integrity-checks{display:flex;flex-direction:column;gap:8px}.stage-item{padding:12px;border-radius:4px;border-left:4px solid var(--md-sys-color-outline-variant)}.stage-item.stage-success{border-left-color:var(--md-sys-color-tertiary);background:var(--md-sys-color-tertiary-container)}.stage-item.stage-error{border-left-color:var(--md-sys-color-error);background:var(--md-sys-color-error-container)}.stage-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.stage-name{flex:1;font-weight:500}.stage-timing{font-family:monospace;font-size:12px}.stage-error-message{color:var(--md-sys-color-error);font-size:13px;margin-top:4px}.stage-dsl-output{margin-top:8px}.stage-dsl-output pre{background:var(--md-sys-color-surface);padding:8px;border-radius:4px;font-size:12px;margin:4px 0 0;overflow-x:auto}.integrity-check{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px}.integrity-check.check-passed{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.integrity-check.check-failed{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.issues-section{margin-top:16px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}.error-title{color:var(--md-sys-color-error)}.warning-title{color:var(--md-sys-color-secondary)}.issue-item{padding:12px;border-radius:4px;margin-bottom:8px}.error-item{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);border-left:4px solid var(--md-sys-color-error)}.warning-item{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-left:4px solid var(--md-sys-color-secondary)}.issue-header{display:flex;gap:8px;margin-bottom:4px}.issue-code{font-family:monospace;font-size:12px;background:#0000001a;padding:2px 6px;border-radius:3px}.issue-severity{font-size:11px;text-transform:uppercase;font-weight:600}.issue-message{font-size:14px}.test-suite-results{display:flex;flex-direction:column;gap:16px}.suite-summary{background:var(--md-sys-color-surface-container);padding:16px;border-radius:8px}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.stat-item{text-align:center;padding:12px;border-radius:4px;background:var(--md-sys-color-surface)}.stat-item.passed{border-left:4px solid var(--md-sys-color-tertiary)}.stat-item.failed{border-left:4px solid var(--md-sys-color-error)}.stat-label{display:block;font-size:12px;color:var(--md-sys-color-on-surface-variant);margin-bottom:4px}.stat-value{display:block;font-size:20px;font-weight:600}.success-rate{text-align:center}.rate-label{font-size:14px;color:var(--md-sys-color-on-surface-variant)}.rate-value{font-size:18px;font-weight:600;margin-left:8px}.rate-value.excellent{color:var(--md-sys-color-tertiary)}.rate-value.good{color:var(--md-sys-color-secondary)}.rate-value.poor{color:var(--md-sys-color-error)}.test-result-panel{margin-bottom:8px}.success-icon{color:var(--md-sys-color-tertiary)}.error-icon{color:var(--md-sys-color-error)}.test-timing{margin-left:auto;font-family:monospace;font-size:12px}.test-details{display:flex;flex-direction:column;gap:16px;padding:16px}.test-case-info h5,.quick-summary h5{margin:0 0 8px;color:var(--md-sys-color-primary)}.test-case-details{display:flex;flex-direction:column;gap:4px}.detail-item{font-size:13px}.summary-items{display:flex;gap:16px;flex-wrap:wrap}.summary-item{display:flex;align-items:center;gap:4px;font-size:13px}.summary-item.success{color:var(--md-sys-color-tertiary)}.summary-item.failure{color:var(--md-sys-color-error)}@media (max-width: 1024px){.tester-grid{grid-template-columns:1fr;gap:16px}.test-selection-panel{order:2}.results-panel{order:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10794
10794
  }
10795
10795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: RoundTripTesterComponent, decorators: [{
10796
10796
  type: Component,
@@ -11200,7 +11200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
11200
11200
  </div>
11201
11201
  </div>
11202
11202
  </div>
11203
- `, styles: [".round-trip-tester-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;gap:8px}.tester-content{flex:1;padding:16px;overflow:auto}.tester-grid{display:grid;grid-template-columns:1fr 2fr;gap:16px;height:100%}.test-selection-panel,.results-panel{height:fit-content;max-height:100%;overflow:auto}.test-options{display:flex;flex-direction:column;gap:16px}.test-option h4{margin:0 0 8px;color:var(--mdc-theme-primary)}.test-description{margin:0 0 12px;color:var(--mdc-theme-on-surface-variant);font-size:14px}.current-rule-info,.test-suite-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-type,.test-count{background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container);padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.rule-label{font-size:13px;color:var(--mdc-theme-on-surface-variant)}.no-rule-message{color:var(--mdc-theme-error);font-style:italic;font-size:13px}.test-cases-list{margin-top:12px;border:1px solid var(--mdc-theme-outline);border-radius:4px;padding:8px}.test-case-item{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--mdc-theme-outline-variant)}.test-case-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.test-case-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.test-case-name{font-weight:500;font-size:14px}.test-case-description{margin:0;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.progress-bar{margin-bottom:16px}.running-icon{animation:spin 2s linear infinite;margin-left:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-results{text-align:center;padding:40px;color:var(--mdc-theme-on-surface-variant)}.no-results mat-icon{font-size:48px;width:48px;height:48px;margin-bottom:16px}.no-results h3{margin:0 0 8px}.single-test-result{display:flex;flex-direction:column;gap:16px}.result-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:8px;background:var(--mdc-theme-surface-variant)}.result-status{display:flex;align-items:center;gap:8px;font-weight:600}.result-status.success{color:var(--mdc-theme-tertiary)}.result-status.failure{color:var(--mdc-theme-error)}.result-timing{font-family:monospace;font-size:14px;color:var(--mdc-theme-on-surface-variant)}.stages-list,.integrity-checks{display:flex;flex-direction:column;gap:8px}.stage-item{padding:12px;border-radius:4px;border-left:4px solid var(--mdc-theme-outline)}.stage-item.stage-success{border-left-color:var(--mdc-theme-tertiary);background:var(--mdc-theme-tertiary-container)}.stage-item.stage-error{border-left-color:var(--mdc-theme-error);background:var(--mdc-theme-error-container)}.stage-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.stage-name{flex:1;font-weight:500}.stage-timing{font-family:monospace;font-size:12px}.stage-error-message{color:var(--mdc-theme-error);font-size:13px;margin-top:4px}.stage-dsl-output{margin-top:8px}.stage-dsl-output pre{background:var(--mdc-theme-surface);padding:8px;border-radius:4px;font-size:12px;margin:4px 0 0;overflow-x:auto}.integrity-check{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px}.integrity-check.check-passed{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.integrity-check.check-failed{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.issues-section{margin-top:16px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}.error-title{color:var(--mdc-theme-error)}.warning-title{color:var(--mdc-theme-warning)}.issue-item{padding:12px;border-radius:4px;margin-bottom:8px}.error-item{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container);border-left:4px solid var(--mdc-theme-error)}.warning-item{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container);border-left:4px solid var(--mdc-theme-warning)}.issue-header{display:flex;gap:8px;margin-bottom:4px}.issue-code{font-family:monospace;font-size:12px;background:#0000001a;padding:2px 6px;border-radius:3px}.issue-severity{font-size:11px;text-transform:uppercase;font-weight:600}.issue-message{font-size:14px}.test-suite-results{display:flex;flex-direction:column;gap:16px}.suite-summary{background:var(--mdc-theme-surface-variant);padding:16px;border-radius:8px}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.stat-item{text-align:center;padding:12px;border-radius:4px;background:var(--mdc-theme-surface)}.stat-item.passed{border-left:4px solid var(--mdc-theme-tertiary)}.stat-item.failed{border-left:4px solid var(--mdc-theme-error)}.stat-label{display:block;font-size:12px;color:var(--mdc-theme-on-surface-variant);margin-bottom:4px}.stat-value{display:block;font-size:20px;font-weight:600}.success-rate{text-align:center}.rate-label{font-size:14px;color:var(--mdc-theme-on-surface-variant)}.rate-value{font-size:18px;font-weight:600;margin-left:8px}.rate-value.excellent{color:var(--mdc-theme-tertiary)}.rate-value.good{color:var(--mdc-theme-warning)}.rate-value.poor{color:var(--mdc-theme-error)}.test-result-panel{margin-bottom:8px}.success-icon{color:var(--mdc-theme-tertiary)}.error-icon{color:var(--mdc-theme-error)}.test-timing{margin-left:auto;font-family:monospace;font-size:12px}.test-details{display:flex;flex-direction:column;gap:16px;padding:16px}.test-case-info h5,.quick-summary h5{margin:0 0 8px;color:var(--mdc-theme-primary)}.test-case-details{display:flex;flex-direction:column;gap:4px}.detail-item{font-size:13px}.summary-items{display:flex;gap:16px;flex-wrap:wrap}.summary-item{display:flex;align-items:center;gap:4px;font-size:13px}.summary-item.success{color:var(--mdc-theme-tertiary)}.summary-item.failure{color:var(--mdc-theme-error)}@media (max-width: 1024px){.tester-grid{grid-template-columns:1fr;gap:16px}.test-selection-panel{order:2}.results-panel{order:1}}\n"] }]
11203
+ `, styles: [".round-trip-tester-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;gap:8px}.tester-content{flex:1;padding:16px;overflow:auto}.tester-grid{display:grid;grid-template-columns:1fr 2fr;gap:16px;height:100%}.test-selection-panel,.results-panel{height:fit-content;max-height:100%;overflow:auto}.test-options{display:flex;flex-direction:column;gap:16px}.test-option h4{margin:0 0 8px;color:var(--md-sys-color-primary)}.test-description{margin:0 0 12px;color:var(--md-sys-color-on-surface-variant);font-size:14px}.current-rule-info,.test-suite-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-type,.test-count{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.rule-label{font-size:13px;color:var(--md-sys-color-on-surface-variant)}.no-rule-message{color:var(--md-sys-color-error);font-style:italic;font-size:13px}.test-cases-list{margin-top:12px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:8px}.test-case-item{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--md-sys-color-outline-variant)}.test-case-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.test-case-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.test-case-name{font-weight:500;font-size:14px}.test-case-description{margin:0;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.progress-bar{margin-bottom:16px}.running-icon{animation:spin 2s linear infinite;margin-left:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-results{text-align:center;padding:40px;color:var(--md-sys-color-on-surface-variant)}.no-results mat-icon{font-size:48px;width:48px;height:48px;margin-bottom:16px}.no-results h3{margin:0 0 8px}.single-test-result{display:flex;flex-direction:column;gap:16px}.result-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:8px;background:var(--md-sys-color-surface-container)}.result-status{display:flex;align-items:center;gap:8px;font-weight:600}.result-status.success{color:var(--md-sys-color-tertiary)}.result-status.failure{color:var(--md-sys-color-error)}.result-timing{font-family:monospace;font-size:14px;color:var(--md-sys-color-on-surface-variant)}.stages-list,.integrity-checks{display:flex;flex-direction:column;gap:8px}.stage-item{padding:12px;border-radius:4px;border-left:4px solid var(--md-sys-color-outline-variant)}.stage-item.stage-success{border-left-color:var(--md-sys-color-tertiary);background:var(--md-sys-color-tertiary-container)}.stage-item.stage-error{border-left-color:var(--md-sys-color-error);background:var(--md-sys-color-error-container)}.stage-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.stage-name{flex:1;font-weight:500}.stage-timing{font-family:monospace;font-size:12px}.stage-error-message{color:var(--md-sys-color-error);font-size:13px;margin-top:4px}.stage-dsl-output{margin-top:8px}.stage-dsl-output pre{background:var(--md-sys-color-surface);padding:8px;border-radius:4px;font-size:12px;margin:4px 0 0;overflow-x:auto}.integrity-check{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px}.integrity-check.check-passed{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.integrity-check.check-failed{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.issues-section{margin-top:16px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}.error-title{color:var(--md-sys-color-error)}.warning-title{color:var(--md-sys-color-secondary)}.issue-item{padding:12px;border-radius:4px;margin-bottom:8px}.error-item{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);border-left:4px solid var(--md-sys-color-error)}.warning-item{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-left:4px solid var(--md-sys-color-secondary)}.issue-header{display:flex;gap:8px;margin-bottom:4px}.issue-code{font-family:monospace;font-size:12px;background:#0000001a;padding:2px 6px;border-radius:3px}.issue-severity{font-size:11px;text-transform:uppercase;font-weight:600}.issue-message{font-size:14px}.test-suite-results{display:flex;flex-direction:column;gap:16px}.suite-summary{background:var(--md-sys-color-surface-container);padding:16px;border-radius:8px}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.stat-item{text-align:center;padding:12px;border-radius:4px;background:var(--md-sys-color-surface)}.stat-item.passed{border-left:4px solid var(--md-sys-color-tertiary)}.stat-item.failed{border-left:4px solid var(--md-sys-color-error)}.stat-label{display:block;font-size:12px;color:var(--md-sys-color-on-surface-variant);margin-bottom:4px}.stat-value{display:block;font-size:20px;font-weight:600}.success-rate{text-align:center}.rate-label{font-size:14px;color:var(--md-sys-color-on-surface-variant)}.rate-value{font-size:18px;font-weight:600;margin-left:8px}.rate-value.excellent{color:var(--md-sys-color-tertiary)}.rate-value.good{color:var(--md-sys-color-secondary)}.rate-value.poor{color:var(--md-sys-color-error)}.test-result-panel{margin-bottom:8px}.success-icon{color:var(--md-sys-color-tertiary)}.error-icon{color:var(--md-sys-color-error)}.test-timing{margin-left:auto;font-family:monospace;font-size:12px}.test-details{display:flex;flex-direction:column;gap:16px;padding:16px}.test-case-info h5,.quick-summary h5{margin:0 0 8px;color:var(--md-sys-color-primary)}.test-case-details{display:flex;flex-direction:column;gap:4px}.detail-item{font-size:13px}.summary-items{display:flex;gap:16px;flex-wrap:wrap}.summary-item{display:flex;align-items:center;gap:4px;font-size:13px}.summary-item.success{color:var(--md-sys-color-tertiary)}.summary-item.failure{color:var(--md-sys-color-error)}@media (max-width: 1024px){.tester-grid{grid-template-columns:1fr;gap:16px}.test-selection-panel{order:2}.results-panel{order:1}}\n"] }]
11204
11204
  }], ctorParameters: () => [{ type: RoundTripValidatorService }, { type: RuleBuilderService }, { type: i1$1.MatSnackBar }, { type: i0.ChangeDetectorRef }] });
11205
11205
 
11206
11206
  class ExportIntegrationService {
@@ -12666,7 +12666,7 @@ class ExportDialogComponent {
12666
12666
  >
12667
12667
  </mat-progress-bar>
12668
12668
  </div>
12669
- `, isInline: true, styles: [".export-dialog{width:800px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;gap:8px;font-weight:500}.dialog-content{flex:1;overflow:hidden}.tab-content{padding:16px 0;height:60vh;overflow-y:auto}.section{margin-bottom:24px}.section-title{margin:0 0 16px;color:var(--mdc-theme-primary);font-size:16px;font-weight:500}.format-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px}.format-card{cursor:pointer;transition:all .2s ease;border:2px solid transparent}.format-card:hover{border-color:var(--mdc-theme-primary-container);box-shadow:0 4px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.format-card.selected{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container)}.format-description{font-size:13px;color:var(--mdc-theme-on-surface-variant);margin:8px 0;min-height:40px}.format-features{display:flex;gap:4px;flex-wrap:wrap}.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.full-width{width:100%}.batch-formats{margin-top:16px}.export-results,.integration-results{margin-top:24px}.result-panel{margin-bottom:8px}.success-icon{color:var(--mdc-theme-tertiary)}.error-icon{color:var(--mdc-theme-error)}.result-details{padding:16px 0}.detail-row{margin-bottom:8px;font-size:14px}.action-buttons{display:flex;gap:8px;margin-top:16px}.error-details{color:var(--mdc-theme-error)}.error-item{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container);padding:8px;border-radius:4px;margin-bottom:4px}.system-info{margin-top:16px}.info-card{background:var(--mdc-theme-surface-variant)}.system-details,.integration-result{margin-bottom:16px}.success-card{border-left:4px solid var(--mdc-theme-tertiary)}.error-card{border-left:4px solid var(--mdc-theme-error)}.sharing-form{max-width:400px}.share-card{margin-top:16px;border-left:4px solid var(--mdc-theme-primary)}.share-url{margin-bottom:16px}.dialog-actions{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}.dialog-actions .action-buttons{display:flex;gap:8px}.progress-bar{position:absolute;bottom:0;left:0;right:0}@media (max-width: 768px){.export-dialog{width:100vw;height:100vh;max-width:none;max-height:none}.format-grid,.options-grid{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12669
+ `, isInline: true, styles: [".export-dialog{width:800px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;gap:8px;font-weight:500}.dialog-content{flex:1;overflow:hidden}.tab-content{padding:16px 0;height:60vh;overflow-y:auto}.section{margin-bottom:24px}.section-title{margin:0 0 16px;color:var(--md-sys-color-primary);font-size:16px;font-weight:500}.format-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px}.format-card{cursor:pointer;transition:all .2s ease;border:2px solid transparent}.format-card:hover{border-color:var(--md-sys-color-primary-container);box-shadow:0 4px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.format-card.selected{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container)}.format-description{font-size:13px;color:var(--md-sys-color-on-surface-variant);margin:8px 0;min-height:40px}.format-features{display:flex;gap:4px;flex-wrap:wrap}.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.full-width{width:100%}.batch-formats{margin-top:16px}.export-results,.integration-results{margin-top:24px}.result-panel{margin-bottom:8px}.success-icon{color:var(--md-sys-color-tertiary)}.error-icon{color:var(--md-sys-color-error)}.result-details{padding:16px 0}.detail-row{margin-bottom:8px;font-size:14px}.action-buttons{display:flex;gap:8px;margin-top:16px}.error-details{color:var(--md-sys-color-error)}.error-item{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);padding:8px;border-radius:4px;margin-bottom:4px}.system-info{margin-top:16px}.info-card{background:var(--md-sys-color-surface-variant)}.system-details,.integration-result{margin-bottom:16px}.success-card{border-left:4px solid var(--md-sys-color-tertiary)}.error-card{border-left:4px solid var(--md-sys-color-error)}.sharing-form{max-width:400px}.share-card{margin-top:16px;border-left:4px solid var(--md-sys-color-primary)}.share-url{margin-bottom:16px}.dialog-actions{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}.dialog-actions .action-buttons{display:flex;gap:8px}.progress-bar{position:absolute;bottom:0;left:0;right:0}@media (max-width: 768px){.export-dialog{width:100vw;height:100vh;max-width:none;max-height:none}.format-grid,.options-grid{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12670
12670
  }
12671
12671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: ExportDialogComponent, decorators: [{
12672
12672
  type: Component,
@@ -13176,7 +13176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
13176
13176
  >
13177
13177
  </mat-progress-bar>
13178
13178
  </div>
13179
- `, styles: [".export-dialog{width:800px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;gap:8px;font-weight:500}.dialog-content{flex:1;overflow:hidden}.tab-content{padding:16px 0;height:60vh;overflow-y:auto}.section{margin-bottom:24px}.section-title{margin:0 0 16px;color:var(--mdc-theme-primary);font-size:16px;font-weight:500}.format-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px}.format-card{cursor:pointer;transition:all .2s ease;border:2px solid transparent}.format-card:hover{border-color:var(--mdc-theme-primary-container);box-shadow:0 4px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.format-card.selected{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container)}.format-description{font-size:13px;color:var(--mdc-theme-on-surface-variant);margin:8px 0;min-height:40px}.format-features{display:flex;gap:4px;flex-wrap:wrap}.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.full-width{width:100%}.batch-formats{margin-top:16px}.export-results,.integration-results{margin-top:24px}.result-panel{margin-bottom:8px}.success-icon{color:var(--mdc-theme-tertiary)}.error-icon{color:var(--mdc-theme-error)}.result-details{padding:16px 0}.detail-row{margin-bottom:8px;font-size:14px}.action-buttons{display:flex;gap:8px;margin-top:16px}.error-details{color:var(--mdc-theme-error)}.error-item{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container);padding:8px;border-radius:4px;margin-bottom:4px}.system-info{margin-top:16px}.info-card{background:var(--mdc-theme-surface-variant)}.system-details,.integration-result{margin-bottom:16px}.success-card{border-left:4px solid var(--mdc-theme-tertiary)}.error-card{border-left:4px solid var(--mdc-theme-error)}.sharing-form{max-width:400px}.share-card{margin-top:16px;border-left:4px solid var(--mdc-theme-primary)}.share-url{margin-bottom:16px}.dialog-actions{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}.dialog-actions .action-buttons{display:flex;gap:8px}.progress-bar{position:absolute;bottom:0;left:0;right:0}@media (max-width: 768px){.export-dialog{width:100vw;height:100vh;max-width:none;max-height:none}.format-grid,.options-grid{grid-template-columns:1fr}}\n"] }]
13179
+ `, styles: [".export-dialog{width:800px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;gap:8px;font-weight:500}.dialog-content{flex:1;overflow:hidden}.tab-content{padding:16px 0;height:60vh;overflow-y:auto}.section{margin-bottom:24px}.section-title{margin:0 0 16px;color:var(--md-sys-color-primary);font-size:16px;font-weight:500}.format-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px}.format-card{cursor:pointer;transition:all .2s ease;border:2px solid transparent}.format-card:hover{border-color:var(--md-sys-color-primary-container);box-shadow:0 4px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.format-card.selected{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container)}.format-description{font-size:13px;color:var(--md-sys-color-on-surface-variant);margin:8px 0;min-height:40px}.format-features{display:flex;gap:4px;flex-wrap:wrap}.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.full-width{width:100%}.batch-formats{margin-top:16px}.export-results,.integration-results{margin-top:24px}.result-panel{margin-bottom:8px}.success-icon{color:var(--md-sys-color-tertiary)}.error-icon{color:var(--md-sys-color-error)}.result-details{padding:16px 0}.detail-row{margin-bottom:8px;font-size:14px}.action-buttons{display:flex;gap:8px;margin-top:16px}.error-details{color:var(--md-sys-color-error)}.error-item{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);padding:8px;border-radius:4px;margin-bottom:4px}.system-info{margin-top:16px}.info-card{background:var(--md-sys-color-surface-variant)}.system-details,.integration-result{margin-bottom:16px}.success-card{border-left:4px solid var(--md-sys-color-tertiary)}.error-card{border-left:4px solid var(--md-sys-color-error)}.sharing-form{max-width:400px}.share-card{margin-top:16px;border-left:4px solid var(--md-sys-color-primary)}.share-url{margin-bottom:16px}.dialog-actions{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}.dialog-actions .action-buttons{display:flex;gap:8px}.progress-bar{position:absolute;bottom:0;left:0;right:0}@media (max-width: 768px){.export-dialog{width:100vw;height:100vh;max-width:none;max-height:none}.format-grid,.options-grid{grid-template-columns:1fr}}\n"] }]
13180
13180
  }], ctorParameters: () => [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
13181
13181
  type: Inject,
13182
13182
  args: [MAT_DIALOG_DATA]
@@ -14155,7 +14155,7 @@ class DslLinterComponent {
14155
14155
  </mat-tab-group>
14156
14156
  </div>
14157
14157
  </div>
14158
- `, isInline: true, styles: [".dsl-linter-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.linter-toolbar{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant);flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.stats-summary{display:flex;gap:8px;margin-right:16px}.stats-summary mat-chip{display:flex;align-items:center;gap:4px;font-weight:500}.error-chip{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.warning-chip{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.info-chip{background:var(--mdc-theme-info-container);color:var(--mdc-theme-on-info-container)}.success-chip{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.neutral-chip{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.linter-content{flex:1;min-height:0}.tab-content{padding:16px;height:100%;overflow-y:auto}.filter-controls{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.filter-field{min-width:200px}.severity-icon{font-size:16px;width:16px;height:16px;margin-right:8px}.severity-icon.error{color:var(--mdc-theme-error)}.severity-icon.warning{color:var(--mdc-theme-warning)}.severity-icon.info{color:var(--mdc-theme-info)}.severity-icon.hint{color:var(--mdc-theme-primary)}.issues-list{display:flex;flex-direction:column;gap:8px}.issue-panel{border-left:4px solid transparent}.issue-panel.severity-error{border-left-color:var(--mdc-theme-error)}.issue-panel.severity-warning{border-left-color:var(--mdc-theme-warning)}.issue-panel.severity-info{border-left-color:var(--mdc-theme-info)}.issue-panel.severity-hint{border-left-color:var(--mdc-theme-primary)}.error-message{font-weight:500;margin-left:8px}.category-chip{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container);margin-right:8px}.location{font-family:Courier New,monospace;font-size:12px;opacity:.7}.issue-details{padding:16px 0;border-top:1px solid var(--mdc-theme-outline)}.issue-info{margin-bottom:16px}.info-row{margin-bottom:8px;font-size:14px}.tag-chip{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant);margin-left:4px}.issue-actions{display:flex;gap:8px;flex-wrap:wrap}.no-issues{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--mdc-theme-on-surface-variant)}.no-issues-icon{font-size:64px;width:64px;height:64px;color:var(--mdc-theme-tertiary);margin-bottom:16px}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.analytics-card{height:fit-content}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--mdc-theme-outline-variant)}.metric-item:last-child{border-bottom:none}.metric-label{font-weight:500}.metric-value{font-weight:600}.metric-value.excellent{color:var(--mdc-theme-tertiary)}.metric-value.good{color:var(--mdc-theme-primary)}.metric-value.fair{color:var(--mdc-theme-warning)}.metric-value.poor{color:var(--mdc-theme-error)}.distribution-chart{display:flex;flex-direction:column;gap:12px}.chart-bar{display:flex;flex-direction:column;gap:4px}.bar-label{font-size:12px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.bar-container{position:relative;height:24px;background:var(--mdc-theme-surface-variant);border-radius:4px;overflow:hidden}.bar-fill{height:100%;transition:width .3s ease}.bar-fill.bar-error{background:var(--mdc-theme-error)}.bar-fill.bar-warning{background:var(--mdc-theme-warning)}.bar-fill.bar-info{background:var(--mdc-theme-info)}.bar-fill.bar-hint{background:var(--mdc-theme-primary)}.bar-value{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:500;color:var(--mdc-theme-on-surface)}.common-issues{display:flex;flex-direction:column;gap:8px}.common-issue-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--mdc-theme-surface-variant);border-radius:4px}.issue-code{font-family:Courier New,monospace;font-weight:500}.issue-count{font-size:12px;color:var(--mdc-theme-on-surface-variant)}.rules-content{display:flex;flex-direction:column;gap:8px}.rule-category-panel{border:1px solid var(--mdc-theme-outline-variant)}.category-rules{padding:16px}.rule-item{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--mdc-theme-outline-variant);border-radius:4px;margin-bottom:8px}.rule-header{display:flex;align-items:center;gap:12px}.rule-info{flex:1}.rule-name{font-weight:500;margin-bottom:4px}.rule-description{font-size:13px;color:var(--mdc-theme-on-surface-variant)}.severity-chip{font-size:11px;min-height:20px}.severity-chip.error{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.severity-chip.warning{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.severity-chip.info{background:var(--mdc-theme-info-container);color:var(--mdc-theme-on-info-container)}.severity-chip.hint{background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container)}.rule-config{padding-left:44px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i6$2.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: MatListModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i12$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14158
+ `, isInline: true, styles: [".dsl-linter-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.linter-toolbar{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant);flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.stats-summary{display:flex;gap:8px;margin-right:16px}.stats-summary mat-chip{display:flex;align-items:center;gap:4px;font-weight:500}.error-chip{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.warning-chip{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.info-chip{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.success-chip{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.neutral-chip{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant)}.linter-content{flex:1;min-height:0}.tab-content{padding:16px;height:100%;overflow-y:auto}.filter-controls{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.filter-field{min-width:200px}.severity-icon{font-size:16px;width:16px;height:16px;margin-right:8px}.severity-icon.error{color:var(--md-sys-color-error)}.severity-icon.warning{color:var(--md-sys-color-secondary)}.severity-icon.info,.severity-icon.hint{color:var(--md-sys-color-primary)}.issues-list{display:flex;flex-direction:column;gap:8px}.issue-panel{border-left:4px solid transparent}.issue-panel.severity-error{border-left-color:var(--md-sys-color-error)}.issue-panel.severity-warning{border-left-color:var(--md-sys-color-secondary)}.issue-panel.severity-info,.issue-panel.severity-hint{border-left-color:var(--md-sys-color-primary)}.error-message{font-weight:500;margin-left:8px}.category-chip{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);margin-right:8px}.location{font-family:Courier New,monospace;font-size:12px;opacity:.7}.issue-details{padding:16px 0;border-top:1px solid var(--md-sys-color-outline-variant)}.issue-info{margin-bottom:16px}.info-row{margin-bottom:8px;font-size:14px}.tag-chip{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant);margin-left:4px}.issue-actions{display:flex;gap:8px;flex-wrap:wrap}.no-issues{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--md-sys-color-on-surface-variant)}.no-issues-icon{font-size:64px;width:64px;height:64px;color:var(--md-sys-color-tertiary);margin-bottom:16px}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.analytics-card{height:fit-content}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--md-sys-color-outline-variant)}.metric-item:last-child{border-bottom:none}.metric-label{font-weight:500}.metric-value{font-weight:600}.metric-value.excellent{color:var(--md-sys-color-tertiary)}.metric-value.good{color:var(--md-sys-color-primary)}.metric-value.fair{color:var(--md-sys-color-secondary)}.metric-value.poor{color:var(--md-sys-color-error)}.distribution-chart{display:flex;flex-direction:column;gap:12px}.chart-bar{display:flex;flex-direction:column;gap:4px}.bar-label{font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.bar-container{position:relative;height:24px;background:var(--md-sys-color-surface-container);border-radius:4px;overflow:hidden}.bar-fill{height:100%;transition:width .3s ease}.bar-fill.bar-error{background:var(--md-sys-color-error)}.bar-fill.bar-warning{background:var(--md-sys-color-secondary)}.bar-fill.bar-info,.bar-fill.bar-hint{background:var(--md-sys-color-primary)}.bar-value{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface)}.common-issues{display:flex;flex-direction:column;gap:8px}.common-issue-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--md-sys-color-surface-container);border-radius:4px}.issue-code{font-family:Courier New,monospace;font-weight:500}.issue-count{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.rules-content{display:flex;flex-direction:column;gap:8px}.rule-category-panel{border:1px solid var(--md-sys-color-outline-variant)}.category-rules{padding:16px}.rule-item{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;margin-bottom:8px}.rule-header{display:flex;align-items:center;gap:12px}.rule-info{flex:1}.rule-name{font-weight:500;margin-bottom:4px}.rule-description{font-size:13px;color:var(--md-sys-color-on-surface-variant)}.severity-chip{font-size:11px;min-height:20px}.severity-chip.error{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.severity-chip.warning{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.severity-chip.info,.severity-chip.hint{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.rule-config{padding-left:44px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i6$2.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: MatListModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i12$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14159
14159
  }
14160
14160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: DslLinterComponent, decorators: [{
14161
14161
  type: Component,
@@ -14563,7 +14563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
14563
14563
  </mat-tab-group>
14564
14564
  </div>
14565
14565
  </div>
14566
- `, styles: [".dsl-linter-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.linter-toolbar{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant);flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.stats-summary{display:flex;gap:8px;margin-right:16px}.stats-summary mat-chip{display:flex;align-items:center;gap:4px;font-weight:500}.error-chip{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.warning-chip{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.info-chip{background:var(--mdc-theme-info-container);color:var(--mdc-theme-on-info-container)}.success-chip{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.neutral-chip{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.linter-content{flex:1;min-height:0}.tab-content{padding:16px;height:100%;overflow-y:auto}.filter-controls{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.filter-field{min-width:200px}.severity-icon{font-size:16px;width:16px;height:16px;margin-right:8px}.severity-icon.error{color:var(--mdc-theme-error)}.severity-icon.warning{color:var(--mdc-theme-warning)}.severity-icon.info{color:var(--mdc-theme-info)}.severity-icon.hint{color:var(--mdc-theme-primary)}.issues-list{display:flex;flex-direction:column;gap:8px}.issue-panel{border-left:4px solid transparent}.issue-panel.severity-error{border-left-color:var(--mdc-theme-error)}.issue-panel.severity-warning{border-left-color:var(--mdc-theme-warning)}.issue-panel.severity-info{border-left-color:var(--mdc-theme-info)}.issue-panel.severity-hint{border-left-color:var(--mdc-theme-primary)}.error-message{font-weight:500;margin-left:8px}.category-chip{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container);margin-right:8px}.location{font-family:Courier New,monospace;font-size:12px;opacity:.7}.issue-details{padding:16px 0;border-top:1px solid var(--mdc-theme-outline)}.issue-info{margin-bottom:16px}.info-row{margin-bottom:8px;font-size:14px}.tag-chip{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant);margin-left:4px}.issue-actions{display:flex;gap:8px;flex-wrap:wrap}.no-issues{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--mdc-theme-on-surface-variant)}.no-issues-icon{font-size:64px;width:64px;height:64px;color:var(--mdc-theme-tertiary);margin-bottom:16px}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.analytics-card{height:fit-content}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--mdc-theme-outline-variant)}.metric-item:last-child{border-bottom:none}.metric-label{font-weight:500}.metric-value{font-weight:600}.metric-value.excellent{color:var(--mdc-theme-tertiary)}.metric-value.good{color:var(--mdc-theme-primary)}.metric-value.fair{color:var(--mdc-theme-warning)}.metric-value.poor{color:var(--mdc-theme-error)}.distribution-chart{display:flex;flex-direction:column;gap:12px}.chart-bar{display:flex;flex-direction:column;gap:4px}.bar-label{font-size:12px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.bar-container{position:relative;height:24px;background:var(--mdc-theme-surface-variant);border-radius:4px;overflow:hidden}.bar-fill{height:100%;transition:width .3s ease}.bar-fill.bar-error{background:var(--mdc-theme-error)}.bar-fill.bar-warning{background:var(--mdc-theme-warning)}.bar-fill.bar-info{background:var(--mdc-theme-info)}.bar-fill.bar-hint{background:var(--mdc-theme-primary)}.bar-value{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:500;color:var(--mdc-theme-on-surface)}.common-issues{display:flex;flex-direction:column;gap:8px}.common-issue-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--mdc-theme-surface-variant);border-radius:4px}.issue-code{font-family:Courier New,monospace;font-weight:500}.issue-count{font-size:12px;color:var(--mdc-theme-on-surface-variant)}.rules-content{display:flex;flex-direction:column;gap:8px}.rule-category-panel{border:1px solid var(--mdc-theme-outline-variant)}.category-rules{padding:16px}.rule-item{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--mdc-theme-outline-variant);border-radius:4px;margin-bottom:8px}.rule-header{display:flex;align-items:center;gap:12px}.rule-info{flex:1}.rule-name{font-weight:500;margin-bottom:4px}.rule-description{font-size:13px;color:var(--mdc-theme-on-surface-variant)}.severity-chip{font-size:11px;min-height:20px}.severity-chip.error{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.severity-chip.warning{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.severity-chip.info{background:var(--mdc-theme-info-container);color:var(--mdc-theme-on-info-container)}.severity-chip.hint{background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container)}.rule-config{padding-left:44px}\n"] }]
14566
+ `, styles: [".dsl-linter-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.linter-toolbar{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant);flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.stats-summary{display:flex;gap:8px;margin-right:16px}.stats-summary mat-chip{display:flex;align-items:center;gap:4px;font-weight:500}.error-chip{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.warning-chip{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.info-chip{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.success-chip{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.neutral-chip{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant)}.linter-content{flex:1;min-height:0}.tab-content{padding:16px;height:100%;overflow-y:auto}.filter-controls{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.filter-field{min-width:200px}.severity-icon{font-size:16px;width:16px;height:16px;margin-right:8px}.severity-icon.error{color:var(--md-sys-color-error)}.severity-icon.warning{color:var(--md-sys-color-secondary)}.severity-icon.info,.severity-icon.hint{color:var(--md-sys-color-primary)}.issues-list{display:flex;flex-direction:column;gap:8px}.issue-panel{border-left:4px solid transparent}.issue-panel.severity-error{border-left-color:var(--md-sys-color-error)}.issue-panel.severity-warning{border-left-color:var(--md-sys-color-secondary)}.issue-panel.severity-info,.issue-panel.severity-hint{border-left-color:var(--md-sys-color-primary)}.error-message{font-weight:500;margin-left:8px}.category-chip{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);margin-right:8px}.location{font-family:Courier New,monospace;font-size:12px;opacity:.7}.issue-details{padding:16px 0;border-top:1px solid var(--md-sys-color-outline-variant)}.issue-info{margin-bottom:16px}.info-row{margin-bottom:8px;font-size:14px}.tag-chip{background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant);margin-left:4px}.issue-actions{display:flex;gap:8px;flex-wrap:wrap}.no-issues{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--md-sys-color-on-surface-variant)}.no-issues-icon{font-size:64px;width:64px;height:64px;color:var(--md-sys-color-tertiary);margin-bottom:16px}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.analytics-card{height:fit-content}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--md-sys-color-outline-variant)}.metric-item:last-child{border-bottom:none}.metric-label{font-weight:500}.metric-value{font-weight:600}.metric-value.excellent{color:var(--md-sys-color-tertiary)}.metric-value.good{color:var(--md-sys-color-primary)}.metric-value.fair{color:var(--md-sys-color-secondary)}.metric-value.poor{color:var(--md-sys-color-error)}.distribution-chart{display:flex;flex-direction:column;gap:12px}.chart-bar{display:flex;flex-direction:column;gap:4px}.bar-label{font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.bar-container{position:relative;height:24px;background:var(--md-sys-color-surface-container);border-radius:4px;overflow:hidden}.bar-fill{height:100%;transition:width .3s ease}.bar-fill.bar-error{background:var(--md-sys-color-error)}.bar-fill.bar-warning{background:var(--md-sys-color-secondary)}.bar-fill.bar-info,.bar-fill.bar-hint{background:var(--md-sys-color-primary)}.bar-value{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface)}.common-issues{display:flex;flex-direction:column;gap:8px}.common-issue-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--md-sys-color-surface-container);border-radius:4px}.issue-code{font-family:Courier New,monospace;font-weight:500}.issue-count{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.rules-content{display:flex;flex-direction:column;gap:8px}.rule-category-panel{border:1px solid var(--md-sys-color-outline-variant)}.category-rules{padding:16px}.rule-item{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;margin-bottom:8px}.rule-header{display:flex;align-items:center;gap:12px}.rule-info{flex:1}.rule-name{font-weight:500;margin-bottom:4px}.rule-description{font-size:13px;color:var(--md-sys-color-on-surface-variant)}.severity-chip{font-size:11px;min-height:20px}.severity-chip.error{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.severity-chip.warning{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.severity-chip.info,.severity-chip.hint{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.rule-config{padding-left:44px}\n"] }]
14567
14567
  }], ctorParameters: () => [{ type: RuleBuilderService }, { type: SpecificationBridgeService }, { type: i0.ChangeDetectorRef }], propDecorators: { dsl: [{
14568
14568
  type: Input
14569
14569
  }], autoLint: [{
@@ -15697,7 +15697,7 @@ class RuleEditorComponent {
15697
15697
  </div>
15698
15698
  </div>
15699
15699
  </div>
15700
- `, isInline: true, styles: [":host{--mdc-theme-background: var(--md-sys-color-background, var(--sicoob-bg-high));--mdc-theme-surface: var(--md-sys-color-surface, var(--sicoob-bg-elev-1));--mdc-theme-surface-variant: var(--md-sys-color-surface-container, var(--sicoob-bg-elev-2));--mdc-theme-outline: var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));--mdc-theme-on-surface: var(--md-sys-color-on-surface, var(--sicoob-text-high));--mdc-theme-on-surface-variant: var(--md-sys-color-on-surface-variant, color-mix(in srgb, var(--sicoob-text-high), transparent 40%));--mdc-theme-primary: var(--md-sys-color-primary, var(--sicoob-primary-default));--mdc-theme-secondary: var(--md-sys-color-secondary, var(--sicoob-secondary-default, var(--mdc-theme-primary)));--mdc-theme-tertiary: var(--md-sys-color-tertiary, var(--sicoob-tertiary-default, var(--mdc-theme-primary)));--mdc-theme-error: var(--md-sys-color-error, var(--sicoob-error-default));--mdc-theme-error-container: var(--md-sys-color-error-container, color-mix(in srgb, var(--mdc-theme-error), transparent 85%))}.rule-editor-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.rule-editor-container.embedded{height:auto;overflow:visible}.rule-editor-toolbar{background:var(--mdc-theme-primary);color:#fff;flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.rule-editor-content{flex:1;min-height:0}.sidenav-container{height:100%;min-height:0}.rule-editor-sidebar{width:300px;padding:16px;background:var(--mdc-theme-surface);border-right:1px solid var(--mdc-theme-outline)}.sidebar-section{margin-bottom:24px}.sidebar-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.rules-list{min-height:200px}.rule-item{margin-bottom:8px;padding:12px;border:1px solid var(--mdc-theme-outline);border-radius:8px;cursor:pointer;transition:all .2s ease}.rule-item:hover{border-color:var(--mdc-theme-primary);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.rule-item.selected{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container)}.rule-item-content{display:flex;align-items:center;gap:8px}.rule-type-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.rule-label{flex:1;font-size:14px;font-weight:500}.rule-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.rule-item:hover .rule-actions{opacity:1}.nested-rules{margin-top:8px;margin-left:24px;border-left:2px solid var(--mdc-theme-outline);padding-left:12px}.nested-rule-item{display:flex;align-items:center;gap:8px;padding:6px;border-radius:4px;cursor:pointer;font-size:13px}.nested-rule-item:hover{background:var(--mdc-theme-surface-variant)}.nested-rule-item.selected{background:var(--mdc-theme-primary-container)}.add-rule-fab{position:absolute;bottom:16px;right:16px;scale:.8}.field-palette{max-height:300px;overflow-y:auto}.field-category{margin-bottom:16px}.category-title{font-size:12px;font-weight:600;color:var(--mdc-theme-primary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.field-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;cursor:grab;font-size:13px;transition:background .2s ease}.field-item:hover{background:var(--mdc-theme-surface-variant)}.field-item:active{cursor:grabbing}.field-icon{font-size:14px;width:14px;height:14px;color:var(--mdc-theme-secondary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.editor-content{background:var(--mdc-theme-background)}.editor-tabs{height:100%}.visual-builder,.metadata-editor,.dsl-viewer,.json-viewer,.round-trip-tester,.dsl-linter{height:100%;padding:16px;box-sizing:border-box}.round-trip-tester,.dsl-linter{padding:0}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--mdc-theme-surface-variant);border-top:1px solid var(--mdc-theme-outline);font-size:12px;color:var(--mdc-theme-on-surface-variant)}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:8px}.dirty-indicator{color:var(--mdc-theme-primary);font-weight:700}.validation-status{display:flex;align-items:center;gap:4px;font-weight:500}.validation-status.error{color:var(--mdc-theme-error)}.validation-status.success{color:var(--mdc-theme-tertiary)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.mode-indicator{font-weight:600;color:var(--mdc-theme-primary)}.validation-panel{position:fixed;bottom:0;left:0;right:0;max-height:200px;background:var(--mdc-theme-surface);border-top:1px solid var(--mdc-theme-outline);box-shadow:0 -2px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1));z-index:1000}.validation-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--mdc-theme-outline)}.validation-header h3{margin:0;font-size:14px;font-weight:500}.validation-list{max-height:150px;overflow-y:auto;padding:8px}.validation-error{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px}.validation-error.error{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.validation-error.warning{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.validation-error.info{background:var(--mdc-theme-info-container);color:var(--mdc-theme-on-info-container)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-suggestion{font-size:12px;opacity:.8}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 6px 16px var(--vb-shadow-medium-color, rgba(0,0,0,.18))}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .rule-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i6$2.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i11$2.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i11$2.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i11$2.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i7$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: RuleCanvasComponent, selector: "praxis-rule-canvas", inputs: ["state", "fieldSchemas"], outputs: ["nodeSelected", "nodeAdded", "nodeUpdated", "nodeRemoved"] }, { kind: "component", type: MetadataEditorComponent, selector: "praxis-metadata-editor", inputs: ["selectedNode"], outputs: ["metadataUpdated"] }, { kind: "component", type: DslViewerComponent, selector: "praxis-dsl-viewer", inputs: ["dsl", "editable", "language", "theme"], outputs: ["dslChanged", "validationChanged"] }, { kind: "component", type: JsonViewerComponent, selector: "praxis-json-viewer", inputs: ["json", "editable"], outputs: ["jsonChanged"] }, { kind: "component", type: RoundTripTesterComponent, selector: "praxis-round-trip-tester" }, { kind: "component", type: DslLinterComponent, selector: "praxis-dsl-linter", inputs: ["dsl", "autoLint", "lintDelay"], outputs: ["errorSelected", "quickFixApplied", "ruleToggled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15700
+ `, isInline: true, styles: [".rule-editor-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.rule-editor-container.embedded{height:auto;overflow:visible}.rule-editor-toolbar{background:var(--md-sys-color-primary);color:#fff;flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.rule-editor-content{flex:1;min-height:0}.sidenav-container{height:100%;min-height:0}.rule-editor-sidebar{width:300px;padding:16px;background:var(--md-sys-color-surface);border-right:1px solid var(--md-sys-color-outline-variant)}.sidebar-section{margin-bottom:24px}.sidebar-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.rules-list{min-height:200px}.rule-item{margin-bottom:8px;padding:12px;border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;cursor:pointer;transition:all .2s ease}.rule-item:hover{border-color:var(--md-sys-color-primary);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.rule-item.selected{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container)}.rule-item-content{display:flex;align-items:center;gap:8px}.rule-type-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.rule-label{flex:1;font-size:14px;font-weight:500}.rule-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.rule-item:hover .rule-actions{opacity:1}.nested-rules{margin-top:8px;margin-left:24px;border-left:2px solid var(--md-sys-color-outline-variant);padding-left:12px}.nested-rule-item{display:flex;align-items:center;gap:8px;padding:6px;border-radius:4px;cursor:pointer;font-size:13px}.nested-rule-item:hover{background:var(--md-sys-color-surface-container)}.nested-rule-item.selected{background:var(--md-sys-color-primary-container)}.add-rule-fab{position:absolute;bottom:16px;right:16px;scale:.8}.field-palette{max-height:300px;overflow-y:auto}.field-category{margin-bottom:16px}.category-title{font-size:12px;font-weight:600;color:var(--md-sys-color-primary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.field-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;cursor:grab;font-size:13px;transition:background .2s ease}.field-item:hover{background:var(--md-sys-color-surface-container)}.field-item:active{cursor:grabbing}.field-icon{font-size:14px;width:14px;height:14px;color:var(--md-sys-color-secondary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.editor-content{background:var(--md-sys-color-background)}.editor-tabs{height:100%}.visual-builder,.metadata-editor,.dsl-viewer,.json-viewer,.round-trip-tester,.dsl-linter{height:100%;padding:16px;box-sizing:border-box}.round-trip-tester,.dsl-linter{padding:0}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--md-sys-color-outline-variant);font-size:12px;color:var(--md-sys-color-on-surface-variant)}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:8px}.dirty-indicator{color:var(--md-sys-color-primary);font-weight:700}.validation-status{display:flex;align-items:center;gap:4px;font-weight:500}.validation-status.error{color:var(--md-sys-color-error)}.validation-status.success{color:var(--md-sys-color-tertiary)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.mode-indicator{font-weight:600;color:var(--md-sys-color-primary)}.validation-panel{position:fixed;bottom:0;left:0;right:0;max-height:200px;background:var(--md-sys-color-surface);border-top:1px solid var(--md-sys-color-outline-variant);box-shadow:0 -2px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1));z-index:1000}.validation-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant)}.validation-header h3{margin:0;font-size:14px;font-weight:500}.validation-list{max-height:150px;overflow-y:auto;padding:8px}.validation-error{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px}.validation-error.error{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.validation-error.warning{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.validation-error.info{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-suggestion{font-size:12px;opacity:.8}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 6px 16px var(--vb-shadow-medium-color, rgba(0,0,0,.18))}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .rule-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i9$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i9$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i6$2.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i11$2.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i11$2.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i11$2.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i7$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: RuleCanvasComponent, selector: "praxis-rule-canvas", inputs: ["state", "fieldSchemas"], outputs: ["nodeSelected", "nodeAdded", "nodeUpdated", "nodeRemoved"] }, { kind: "component", type: MetadataEditorComponent, selector: "praxis-metadata-editor", inputs: ["selectedNode"], outputs: ["metadataUpdated"] }, { kind: "component", type: DslViewerComponent, selector: "praxis-dsl-viewer", inputs: ["dsl", "editable", "language", "theme"], outputs: ["dslChanged", "validationChanged"] }, { kind: "component", type: JsonViewerComponent, selector: "praxis-json-viewer", inputs: ["json", "editable"], outputs: ["jsonChanged"] }, { kind: "component", type: RoundTripTesterComponent, selector: "praxis-round-trip-tester" }, { kind: "component", type: DslLinterComponent, selector: "praxis-dsl-linter", inputs: ["dsl", "autoLint", "lintDelay"], outputs: ["errorSelected", "quickFixApplied", "ruleToggled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15701
15701
  }
15702
15702
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: RuleEditorComponent, decorators: [{
15703
15703
  type: Component,
@@ -16061,7 +16061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
16061
16061
  </div>
16062
16062
  </div>
16063
16063
  </div>
16064
- `, styles: [":host{--mdc-theme-background: var(--md-sys-color-background, var(--sicoob-bg-high));--mdc-theme-surface: var(--md-sys-color-surface, var(--sicoob-bg-elev-1));--mdc-theme-surface-variant: var(--md-sys-color-surface-container, var(--sicoob-bg-elev-2));--mdc-theme-outline: var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));--mdc-theme-on-surface: var(--md-sys-color-on-surface, var(--sicoob-text-high));--mdc-theme-on-surface-variant: var(--md-sys-color-on-surface-variant, color-mix(in srgb, var(--sicoob-text-high), transparent 40%));--mdc-theme-primary: var(--md-sys-color-primary, var(--sicoob-primary-default));--mdc-theme-secondary: var(--md-sys-color-secondary, var(--sicoob-secondary-default, var(--mdc-theme-primary)));--mdc-theme-tertiary: var(--md-sys-color-tertiary, var(--sicoob-tertiary-default, var(--mdc-theme-primary)));--mdc-theme-error: var(--md-sys-color-error, var(--sicoob-error-default));--mdc-theme-error-container: var(--md-sys-color-error-container, color-mix(in srgb, var(--mdc-theme-error), transparent 85%))}.rule-editor-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.rule-editor-container.embedded{height:auto;overflow:visible}.rule-editor-toolbar{background:var(--mdc-theme-primary);color:#fff;flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.rule-editor-content{flex:1;min-height:0}.sidenav-container{height:100%;min-height:0}.rule-editor-sidebar{width:300px;padding:16px;background:var(--mdc-theme-surface);border-right:1px solid var(--mdc-theme-outline)}.sidebar-section{margin-bottom:24px}.sidebar-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.rules-list{min-height:200px}.rule-item{margin-bottom:8px;padding:12px;border:1px solid var(--mdc-theme-outline);border-radius:8px;cursor:pointer;transition:all .2s ease}.rule-item:hover{border-color:var(--mdc-theme-primary);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.rule-item.selected{border-color:var(--mdc-theme-primary);background:var(--mdc-theme-primary-container)}.rule-item-content{display:flex;align-items:center;gap:8px}.rule-type-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.rule-label{flex:1;font-size:14px;font-weight:500}.rule-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.rule-item:hover .rule-actions{opacity:1}.nested-rules{margin-top:8px;margin-left:24px;border-left:2px solid var(--mdc-theme-outline);padding-left:12px}.nested-rule-item{display:flex;align-items:center;gap:8px;padding:6px;border-radius:4px;cursor:pointer;font-size:13px}.nested-rule-item:hover{background:var(--mdc-theme-surface-variant)}.nested-rule-item.selected{background:var(--mdc-theme-primary-container)}.add-rule-fab{position:absolute;bottom:16px;right:16px;scale:.8}.field-palette{max-height:300px;overflow-y:auto}.field-category{margin-bottom:16px}.category-title{font-size:12px;font-weight:600;color:var(--mdc-theme-primary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.field-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;cursor:grab;font-size:13px;transition:background .2s ease}.field-item:hover{background:var(--mdc-theme-surface-variant)}.field-item:active{cursor:grabbing}.field-icon{font-size:14px;width:14px;height:14px;color:var(--mdc-theme-secondary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--mdc-theme-on-surface-variant);background:var(--mdc-theme-surface-variant);padding:2px 6px;border-radius:4px}.editor-content{background:var(--mdc-theme-background)}.editor-tabs{height:100%}.visual-builder,.metadata-editor,.dsl-viewer,.json-viewer,.round-trip-tester,.dsl-linter{height:100%;padding:16px;box-sizing:border-box}.round-trip-tester,.dsl-linter{padding:0}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--mdc-theme-surface-variant);border-top:1px solid var(--mdc-theme-outline);font-size:12px;color:var(--mdc-theme-on-surface-variant)}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:8px}.dirty-indicator{color:var(--mdc-theme-primary);font-weight:700}.validation-status{display:flex;align-items:center;gap:4px;font-weight:500}.validation-status.error{color:var(--mdc-theme-error)}.validation-status.success{color:var(--mdc-theme-tertiary)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.mode-indicator{font-weight:600;color:var(--mdc-theme-primary)}.validation-panel{position:fixed;bottom:0;left:0;right:0;max-height:200px;background:var(--mdc-theme-surface);border-top:1px solid var(--mdc-theme-outline);box-shadow:0 -2px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1));z-index:1000}.validation-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--mdc-theme-outline)}.validation-header h3{margin:0;font-size:14px;font-weight:500}.validation-list{max-height:150px;overflow-y:auto;padding:8px}.validation-error{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px}.validation-error.error{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.validation-error.warning{background:var(--mdc-theme-warning-container);color:var(--mdc-theme-on-warning-container)}.validation-error.info{background:var(--mdc-theme-info-container);color:var(--mdc-theme-on-info-container)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-suggestion{font-size:12px;opacity:.8}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 6px 16px var(--vb-shadow-medium-color, rgba(0,0,0,.18))}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .rule-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
16064
+ `, styles: [".rule-editor-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.rule-editor-container.embedded{height:auto;overflow:visible}.rule-editor-toolbar{background:var(--md-sys-color-primary);color:#fff;flex-shrink:0}.toolbar-title{display:flex;align-items:center;gap:8px;font-weight:500}.toolbar-spacer{flex:1}.rule-editor-content{flex:1;min-height:0}.sidenav-container{height:100%;min-height:0}.rule-editor-sidebar{width:300px;padding:16px;background:var(--md-sys-color-surface);border-right:1px solid var(--md-sys-color-outline-variant)}.sidebar-section{margin-bottom:24px}.sidebar-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.rules-list{min-height:200px}.rule-item{margin-bottom:8px;padding:12px;border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;cursor:pointer;transition:all .2s ease}.rule-item:hover{border-color:var(--md-sys-color-primary);box-shadow:0 2px 4px var(--vb-shadow-low-color, rgba(0,0,0,.1))}.rule-item.selected{border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container)}.rule-item-content{display:flex;align-items:center;gap:8px}.rule-type-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.rule-label{flex:1;font-size:14px;font-weight:500}.rule-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.rule-item:hover .rule-actions{opacity:1}.nested-rules{margin-top:8px;margin-left:24px;border-left:2px solid var(--md-sys-color-outline-variant);padding-left:12px}.nested-rule-item{display:flex;align-items:center;gap:8px;padding:6px;border-radius:4px;cursor:pointer;font-size:13px}.nested-rule-item:hover{background:var(--md-sys-color-surface-container)}.nested-rule-item.selected{background:var(--md-sys-color-primary-container)}.add-rule-fab{position:absolute;bottom:16px;right:16px;scale:.8}.field-palette{max-height:300px;overflow-y:auto}.field-category{margin-bottom:16px}.category-title{font-size:12px;font-weight:600;color:var(--md-sys-color-primary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.field-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;cursor:grab;font-size:13px;transition:background .2s ease}.field-item:hover{background:var(--md-sys-color-surface-container)}.field-item:active{cursor:grabbing}.field-icon{font-size:14px;width:14px;height:14px;color:var(--md-sys-color-secondary)}.field-label{flex:1;font-weight:500}.field-type{font-size:11px;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container);padding:2px 6px;border-radius:4px}.editor-content{background:var(--md-sys-color-background)}.editor-tabs{height:100%}.visual-builder,.metadata-editor,.dsl-viewer,.json-viewer,.round-trip-tester,.dsl-linter{height:100%;padding:16px;box-sizing:border-box}.round-trip-tester,.dsl-linter{padding:0}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--md-sys-color-outline-variant);font-size:12px;color:var(--md-sys-color-on-surface-variant)}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:8px}.dirty-indicator{color:var(--md-sys-color-primary);font-weight:700}.validation-status{display:flex;align-items:center;gap:4px;font-weight:500}.validation-status.error{color:var(--md-sys-color-error)}.validation-status.success{color:var(--md-sys-color-tertiary)}.validation-status mat-icon{font-size:16px;width:16px;height:16px}.mode-indicator{font-weight:600;color:var(--md-sys-color-primary)}.validation-panel{position:fixed;bottom:0;left:0;right:0;max-height:200px;background:var(--md-sys-color-surface);border-top:1px solid var(--md-sys-color-outline-variant);box-shadow:0 -2px 8px var(--vb-shadow-low-color, rgba(0,0,0,.1));z-index:1000}.validation-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant)}.validation-header h3{margin:0;font-size:14px;font-weight:500}.validation-list{max-height:150px;overflow-y:auto;padding:8px}.validation-error{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:4px;margin-bottom:4px}.validation-error.error{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.validation-error.warning{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.validation-error.info{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.error-content{flex:1}.error-message{font-weight:500;margin-bottom:2px}.error-suggestion{font-size:12px;opacity:.8}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 6px 16px var(--vb-shadow-medium-color, rgba(0,0,0,.18))}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .rule-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
16065
16065
  }], ctorParameters: () => [{ type: RuleBuilderService }, { type: FieldSchemaService }, { type: i1$1.MatSnackBar }, { type: i1.FormBuilder }, { type: i1$2.MatDialog }], propDecorators: { config: [{
16066
16066
  type: Input
16067
16067
  }], initialRules: [{
@@ -19309,7 +19309,7 @@ class TemplateEditorDialogComponent {
19309
19309
  </button>
19310
19310
  </div>
19311
19311
  </div>
19312
- `, isInline: true, styles: [".template-editor-dialog{min-width:600px;max-width:800px;max-height:90vh}.dialog-title{display:flex;align-items:center;gap:8px;margin:0;padding:24px 24px 0;font-size:20px;font-weight:500}.dialog-content{padding:16px 24px;max-height:calc(90vh - 120px);overflow-y:auto}.step-form{padding:16px 0;min-height:400px}.form-row{display:flex;gap:16px;margin-bottom:16px}.name-field,.category-field{flex:1}.description-field,.tags-input,.required-fields-input,.example-field,.organization-field{width:100%}.icon-field,.version-field,.author-name,.author-email{flex:1}.category-option,.icon-option{display:flex;align-items:center;gap:8px}.tags-section,.required-fields-section,.template-variables-section,.author-section,.example-section{margin-bottom:24px}.tags-section h4,.author-section h5,.example-section h5,.required-fields-section h5,.template-variables-section h5{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.section-header{margin-bottom:16px}.section-header h4{margin:0 0 4px;font-size:16px;font-weight:500}.section-description,.field-description{margin:0;font-size:13px;color:var(--mdc-theme-on-surface-variant)}.rules-preview{background:var(--mdc-theme-surface-variant);border-radius:8px;padding:16px;margin-bottom:24px}.preview-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.node-count{font-weight:400;color:var(--mdc-theme-on-surface-variant)}.nodes-tree{max-height:200px;overflow-y:auto}.tree-node{border-left:2px solid transparent;padding:8px 0 8px 16px}.tree-node.root-node{border-left-color:var(--mdc-theme-primary);background:rgba(var(--mdc-theme-primary-rgb),.05)}.node-content{display:flex;align-items:center;gap:8px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.node-label{flex:1;font-size:13px}.node-type-chip{font-size:10px;height:18px;line-height:18px}.detected-variables{margin-top:8px}.no-variables{font-size:12px;color:var(--mdc-theme-on-surface-variant);font-style:italic;margin:8px 0}.step-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid var(--mdc-theme-outline)}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}::ng-deep .mat-stepper-horizontal{margin-top:8px}::ng-deep .mat-step-header{pointer-events:none}::ng-deep .mat-step-header.cdk-keyboard-focused,::ng-deep .mat-step-header.cdk-program-focused,::ng-deep .mat-step-header:hover{background-color:transparent}@media (max-width: 768px){.template-editor-dialog{min-width:320px;max-width:95vw}.form-row{flex-direction:column}.name-field,.category-field,.icon-field,.version-field,.author-name,.author-email{flex:none;width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i12.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i12.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i12.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatStepperModule }, { kind: "component", type: i13$1.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i13$1.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i13$1.MatStepperNext, selector: "button[matStepperNext]" }, { kind: "directive", type: i13$1.MatStepperPrevious, selector: "button[matStepperPrevious]" }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatSnackBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19312
+ `, isInline: true, styles: [".template-editor-dialog{min-width:600px;max-width:800px;max-height:90vh}.dialog-title{display:flex;align-items:center;gap:8px;margin:0;padding:24px 24px 0;font-size:20px;font-weight:500}.dialog-content{padding:16px 24px;max-height:calc(90vh - 120px);overflow-y:auto}.step-form{padding:16px 0;min-height:400px}.form-row{display:flex;gap:16px;margin-bottom:16px}.name-field,.category-field{flex:1}.description-field,.tags-input,.required-fields-input,.example-field,.organization-field{width:100%}.icon-field,.version-field,.author-name,.author-email{flex:1}.category-option,.icon-option{display:flex;align-items:center;gap:8px}.tags-section,.required-fields-section,.template-variables-section,.author-section,.example-section{margin-bottom:24px}.tags-section h4,.author-section h5,.example-section h5,.required-fields-section h5,.template-variables-section h5{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.section-header{margin-bottom:16px}.section-header h4{margin:0 0 4px;font-size:16px;font-weight:500}.section-description,.field-description{margin:0;font-size:13px;color:var(--md-sys-color-on-surface-variant)}.rules-preview{background:var(--md-sys-color-surface-container);border-radius:8px;padding:16px;margin-bottom:24px}.preview-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.node-count{font-weight:400;color:var(--md-sys-color-on-surface-variant)}.nodes-tree{max-height:200px;overflow-y:auto}.tree-node{border-left:2px solid transparent;padding:8px 0 8px 16px}.tree-node.root-node{border-left-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 5%,transparent)}.node-content{display:flex;align-items:center;gap:8px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.node-label{flex:1;font-size:13px}.node-type-chip{font-size:10px;height:18px;line-height:18px}.detected-variables{margin-top:8px}.no-variables{font-size:12px;color:var(--md-sys-color-on-surface-variant);font-style:italic;margin:8px 0}.step-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid var(--md-sys-color-outline-variant)}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}::ng-deep .mat-stepper-horizontal{margin-top:8px}::ng-deep .mat-step-header{pointer-events:none}::ng-deep .mat-step-header.cdk-keyboard-focused,::ng-deep .mat-step-header.cdk-program-focused,::ng-deep .mat-step-header:hover{background-color:transparent}@media (max-width: 768px){.template-editor-dialog{min-width:320px;max-width:95vw}.form-row{flex-direction:column}.name-field,.category-field,.icon-field,.version-field,.author-name,.author-email{flex:none;width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i12.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i12.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i12.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatStepperModule }, { kind: "component", type: i13$1.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i13$1.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i13$1.MatStepperNext, selector: "button[matStepperNext]" }, { kind: "directive", type: i13$1.MatStepperPrevious, selector: "button[matStepperPrevious]" }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatSnackBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19313
19313
  }
19314
19314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: TemplateEditorDialogComponent, decorators: [{
19315
19315
  type: Component,
@@ -19611,7 +19611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
19611
19611
  </button>
19612
19612
  </div>
19613
19613
  </div>
19614
- `, styles: [".template-editor-dialog{min-width:600px;max-width:800px;max-height:90vh}.dialog-title{display:flex;align-items:center;gap:8px;margin:0;padding:24px 24px 0;font-size:20px;font-weight:500}.dialog-content{padding:16px 24px;max-height:calc(90vh - 120px);overflow-y:auto}.step-form{padding:16px 0;min-height:400px}.form-row{display:flex;gap:16px;margin-bottom:16px}.name-field,.category-field{flex:1}.description-field,.tags-input,.required-fields-input,.example-field,.organization-field{width:100%}.icon-field,.version-field,.author-name,.author-email{flex:1}.category-option,.icon-option{display:flex;align-items:center;gap:8px}.tags-section,.required-fields-section,.template-variables-section,.author-section,.example-section{margin-bottom:24px}.tags-section h4,.author-section h5,.example-section h5,.required-fields-section h5,.template-variables-section h5{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.section-header{margin-bottom:16px}.section-header h4{margin:0 0 4px;font-size:16px;font-weight:500}.section-description,.field-description{margin:0;font-size:13px;color:var(--mdc-theme-on-surface-variant)}.rules-preview{background:var(--mdc-theme-surface-variant);border-radius:8px;padding:16px;margin-bottom:24px}.preview-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:500;color:var(--mdc-theme-on-surface)}.node-count{font-weight:400;color:var(--mdc-theme-on-surface-variant)}.nodes-tree{max-height:200px;overflow-y:auto}.tree-node{border-left:2px solid transparent;padding:8px 0 8px 16px}.tree-node.root-node{border-left-color:var(--mdc-theme-primary);background:rgba(var(--mdc-theme-primary-rgb),.05)}.node-content{display:flex;align-items:center;gap:8px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.node-label{flex:1;font-size:13px}.node-type-chip{font-size:10px;height:18px;line-height:18px}.detected-variables{margin-top:8px}.no-variables{font-size:12px;color:var(--mdc-theme-on-surface-variant);font-style:italic;margin:8px 0}.step-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid var(--mdc-theme-outline)}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}::ng-deep .mat-stepper-horizontal{margin-top:8px}::ng-deep .mat-step-header{pointer-events:none}::ng-deep .mat-step-header.cdk-keyboard-focused,::ng-deep .mat-step-header.cdk-program-focused,::ng-deep .mat-step-header:hover{background-color:transparent}@media (max-width: 768px){.template-editor-dialog{min-width:320px;max-width:95vw}.form-row{flex-direction:column}.name-field,.category-field,.icon-field,.version-field,.author-name,.author-email{flex:none;width:100%}}\n"] }]
19614
+ `, styles: [".template-editor-dialog{min-width:600px;max-width:800px;max-height:90vh}.dialog-title{display:flex;align-items:center;gap:8px;margin:0;padding:24px 24px 0;font-size:20px;font-weight:500}.dialog-content{padding:16px 24px;max-height:calc(90vh - 120px);overflow-y:auto}.step-form{padding:16px 0;min-height:400px}.form-row{display:flex;gap:16px;margin-bottom:16px}.name-field,.category-field{flex:1}.description-field,.tags-input,.required-fields-input,.example-field,.organization-field{width:100%}.icon-field,.version-field,.author-name,.author-email{flex:1}.category-option,.icon-option{display:flex;align-items:center;gap:8px}.tags-section,.required-fields-section,.template-variables-section,.author-section,.example-section{margin-bottom:24px}.tags-section h4,.author-section h5,.example-section h5,.required-fields-section h5,.template-variables-section h5{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.section-header{margin-bottom:16px}.section-header h4{margin:0 0 4px;font-size:16px;font-weight:500}.section-description,.field-description{margin:0;font-size:13px;color:var(--md-sys-color-on-surface-variant)}.rules-preview{background:var(--md-sys-color-surface-container);border-radius:8px;padding:16px;margin-bottom:24px}.preview-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:500;color:var(--md-sys-color-on-surface)}.node-count{font-weight:400;color:var(--md-sys-color-on-surface-variant)}.nodes-tree{max-height:200px;overflow-y:auto}.tree-node{border-left:2px solid transparent;padding:8px 0 8px 16px}.tree-node.root-node{border-left-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 5%,transparent)}.node-content{display:flex;align-items:center;gap:8px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.node-label{flex:1;font-size:13px}.node-type-chip{font-size:10px;height:18px;line-height:18px}.detected-variables{margin-top:8px}.no-variables{font-size:12px;color:var(--md-sys-color-on-surface-variant);font-style:italic;margin:8px 0}.step-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid var(--md-sys-color-outline-variant)}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}::ng-deep .mat-stepper-horizontal{margin-top:8px}::ng-deep .mat-step-header{pointer-events:none}::ng-deep .mat-step-header.cdk-keyboard-focused,::ng-deep .mat-step-header.cdk-program-focused,::ng-deep .mat-step-header:hover{background-color:transparent}@media (max-width: 768px){.template-editor-dialog{min-width:320px;max-width:95vw}.form-row{flex-direction:column}.name-field,.category-field,.icon-field,.version-field,.author-name,.author-email{flex:none;width:100%}}\n"] }]
19615
19615
  }], ctorParameters: () => [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
19616
19616
  type: Inject,
19617
19617
  args: [MAT_DIALOG_DATA]
@@ -19951,7 +19951,7 @@ class TemplatePreviewDialogComponent {
19951
19951
  </button>
19952
19952
  </div>
19953
19953
  </div>
19954
- `, isInline: true, styles: [".template-preview-dialog{min-width:500px;max-width:700px}.dialog-title{padding:24px 24px 0;margin:0}.title-content{display:flex;align-items:center;gap:12px;margin-bottom:8px}.title-content mat-icon{font-size:32px;width:32px;height:32px;color:var(--mdc-theme-primary)}.title-text h2{margin:0;font-size:24px;font-weight:500}.template-category{margin:4px 0 0;font-size:14px;color:var(--mdc-theme-on-surface-variant);text-transform:capitalize}.title-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.complexity-chip{font-size:11px}.complexity-simple{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.complexity-medium{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container)}.complexity-complex{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.dialog-content{padding:16px 24px;max-height:70vh;overflow-y:auto}.template-info h3,.template-metadata h3,.rule-structure h3,.required-fields h3,.example-usage h3{margin:0 0 12px;font-size:16px;font-weight:500;color:var(--mdc-theme-primary)}.template-description{margin:0 0 16px;line-height:1.5}.template-tags h4{margin:0 0 8px;font-size:14px;font-weight:500}.tag-chip{margin-right:4px;margin-bottom:4px}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.metadata-item{display:flex;align-items:center;gap:8px;padding:8px;background:var(--mdc-theme-surface-variant);border-radius:8px}.metadata-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.metadata-item .label{font-weight:500;color:var(--mdc-theme-on-surface)}.metadata-item .value{color:var(--mdc-theme-on-surface-variant)}.structure-container{margin-top:8px}.root-node-panel{margin-bottom:8px}.node-details{padding:0 16px 16px}.tree-node{margin-bottom:8px;padding:8px;border-left:2px solid var(--mdc-theme-outline);background:var(--mdc-theme-surface-variant);border-radius:4px}.node-content{display:flex;align-items:center;gap:8px;margin-bottom:4px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.node-label{flex:1;font-weight:500}.node-type-chip{font-size:10px;height:20px;line-height:20px}.node-config{margin-top:4px}.config-preview{font-size:11px;margin:0;padding:4px 8px;background:var(--mdc-theme-surface);border-radius:4px;border:1px solid var(--mdc-theme-outline);overflow-x:auto}.required-field-chip{margin-right:4px;margin-bottom:4px}.fields-note{margin:12px 0 0;font-size:13px;color:var(--mdc-theme-on-surface-variant);font-style:italic}.example-content{background:var(--mdc-theme-surface-variant);border-radius:8px;padding:16px}.example-code{margin:0;font-family:Courier New,monospace;font-size:12px;line-height:1.4;overflow-x:auto}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}mat-divider{margin:16px 0}@media (max-width: 768px){.template-preview-dialog{min-width:320px;max-width:95vw}.metadata-grid{grid-template-columns:1fr}.title-content{flex-direction:column;align-items:flex-start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19954
+ `, isInline: true, styles: [".template-preview-dialog{min-width:500px;max-width:700px}.dialog-title{padding:24px 24px 0;margin:0}.title-content{display:flex;align-items:center;gap:12px;margin-bottom:8px}.title-content mat-icon{font-size:32px;width:32px;height:32px;color:var(--md-sys-color-primary)}.title-text h2{margin:0;font-size:24px;font-weight:500}.template-category{margin:4px 0 0;font-size:14px;color:var(--md-sys-color-on-surface-variant);text-transform:capitalize}.title-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.complexity-chip{font-size:11px}.complexity-simple{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.complexity-medium{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.complexity-complex{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.dialog-content{padding:16px 24px;max-height:70vh;overflow-y:auto}.template-info h3,.template-metadata h3,.rule-structure h3,.required-fields h3,.example-usage h3{margin:0 0 12px;font-size:16px;font-weight:500;color:var(--md-sys-color-primary)}.template-description{margin:0 0 16px;line-height:1.5}.template-tags h4{margin:0 0 8px;font-size:14px;font-weight:500}.tag-chip{margin-right:4px;margin-bottom:4px}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.metadata-item{display:flex;align-items:center;gap:8px;padding:8px;background:var(--md-sys-color-surface-variant);border-radius:8px}.metadata-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.metadata-item .label{font-weight:500;color:var(--md-sys-color-on-surface)}.metadata-item .value{color:var(--md-sys-color-on-surface-variant)}.structure-container{margin-top:8px}.root-node-panel{margin-bottom:8px}.node-details{padding:0 16px 16px}.tree-node{margin-bottom:8px;padding:8px;border-left:2px solid var(--md-sys-color-outline);background:var(--md-sys-color-surface-variant);border-radius:4px}.node-content{display:flex;align-items:center;gap:8px;margin-bottom:4px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.node-label{flex:1;font-weight:500}.node-type-chip{font-size:10px;height:20px;line-height:20px}.node-config{margin-top:4px}.config-preview{font-size:11px;margin:0;padding:4px 8px;background:var(--md-sys-color-surface);border-radius:4px;border:1px solid var(--md-sys-color-outline);overflow-x:auto}.required-field-chip{margin-right:4px;margin-bottom:4px}.fields-note{margin:12px 0 0;font-size:13px;color:var(--md-sys-color-on-surface-variant);font-style:italic}.example-content{background:var(--md-sys-color-surface-variant);border-radius:8px;padding:16px}.example-code{margin:0;font-family:Courier New,monospace;font-size:12px;line-height:1.4;overflow-x:auto}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}mat-divider{margin:16px 0}@media (max-width: 768px){.template-preview-dialog{min-width:320px;max-width:95vw}.metadata-grid{grid-template-columns:1fr}.title-content{flex-direction:column;align-items:flex-start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i10.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i10.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i10.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i10.MatExpansionPanelDescription, selector: "mat-panel-description" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19955
19955
  }
19956
19956
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
19957
19957
  type: Component,
@@ -20170,7 +20170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
20170
20170
  </button>
20171
20171
  </div>
20172
20172
  </div>
20173
- `, styles: [".template-preview-dialog{min-width:500px;max-width:700px}.dialog-title{padding:24px 24px 0;margin:0}.title-content{display:flex;align-items:center;gap:12px;margin-bottom:8px}.title-content mat-icon{font-size:32px;width:32px;height:32px;color:var(--mdc-theme-primary)}.title-text h2{margin:0;font-size:24px;font-weight:500}.template-category{margin:4px 0 0;font-size:14px;color:var(--mdc-theme-on-surface-variant);text-transform:capitalize}.title-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.complexity-chip{font-size:11px}.complexity-simple{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.complexity-medium{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container)}.complexity-complex{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.dialog-content{padding:16px 24px;max-height:70vh;overflow-y:auto}.template-info h3,.template-metadata h3,.rule-structure h3,.required-fields h3,.example-usage h3{margin:0 0 12px;font-size:16px;font-weight:500;color:var(--mdc-theme-primary)}.template-description{margin:0 0 16px;line-height:1.5}.template-tags h4{margin:0 0 8px;font-size:14px;font-weight:500}.tag-chip{margin-right:4px;margin-bottom:4px}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.metadata-item{display:flex;align-items:center;gap:8px;padding:8px;background:var(--mdc-theme-surface-variant);border-radius:8px}.metadata-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.metadata-item .label{font-weight:500;color:var(--mdc-theme-on-surface)}.metadata-item .value{color:var(--mdc-theme-on-surface-variant)}.structure-container{margin-top:8px}.root-node-panel{margin-bottom:8px}.node-details{padding:0 16px 16px}.tree-node{margin-bottom:8px;padding:8px;border-left:2px solid var(--mdc-theme-outline);background:var(--mdc-theme-surface-variant);border-radius:4px}.node-content{display:flex;align-items:center;gap:8px;margin-bottom:4px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--mdc-theme-primary)}.node-label{flex:1;font-weight:500}.node-type-chip{font-size:10px;height:20px;line-height:20px}.node-config{margin-top:4px}.config-preview{font-size:11px;margin:0;padding:4px 8px;background:var(--mdc-theme-surface);border-radius:4px;border:1px solid var(--mdc-theme-outline);overflow-x:auto}.required-field-chip{margin-right:4px;margin-bottom:4px}.fields-note{margin:12px 0 0;font-size:13px;color:var(--mdc-theme-on-surface-variant);font-style:italic}.example-content{background:var(--mdc-theme-surface-variant);border-radius:8px;padding:16px}.example-code{margin:0;font-family:Courier New,monospace;font-size:12px;line-height:1.4;overflow-x:auto}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}mat-divider{margin:16px 0}@media (max-width: 768px){.template-preview-dialog{min-width:320px;max-width:95vw}.metadata-grid{grid-template-columns:1fr}.title-content{flex-direction:column;align-items:flex-start}}\n"] }]
20173
+ `, styles: [".template-preview-dialog{min-width:500px;max-width:700px}.dialog-title{padding:24px 24px 0;margin:0}.title-content{display:flex;align-items:center;gap:12px;margin-bottom:8px}.title-content mat-icon{font-size:32px;width:32px;height:32px;color:var(--md-sys-color-primary)}.title-text h2{margin:0;font-size:24px;font-weight:500}.template-category{margin:4px 0 0;font-size:14px;color:var(--md-sys-color-on-surface-variant);text-transform:capitalize}.title-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.complexity-chip{font-size:11px}.complexity-simple{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.complexity-medium{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.complexity-complex{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.dialog-content{padding:16px 24px;max-height:70vh;overflow-y:auto}.template-info h3,.template-metadata h3,.rule-structure h3,.required-fields h3,.example-usage h3{margin:0 0 12px;font-size:16px;font-weight:500;color:var(--md-sys-color-primary)}.template-description{margin:0 0 16px;line-height:1.5}.template-tags h4{margin:0 0 8px;font-size:14px;font-weight:500}.tag-chip{margin-right:4px;margin-bottom:4px}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.metadata-item{display:flex;align-items:center;gap:8px;padding:8px;background:var(--md-sys-color-surface-variant);border-radius:8px}.metadata-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.metadata-item .label{font-weight:500;color:var(--md-sys-color-on-surface)}.metadata-item .value{color:var(--md-sys-color-on-surface-variant)}.structure-container{margin-top:8px}.root-node-panel{margin-bottom:8px}.node-details{padding:0 16px 16px}.tree-node{margin-bottom:8px;padding:8px;border-left:2px solid var(--md-sys-color-outline);background:var(--md-sys-color-surface-variant);border-radius:4px}.node-content{display:flex;align-items:center;gap:8px;margin-bottom:4px}.node-icon{font-size:16px;width:16px;height:16px;color:var(--md-sys-color-primary)}.node-label{flex:1;font-weight:500}.node-type-chip{font-size:10px;height:20px;line-height:20px}.node-config{margin-top:4px}.config-preview{font-size:11px;margin:0;padding:4px 8px;background:var(--md-sys-color-surface);border-radius:4px;border:1px solid var(--md-sys-color-outline);overflow-x:auto}.required-field-chip{margin-right:4px;margin-bottom:4px}.fields-note{margin:12px 0 0;font-size:13px;color:var(--md-sys-color-on-surface-variant);font-style:italic}.example-content{background:var(--md-sys-color-surface-variant);border-radius:8px;padding:16px}.example-code{margin:0;font-family:Courier New,monospace;font-size:12px;line-height:1.4;overflow-x:auto}.dialog-actions{padding:16px 24px;display:flex;align-items:center;gap:8px}.actions-spacer{flex:1}mat-divider{margin:16px 0}@media (max-width: 768px){.template-preview-dialog{min-width:320px;max-width:95vw}.metadata-grid{grid-template-columns:1fr}.title-content{flex-direction:column;align-items:flex-start}}\n"] }]
20174
20174
  }], ctorParameters: () => [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
20175
20175
  type: Inject,
20176
20176
  args: [MAT_DIALOG_DATA]
@@ -21068,7 +21068,7 @@ class TemplateGalleryComponent {
21068
21068
  </div>
21069
21069
  </div>
21070
21070
  </div>
21071
- `, isInline: true, styles: [":host{--mdc-theme-background: var(--md-sys-color-background, var(--sicoob-bg-high));--mdc-theme-surface: var(--md-sys-color-surface, var(--sicoob-bg-elev-1));--mdc-theme-surface-variant: var(--md-sys-color-surface-container, var(--sicoob-bg-elev-2));--mdc-theme-primary: var(--md-sys-color-primary, var(--sicoob-primary-default));--mdc-theme-on-primary: var(--md-sys-color-on-primary, #ffffff);--mdc-theme-primary-container: var(--md-sys-color-primary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 85%));--mdc-theme-on-primary-container: var(--md-sys-color-on-primary-container, var(--mdc-theme-primary));--mdc-theme-secondary-container: var(--md-sys-color-secondary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 90%));--mdc-theme-on-secondary-container: var(--md-sys-color-on-secondary-container, var(--mdc-theme-on-surface));--mdc-theme-tertiary-container: var(--md-sys-color-tertiary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 88%));--mdc-theme-on-tertiary-container: var(--md-sys-color-on-tertiary-container, var(--mdc-theme-on-surface));--mdc-theme-outline: var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));--mdc-theme-on-surface: var(--md-sys-color-on-surface, var(--sicoob-text-high));--mdc-theme-on-surface-variant: var(--md-sys-color-on-surface-variant, color-mix(in srgb, var(--sicoob-text-high), transparent 40%));--mdc-theme-error: var(--md-sys-color-error, var(--sicoob-error-default));--mdc-theme-error-container: var(--md-sys-color-error-container, color-mix(in srgb, var(--mdc-theme-error), transparent 85%));--mdc-theme-warning-container: color-mix(in srgb, var(--mdc-theme-primary), transparent 80%);--mdc-theme-on-warning-container: var(--mdc-theme-on-surface);--mdc-theme-info-container: color-mix(in srgb, var(--mdc-theme-primary), transparent 85%);--mdc-theme-on-info-container: var(--mdc-theme-primary);--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.template-gallery{display:flex;flex-direction:column;height:100%;background:var(--mdc-theme-background)}.gallery-header{background:var(--mdc-theme-surface);border-bottom:1px solid var(--mdc-theme-outline);padding:16px 24px}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.title-section{flex:1}.gallery-title{display:flex;align-items:center;gap:8px;margin:0;font-size:24px;font-weight:500;color:var(--mdc-theme-on-surface)}.gallery-subtitle{margin:4px 0 0 32px;color:var(--mdc-theme-on-surface-variant);font-size:14px}.header-actions{display:flex;gap:8px;align-items:center}.stats-bar{display:flex;gap:24px;padding:12px 0;border-top:1px solid var(--mdc-theme-outline)}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--mdc-theme-on-surface-variant)}.stat-item mat-icon{font-size:16px;width:16px;height:16px}.search-section{padding:16px 24px;background:var(--mdc-theme-surface-variant);border-bottom:1px solid var(--mdc-theme-outline)}.search-form{display:flex;flex-direction:column;gap:16px}.search-row{display:flex;gap:16px;align-items:flex-start}.search-input{flex:2;min-width:300px}.category-select,.complexity-select,.sort-select{flex:1;min-width:150px}.category-option{display:flex;align-items:center;gap:8px;width:100%}.tags-section{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tags-label{font-size:13px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.tags-list{flex:1}.active-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--mdc-theme-outline)}.filters-label{font-size:13px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.filter-chips{flex:1}.clear-all-button{font-size:12px}.recently-used-section{padding:16px 24px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:500;color:var(--mdc-theme-on-surface)}.template-count{font-size:14px;font-weight:400;color:var(--mdc-theme-on-surface-variant)}.recent-templates{display:flex;gap:12px;flex-wrap:wrap}.recent-template-button{display:flex;align-items:center;gap:8px;padding:8px 16px}.templates-section{flex:1;padding:0 24px 24px;overflow:auto}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.view-toggle{display:flex;align-items:center;gap:8px}.templates-container{min-height:200px}.templates-container.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.template-grid-card{height:fit-content;transition:transform .2s ease,box-shadow .2s ease}.template-grid-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.template-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container)}.card-actions{margin-left:auto}.template-description{font-size:14px;line-height:1.4;margin:0 0 12px;color:var(--mdc-theme-on-surface-variant)}.template-tags{margin-bottom:12px}.template-tag{font-size:11px;height:20px;line-height:20px}.more-tags{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.template-metadata{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}.metadata-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.metadata-item mat-icon{font-size:14px;width:14px;height:14px}.template-preview{margin-top:12px;padding:8px;background:var(--mdc-theme-surface-variant);border-radius:4px}.preview-header{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;margin-bottom:8px;color:var(--mdc-theme-on-surface-variant)}.preview-header mat-icon{font-size:14px;width:14px;height:14px}.node-tree{font-size:11px;font-family:monospace}.root-node{padding:2px 0;color:var(--mdc-theme-on-surface)}.templates-container.list-view{display:flex;flex-direction:column;gap:8px}.template-list-card{padding:12px 16px}.list-card-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.template-info{flex:1;display:flex;flex-direction:column;gap:8px}.template-header{display:flex;align-items:center;gap:12px}.template-details{flex:1}.template-name{margin:0;font-size:16px;font-weight:500}.template-meta{display:flex;gap:8px;align-items:center}.category-badge,.complexity-badge{font-size:11px;padding:2px 6px;border-radius:12px;background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.complexity-simple{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.complexity-medium{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container)}.complexity-complex{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.usage-count{font-size:11px;color:var(--mdc-theme-on-surface-variant)}.template-actions{display:flex;gap:8px;align-items:center}.templates-container.compact-view{display:flex;flex-direction:column;gap:4px}.template-compact-card{padding:8px 12px;border:1px solid var(--mdc-theme-outline);border-radius:4px;background:var(--mdc-theme-surface)}.compact-content{display:flex;align-items:center;gap:12px}.compact-icon{color:var(--mdc-theme-primary)}.compact-info{flex:1;display:flex;flex-direction:column}.compact-name{font-size:14px;font-weight:500}.compact-category{font-size:12px;color:var(--mdc-theme-on-surface-variant)}.compact-actions{display:flex;gap:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--mdc-theme-on-surface-variant)}.empty-icon{font-size:64px;width:64px;height:64px;margin-bottom:16px;color:var(--mdc-theme-outline)}.empty-state h3{margin:0 0 8px;color:var(--mdc-theme-on-surface)}.empty-state p{margin:0 0 16px;max-width:400px}@media (max-width: 1024px){.templates-container.grid-view{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.search-row{flex-wrap:wrap}.search-input{flex:1 1 100%}}@media (max-width: 768px){.header-content{flex-direction:column;gap:16px;align-items:flex-start}.templates-container.grid-view{grid-template-columns:1fr}.stats-bar{flex-wrap:wrap;gap:12px}.gallery-subtitle{margin-left:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i6$1.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i12.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i12.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21071
+ `, isInline: true, styles: [":host{--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.template-gallery{display:flex;flex-direction:column;height:100%;background:var(--md-sys-color-background)}.gallery-header{background:var(--md-sys-color-surface);border-bottom:1px solid var(--md-sys-color-outline);padding:16px 24px}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.title-section{flex:1}.gallery-title{display:flex;align-items:center;gap:8px;margin:0;font-size:24px;font-weight:500;color:var(--md-sys-color-on-surface)}.gallery-subtitle{margin:4px 0 0 32px;color:var(--md-sys-color-on-surface-variant);font-size:14px}.header-actions{display:flex;gap:8px;align-items:center}.stats-bar{display:flex;gap:24px;padding:12px 0;border-top:1px solid var(--md-sys-color-outline)}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--md-sys-color-on-surface-variant)}.stat-item mat-icon{font-size:16px;width:16px;height:16px}.search-section{padding:16px 24px;background:var(--md-sys-color-surface-variant);border-bottom:1px solid var(--md-sys-color-outline)}.search-form{display:flex;flex-direction:column;gap:16px}.search-row{display:flex;gap:16px;align-items:flex-start}.search-input{flex:2;min-width:300px}.category-select,.complexity-select,.sort-select{flex:1;min-width:150px}.category-option{display:flex;align-items:center;gap:8px;width:100%}.tags-section{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tags-label{font-size:13px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.tags-list{flex:1}.active-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--md-sys-color-outline)}.filters-label{font-size:13px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.filter-chips{flex:1}.clear-all-button{font-size:12px}.recently-used-section{padding:16px 24px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:500;color:var(--md-sys-color-on-surface)}.template-count{font-size:14px;font-weight:400;color:var(--md-sys-color-on-surface-variant)}.recent-templates{display:flex;gap:12px;flex-wrap:wrap}.recent-template-button{display:flex;align-items:center;gap:8px;padding:8px 16px}.templates-section{flex:1;padding:0 24px 24px;overflow:auto}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.view-toggle{display:flex;align-items:center;gap:8px}.templates-container{min-height:200px}.templates-container.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.template-grid-card{height:fit-content;transition:transform .2s ease,box-shadow .2s ease}.template-grid-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.template-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.card-actions{margin-left:auto}.template-description{font-size:14px;line-height:1.4;margin:0 0 12px;color:var(--md-sys-color-on-surface-variant)}.template-tags{margin-bottom:12px}.template-tag{font-size:11px;height:20px;line-height:20px}.more-tags{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface-variant)}.template-metadata{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}.metadata-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.metadata-item mat-icon{font-size:14px;width:14px;height:14px}.template-preview{margin-top:12px;padding:8px;background:var(--md-sys-color-surface-variant);border-radius:4px}.preview-header{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;margin-bottom:8px;color:var(--md-sys-color-on-surface-variant)}.preview-header mat-icon{font-size:14px;width:14px;height:14px}.node-tree{font-size:11px;font-family:monospace}.root-node{padding:2px 0;color:var(--md-sys-color-on-surface)}.templates-container.list-view{display:flex;flex-direction:column;gap:8px}.template-list-card{padding:12px 16px}.list-card-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.template-info{flex:1;display:flex;flex-direction:column;gap:8px}.template-header{display:flex;align-items:center;gap:12px}.template-details{flex:1}.template-name{margin:0;font-size:16px;font-weight:500}.template-meta{display:flex;gap:8px;align-items:center}.category-badge,.complexity-badge{font-size:11px;padding:2px 6px;border-radius:12px;background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface-variant)}.complexity-simple{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.complexity-medium{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.complexity-complex{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.usage-count{font-size:11px;color:var(--md-sys-color-on-surface-variant)}.template-actions{display:flex;gap:8px;align-items:center}.templates-container.compact-view{display:flex;flex-direction:column;gap:4px}.template-compact-card{padding:8px 12px;border:1px solid var(--md-sys-color-outline);border-radius:4px;background:var(--md-sys-color-surface)}.compact-content{display:flex;align-items:center;gap:12px}.compact-icon{color:var(--md-sys-color-primary)}.compact-info{flex:1;display:flex;flex-direction:column}.compact-name{font-size:14px;font-weight:500}.compact-category{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.compact-actions{display:flex;gap:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--md-sys-color-on-surface-variant)}.empty-icon{font-size:64px;width:64px;height:64px;margin-bottom:16px;color:var(--md-sys-color-outline)}.empty-state h3{margin:0 0 8px;color:var(--md-sys-color-on-surface)}.empty-state p{margin:0 0 16px;max-width:400px}@media (max-width: 1024px){.templates-container.grid-view{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.search-row{flex-wrap:wrap}.search-input{flex:1 1 100%}}@media (max-width: 768px){.header-content{flex-direction:column;gap:16px;align-items:flex-start}.templates-container.grid-view{grid-template-columns:1fr}.stats-bar{flex-wrap:wrap;gap:12px}.gallery-subtitle{margin-left:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i6$1.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i12.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i12.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i12.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i12.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i12.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i11$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21072
21072
  }
21073
21073
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: TemplateGalleryComponent, decorators: [{
21074
21074
  type: Component,
@@ -21596,7 +21596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
21596
21596
  </div>
21597
21597
  </div>
21598
21598
  </div>
21599
- `, styles: [":host{--mdc-theme-background: var(--md-sys-color-background, var(--sicoob-bg-high));--mdc-theme-surface: var(--md-sys-color-surface, var(--sicoob-bg-elev-1));--mdc-theme-surface-variant: var(--md-sys-color-surface-container, var(--sicoob-bg-elev-2));--mdc-theme-primary: var(--md-sys-color-primary, var(--sicoob-primary-default));--mdc-theme-on-primary: var(--md-sys-color-on-primary, #ffffff);--mdc-theme-primary-container: var(--md-sys-color-primary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 85%));--mdc-theme-on-primary-container: var(--md-sys-color-on-primary-container, var(--mdc-theme-primary));--mdc-theme-secondary-container: var(--md-sys-color-secondary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 90%));--mdc-theme-on-secondary-container: var(--md-sys-color-on-secondary-container, var(--mdc-theme-on-surface));--mdc-theme-tertiary-container: var(--md-sys-color-tertiary-container, color-mix(in srgb, var(--mdc-theme-primary), transparent 88%));--mdc-theme-on-tertiary-container: var(--md-sys-color-on-tertiary-container, var(--mdc-theme-on-surface));--mdc-theme-outline: var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));--mdc-theme-on-surface: var(--md-sys-color-on-surface, var(--sicoob-text-high));--mdc-theme-on-surface-variant: var(--md-sys-color-on-surface-variant, color-mix(in srgb, var(--sicoob-text-high), transparent 40%));--mdc-theme-error: var(--md-sys-color-error, var(--sicoob-error-default));--mdc-theme-error-container: var(--md-sys-color-error-container, color-mix(in srgb, var(--mdc-theme-error), transparent 85%));--mdc-theme-warning-container: color-mix(in srgb, var(--mdc-theme-primary), transparent 80%);--mdc-theme-on-warning-container: var(--mdc-theme-on-surface);--mdc-theme-info-container: color-mix(in srgb, var(--mdc-theme-primary), transparent 85%);--mdc-theme-on-info-container: var(--mdc-theme-primary);--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.template-gallery{display:flex;flex-direction:column;height:100%;background:var(--mdc-theme-background)}.gallery-header{background:var(--mdc-theme-surface);border-bottom:1px solid var(--mdc-theme-outline);padding:16px 24px}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.title-section{flex:1}.gallery-title{display:flex;align-items:center;gap:8px;margin:0;font-size:24px;font-weight:500;color:var(--mdc-theme-on-surface)}.gallery-subtitle{margin:4px 0 0 32px;color:var(--mdc-theme-on-surface-variant);font-size:14px}.header-actions{display:flex;gap:8px;align-items:center}.stats-bar{display:flex;gap:24px;padding:12px 0;border-top:1px solid var(--mdc-theme-outline)}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--mdc-theme-on-surface-variant)}.stat-item mat-icon{font-size:16px;width:16px;height:16px}.search-section{padding:16px 24px;background:var(--mdc-theme-surface-variant);border-bottom:1px solid var(--mdc-theme-outline)}.search-form{display:flex;flex-direction:column;gap:16px}.search-row{display:flex;gap:16px;align-items:flex-start}.search-input{flex:2;min-width:300px}.category-select,.complexity-select,.sort-select{flex:1;min-width:150px}.category-option{display:flex;align-items:center;gap:8px;width:100%}.tags-section{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tags-label{font-size:13px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.tags-list{flex:1}.active-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--mdc-theme-outline)}.filters-label{font-size:13px;font-weight:500;color:var(--mdc-theme-on-surface-variant)}.filter-chips{flex:1}.clear-all-button{font-size:12px}.recently-used-section{padding:16px 24px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:500;color:var(--mdc-theme-on-surface)}.template-count{font-size:14px;font-weight:400;color:var(--mdc-theme-on-surface-variant)}.recent-templates{display:flex;gap:12px;flex-wrap:wrap}.recent-template-button{display:flex;align-items:center;gap:8px;padding:8px 16px}.templates-section{flex:1;padding:0 24px 24px;overflow:auto}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.view-toggle{display:flex;align-items:center;gap:8px}.templates-container{min-height:200px}.templates-container.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.template-grid-card{height:fit-content;transition:transform .2s ease,box-shadow .2s ease}.template-grid-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.template-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--mdc-theme-primary-container);color:var(--mdc-theme-on-primary-container)}.card-actions{margin-left:auto}.template-description{font-size:14px;line-height:1.4;margin:0 0 12px;color:var(--mdc-theme-on-surface-variant)}.template-tags{margin-bottom:12px}.template-tag{font-size:11px;height:20px;line-height:20px}.more-tags{background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.template-metadata{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}.metadata-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--mdc-theme-on-surface-variant)}.metadata-item mat-icon{font-size:14px;width:14px;height:14px}.template-preview{margin-top:12px;padding:8px;background:var(--mdc-theme-surface-variant);border-radius:4px}.preview-header{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;margin-bottom:8px;color:var(--mdc-theme-on-surface-variant)}.preview-header mat-icon{font-size:14px;width:14px;height:14px}.node-tree{font-size:11px;font-family:monospace}.root-node{padding:2px 0;color:var(--mdc-theme-on-surface)}.templates-container.list-view{display:flex;flex-direction:column;gap:8px}.template-list-card{padding:12px 16px}.list-card-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.template-info{flex:1;display:flex;flex-direction:column;gap:8px}.template-header{display:flex;align-items:center;gap:12px}.template-details{flex:1}.template-name{margin:0;font-size:16px;font-weight:500}.template-meta{display:flex;gap:8px;align-items:center}.category-badge,.complexity-badge{font-size:11px;padding:2px 6px;border-radius:12px;background:var(--mdc-theme-surface-variant);color:var(--mdc-theme-on-surface-variant)}.complexity-simple{background:var(--mdc-theme-tertiary-container);color:var(--mdc-theme-on-tertiary-container)}.complexity-medium{background:var(--mdc-theme-secondary-container);color:var(--mdc-theme-on-secondary-container)}.complexity-complex{background:var(--mdc-theme-error-container);color:var(--mdc-theme-on-error-container)}.usage-count{font-size:11px;color:var(--mdc-theme-on-surface-variant)}.template-actions{display:flex;gap:8px;align-items:center}.templates-container.compact-view{display:flex;flex-direction:column;gap:4px}.template-compact-card{padding:8px 12px;border:1px solid var(--mdc-theme-outline);border-radius:4px;background:var(--mdc-theme-surface)}.compact-content{display:flex;align-items:center;gap:12px}.compact-icon{color:var(--mdc-theme-primary)}.compact-info{flex:1;display:flex;flex-direction:column}.compact-name{font-size:14px;font-weight:500}.compact-category{font-size:12px;color:var(--mdc-theme-on-surface-variant)}.compact-actions{display:flex;gap:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--mdc-theme-on-surface-variant)}.empty-icon{font-size:64px;width:64px;height:64px;margin-bottom:16px;color:var(--mdc-theme-outline)}.empty-state h3{margin:0 0 8px;color:var(--mdc-theme-on-surface)}.empty-state p{margin:0 0 16px;max-width:400px}@media (max-width: 1024px){.templates-container.grid-view{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.search-row{flex-wrap:wrap}.search-input{flex:1 1 100%}}@media (max-width: 768px){.header-content{flex-direction:column;gap:16px;align-items:flex-start}.templates-container.grid-view{grid-template-columns:1fr}.stats-bar{flex-wrap:wrap;gap:12px}.gallery-subtitle{margin-left:0}}\n"] }]
21599
+ `, styles: [":host{--vb-shadow-low-color: var(--sicoob-shadow-low, rgba(0,0,0,.08));--vb-shadow-medium-color: var(--sicoob-shadow-medium, rgba(0,0,0,.18));--vb-shadow-high-color: var(--sicoob-shadow-high, rgba(0,0,0,.32))}.template-gallery{display:flex;flex-direction:column;height:100%;background:var(--md-sys-color-background)}.gallery-header{background:var(--md-sys-color-surface);border-bottom:1px solid var(--md-sys-color-outline);padding:16px 24px}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.title-section{flex:1}.gallery-title{display:flex;align-items:center;gap:8px;margin:0;font-size:24px;font-weight:500;color:var(--md-sys-color-on-surface)}.gallery-subtitle{margin:4px 0 0 32px;color:var(--md-sys-color-on-surface-variant);font-size:14px}.header-actions{display:flex;gap:8px;align-items:center}.stats-bar{display:flex;gap:24px;padding:12px 0;border-top:1px solid var(--md-sys-color-outline)}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--md-sys-color-on-surface-variant)}.stat-item mat-icon{font-size:16px;width:16px;height:16px}.search-section{padding:16px 24px;background:var(--md-sys-color-surface-variant);border-bottom:1px solid var(--md-sys-color-outline)}.search-form{display:flex;flex-direction:column;gap:16px}.search-row{display:flex;gap:16px;align-items:flex-start}.search-input{flex:2;min-width:300px}.category-select,.complexity-select,.sort-select{flex:1;min-width:150px}.category-option{display:flex;align-items:center;gap:8px;width:100%}.tags-section{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tags-label{font-size:13px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.tags-list{flex:1}.active-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--md-sys-color-outline)}.filters-label{font-size:13px;font-weight:500;color:var(--md-sys-color-on-surface-variant)}.filter-chips{flex:1}.clear-all-button{font-size:12px}.recently-used-section{padding:16px 24px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:500;color:var(--md-sys-color-on-surface)}.template-count{font-size:14px;font-weight:400;color:var(--md-sys-color-on-surface-variant)}.recent-templates{display:flex;gap:12px;flex-wrap:wrap}.recent-template-button{display:flex;align-items:center;gap:8px;padding:8px 16px}.templates-section{flex:1;padding:0 24px 24px;overflow:auto}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.view-toggle{display:flex;align-items:center;gap:8px}.templates-container{min-height:200px}.templates-container.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.template-grid-card{height:fit-content;transition:transform .2s ease,box-shadow .2s ease}.template-grid-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--vb-shadow-medium-color)}.template-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.card-actions{margin-left:auto}.template-description{font-size:14px;line-height:1.4;margin:0 0 12px;color:var(--md-sys-color-on-surface-variant)}.template-tags{margin-bottom:12px}.template-tag{font-size:11px;height:20px;line-height:20px}.more-tags{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface-variant)}.template-metadata{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}.metadata-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.metadata-item mat-icon{font-size:14px;width:14px;height:14px}.template-preview{margin-top:12px;padding:8px;background:var(--md-sys-color-surface-variant);border-radius:4px}.preview-header{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;margin-bottom:8px;color:var(--md-sys-color-on-surface-variant)}.preview-header mat-icon{font-size:14px;width:14px;height:14px}.node-tree{font-size:11px;font-family:monospace}.root-node{padding:2px 0;color:var(--md-sys-color-on-surface)}.templates-container.list-view{display:flex;flex-direction:column;gap:8px}.template-list-card{padding:12px 16px}.list-card-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.template-info{flex:1;display:flex;flex-direction:column;gap:8px}.template-header{display:flex;align-items:center;gap:12px}.template-details{flex:1}.template-name{margin:0;font-size:16px;font-weight:500}.template-meta{display:flex;gap:8px;align-items:center}.category-badge,.complexity-badge{font-size:11px;padding:2px 6px;border-radius:12px;background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface-variant)}.complexity-simple{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.complexity-medium{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.complexity-complex{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.usage-count{font-size:11px;color:var(--md-sys-color-on-surface-variant)}.template-actions{display:flex;gap:8px;align-items:center}.templates-container.compact-view{display:flex;flex-direction:column;gap:4px}.template-compact-card{padding:8px 12px;border:1px solid var(--md-sys-color-outline);border-radius:4px;background:var(--md-sys-color-surface)}.compact-content{display:flex;align-items:center;gap:12px}.compact-icon{color:var(--md-sys-color-primary)}.compact-info{flex:1;display:flex;flex-direction:column}.compact-name{font-size:14px;font-weight:500}.compact-category{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.compact-actions{display:flex;gap:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--md-sys-color-on-surface-variant)}.empty-icon{font-size:64px;width:64px;height:64px;margin-bottom:16px;color:var(--md-sys-color-outline)}.empty-state h3{margin:0 0 8px;color:var(--md-sys-color-on-surface)}.empty-state p{margin:0 0 16px;max-width:400px}@media (max-width: 1024px){.templates-container.grid-view{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.search-row{flex-wrap:wrap}.search-input{flex:1 1 100%}}@media (max-width: 768px){.header-content{flex-direction:column;gap:16px;align-items:flex-start}.templates-container.grid-view{grid-template-columns:1fr}.stats-bar{flex-wrap:wrap;gap:12px}.gallery-subtitle{margin-left:0}}\n"] }]
21600
21600
  }], ctorParameters: () => [{ type: RuleTemplateService }, { type: i1.FormBuilder }, { type: i1$2.MatDialog }, { type: i1$1.MatSnackBar }], propDecorators: { availableFields: [{
21601
21601
  type: Input
21602
21602
  }], templateApplied: [{