@praxisui/dynamic-fields 9.0.0-beta.22 → 9.0.0-beta.26

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.
@@ -143,6 +143,8 @@ const PRAXIS_DYNAMIC_FIELDS_EN_US = {
143
143
  'praxis.dynamicFields.actions.clear.tooltip': 'Clear',
144
144
  'praxis.dynamicFields.actions.clear.ariaLabel': 'Clear field',
145
145
  'praxis.dynamicFields.actions.clear.ariaLabelWithLabel': 'Clear {{label}}',
146
+ 'praxis.dynamicFields.help.ariaLabel': 'Help',
147
+ 'praxis.dynamicFields.help.ariaLabelWithLabel': 'Help: {{label}}',
146
148
  'praxis.dynamicFields.fileUpload.emptySummary': 'No file selected',
147
149
  'praxis.dynamicFields.fileUpload.multipleSummary': '{{count}} files selected',
148
150
  'praxis.dynamicFields.fileUpload.clearSelection': 'Clear',
@@ -533,6 +535,8 @@ const PRAXIS_DYNAMIC_FIELDS_PT_BR = {
533
535
  'praxis.dynamicFields.actions.clear.tooltip': 'Limpar',
534
536
  'praxis.dynamicFields.actions.clear.ariaLabel': 'Limpar campo',
535
537
  'praxis.dynamicFields.actions.clear.ariaLabelWithLabel': 'Limpar {{label}}',
538
+ 'praxis.dynamicFields.help.ariaLabel': 'Ajuda',
539
+ 'praxis.dynamicFields.help.ariaLabelWithLabel': 'Ajuda: {{label}}',
536
540
  'praxis.dynamicFields.fileUpload.emptySummary': 'Nenhum arquivo selecionado',
537
541
  'praxis.dynamicFields.fileUpload.multipleSummary': '{{count}} arquivos selecionados',
538
542
  'praxis.dynamicFields.fileUpload.clearSelection': 'Limpar',
@@ -1452,6 +1456,53 @@ class SimpleBaseInputComponent {
1452
1456
  }
1453
1457
  return '';
1454
1458
  }
1459
+ fieldHelpText() {
1460
+ const meta = this.metadata();
1461
+ const candidates = [meta?.hint, meta?.helpText];
1462
+ for (const candidate of candidates) {
1463
+ const text = String(candidate ?? '').trim();
1464
+ if (text.length) {
1465
+ return text;
1466
+ }
1467
+ }
1468
+ return '';
1469
+ }
1470
+ fieldHelpDisplay() {
1471
+ const meta = this.metadata();
1472
+ const raw = String(meta?.helpDisplay || '').trim();
1473
+ if (raw === 'inline' || raw === 'popover' || raw === 'hidden') {
1474
+ return raw;
1475
+ }
1476
+ if (raw === 'auto') {
1477
+ const text = this.fieldHelpText();
1478
+ if (!text)
1479
+ return 'inline';
1480
+ const maxLength = Math.max(0, Number(meta?.helpInlineMaxLength ?? 64));
1481
+ return text.length > maxLength ? 'popover' : 'inline';
1482
+ }
1483
+ return 'inline';
1484
+ }
1485
+ hasInlineFieldHelp() {
1486
+ return this.fieldHelpDisplay() === 'inline' && !!this.fieldHelpText() && !this.hasValidationError();
1487
+ }
1488
+ fieldHelpInlineText() {
1489
+ return this.hasInlineFieldHelp() ? this.fieldHelpText() : '';
1490
+ }
1491
+ fieldHelpPopoverText() {
1492
+ return this.fieldHelpDisplay() === 'popover' && !this.hasValidationError()
1493
+ ? this.fieldHelpText()
1494
+ : '';
1495
+ }
1496
+ fieldHelpPopoverDisabled() {
1497
+ return !this.fieldHelpPopoverText();
1498
+ }
1499
+ fieldHelpAriaLabel() {
1500
+ const label = this.resolveInlineContextTooltipLabel();
1501
+ if (label) {
1502
+ return this.i18n.t('praxis.dynamicFields.help.ariaLabelWithLabel', { label }, `Ajuda: ${label}`);
1503
+ }
1504
+ return this.i18n.t('praxis.dynamicFields.help.ariaLabel', undefined, 'Ajuda');
1505
+ }
1455
1506
  isInteractionBlockedByState(options) {
1456
1507
  const includeReadonly = options?.includeReadonly !== false;
1457
1508
  const includePresentation = options?.includePresentation !== false;
@@ -7949,6 +8000,19 @@ class MaterialDatepickerComponent extends SimpleBaseInputComponent {
7949
8000
  </button>
7950
8001
  }
7951
8002
 
8003
+ @if (fieldHelpPopoverText()) {
8004
+ <mat-icon
8005
+ matSuffix
8006
+ class="pdx-field-help-icon"
8007
+ [matTooltip]="fieldHelpPopoverText()"
8008
+ matTooltipPosition="above"
8009
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
8010
+ [attr.aria-label]="fieldHelpAriaLabel()"
8011
+ tabindex="0"
8012
+ [praxisIcon]="'help_outline'"
8013
+ ></mat-icon>
8014
+ }
8015
+
7952
8016
  <mat-datepicker
7953
8017
  #picker
7954
8018
  [startView]="metadata()?.startView || 'month'"
@@ -7962,13 +8026,13 @@ class MaterialDatepickerComponent extends SimpleBaseInputComponent {
7962
8026
  <mat-error>{{ errorMessage() }}</mat-error>
7963
8027
  }
7964
8028
 
7965
- @if (metadata()?.hint && !hasValidationError()) {
8029
+ @if (hasInlineFieldHelp()) {
7966
8030
  <mat-hint [align]="metadata()?.hintAlign || 'start'">
7967
- {{ metadata()!.hint }}
8031
+ {{ fieldHelpInlineText() }}
7968
8032
  </mat-hint>
7969
8033
  }
7970
8034
  </mat-form-field>
7971
- `, isInline: true, styles: ["::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}@media(min-width:600px){::ng-deep .cdk-overlay-pane.mat-datepicker-dialog{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;max-width:calc(100vw - 32px)!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-touch,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch{width:min(360px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-container,::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-calendar,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-datepicker-content-container,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-calendar{width:100%!important;height:auto!important;max-height:calc(100vh - 120px)!important}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
8035
+ `, isInline: true, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}@media(min-width:600px){::ng-deep .cdk-overlay-pane.mat-datepicker-dialog{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;max-width:calc(100vw - 32px)!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-touch,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch{width:min(360px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-container,::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-calendar,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-datepicker-content-container,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-calendar{width:100%!important;height:auto!important;max-height:calc(100vh - 120px)!important}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
7972
8036
  }
7973
8037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MaterialDatepickerComponent, decorators: [{
7974
8038
  type: Component,
@@ -8040,6 +8104,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
8040
8104
  </button>
8041
8105
  }
8042
8106
 
8107
+ @if (fieldHelpPopoverText()) {
8108
+ <mat-icon
8109
+ matSuffix
8110
+ class="pdx-field-help-icon"
8111
+ [matTooltip]="fieldHelpPopoverText()"
8112
+ matTooltipPosition="above"
8113
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
8114
+ [attr.aria-label]="fieldHelpAriaLabel()"
8115
+ tabindex="0"
8116
+ [praxisIcon]="'help_outline'"
8117
+ ></mat-icon>
8118
+ }
8119
+
8043
8120
  <mat-datepicker
8044
8121
  #picker
8045
8122
  [startView]="metadata()?.startView || 'month'"
@@ -8053,9 +8130,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
8053
8130
  <mat-error>{{ errorMessage() }}</mat-error>
8054
8131
  }
8055
8132
 
8056
- @if (metadata()?.hint && !hasValidationError()) {
8133
+ @if (hasInlineFieldHelp()) {
8057
8134
  <mat-hint [align]="metadata()?.hintAlign || 'start'">
8058
- {{ metadata()!.hint }}
8135
+ {{ fieldHelpInlineText() }}
8059
8136
  </mat-hint>
8060
8137
  }
8061
8138
  </mat-form-field>
@@ -8085,7 +8162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
8085
8162
  '[attr.data-field-type]': '"date"',
8086
8163
  '[attr.data-field-name]': 'metadata()?.name',
8087
8164
  '[attr.data-component-id]': 'componentId()',
8088
- }, styles: ["::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}@media(min-width:600px){::ng-deep .cdk-overlay-pane.mat-datepicker-dialog{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;max-width:calc(100vw - 32px)!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-touch,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch{width:min(360px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-container,::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-calendar,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-datepicker-content-container,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-calendar{width:100%!important;height:auto!important;max-height:calc(100vh - 120px)!important}}\n"] }]
8165
+ }, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-datepicker-panel){z-index:var(--praxis-layer-popup, 1400)!important}@media(min-width:600px){::ng-deep .cdk-overlay-pane.mat-datepicker-dialog{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;max-width:calc(100vw - 32px)!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-touch,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch{width:min(360px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100vh - 96px)!important}::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-datepicker-content-container,::ng-deep .cdk-overlay-pane.mat-datepicker-dialog .mat-calendar,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-datepicker-content-container,::ng-deep .pdx-datepicker-panel.mat-datepicker-content-touch .mat-calendar{width:100%!important;height:auto!important;max-height:calc(100vh - 120px)!important}}\n"] }]
8089
8166
  }], propDecorators: { validationChange: [{ type: i0.Output, args: ["validationChange"] }], readonlyMode: [{
8090
8167
  type: Input
8091
8168
  }], disabledMode: [{
@@ -10440,7 +10517,7 @@ class FieldShellComponent {
10440
10517
 
10441
10518
  </div>
10442
10519
  </div>
10443
- `, isInline: true, styles: [".pfx-field-shell .mat-mdc-form-field,.pfx-field-shell mat-form-field{width:var(--pfx-field-shell-field-width, 100%)}.pfx-field-shell .mat-mdc-form-field-subscript-wrapper{min-height:20px;margin-top:2px}.pfx-field-shell .mat-mdc-form-field{margin-bottom:8px}.pfx-field-shell .mat-mdc-form-field-infix{min-width:0}:host{display:block;cursor:pointer;width:var(--pfx-field-shell-width, 100%);min-width:0;max-width:100%}.pfx-field-shell-wrapper,.pfx-field-shell-host{position:relative}.praxis-interaction-overlay{position:absolute;inset:0;pointer-events:all}.praxis-readonly-overlay,.praxis-disabled-overlay{cursor:not-allowed}.pfx-field-shell-authoring-hit-target{position:absolute;inset:0;z-index:2;display:block;width:100%;min-width:0;min-height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}.pfx-field-shell-authoring-hit-target:focus-visible{outline:2px solid var(--mat-sys-primary, #90caf9);outline-offset:2px}.praxis-presentation{white-space:pre-wrap;display:block;max-width:100%;min-width:0;padding:6px 0}.praxis-presentation__label{display:block;font-size:var(--pfx-pres-label-size, .78rem);line-height:1.2;letter-spacing:.02em;font-weight:500;opacity:.8;margin-bottom:2px}.praxis-presentation__value{display:block;flex:1 1 auto;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word;font-size:var(--pfx-pres-value-size, 1rem);line-height:1.35;font-weight:600;opacity:.95}.praxis-presentation__value a{color:var( --pfx-pres-link-color, color-mix( in srgb, var(--mat-sys-primary, #90caf9) 78%, var(--mat-sys-on-surface, #ffffff) 22% ) );text-decoration-color:var( --pfx-pres-link-decoration-color, color-mix(in srgb, currentColor 62%, transparent) );text-decoration-thickness:.08em;text-underline-offset:.18em;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.praxis-presentation__value a:visited{color:var(--pfx-pres-link-visited-color, var(--pfx-pres-link-color, inherit))}.praxis-presentation__value a:hover{color:var(--pfx-pres-link-hover-color, var(--pfx-pres-link-color, currentColor));text-decoration-color:currentColor}.praxis-presentation__value a:focus-visible{outline:2px solid var(--pfx-pres-link-focus-ring-color, currentColor);outline-offset:2px;border-radius:2px}.praxis-presentation__content{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}.praxis-presentation__icon{flex:0 0 auto;font-size:1.125rem;width:1.125rem;height:1.125rem;line-height:1;opacity:.85}.praxis-presentation--semantic{--pfx-pres-semantic-color: var(--mat-sys-on-surface-variant, currentColor);--pfx-pres-semantic-bg: color-mix(in srgb, currentColor 7%, transparent);--pfx-pres-semantic-border: color-mix(in srgb, currentColor 16%, transparent)}.praxis-presentation[data-presentation-tone=info]{--pfx-pres-semantic-color: var(--pfx-pres-info-color, var(--mat-sys-primary, #0b5cad))}.praxis-presentation[data-presentation-tone=success]{--pfx-pres-semantic-color: var(--pfx-pres-success-color, var(--praxis-success, #0f7b4a))}.praxis-presentation[data-presentation-tone=warning]{--pfx-pres-semantic-color: var(--pfx-pres-warning-color, var(--praxis-warning, #a16207))}.praxis-presentation[data-presentation-tone=danger]{--pfx-pres-semantic-color: var(--pfx-pres-danger-color, var(--mat-sys-error, #ba1a1a))}.praxis-presentation--semantic .praxis-presentation__icon{color:var(--pfx-pres-semantic-color);opacity:1}.praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.praxis-presentation[data-presentation-presenter=status] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=badge] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=chip] .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pfx-pres-status-min-height, 24px);padding:var(--pfx-pres-status-padding, 2px 9px);border-radius:var(--pfx-pres-status-radius, 999px);border:1px solid var(--pfx-pres-semantic-border);color:var(--pfx-pres-semantic-color);background:var(--pfx-pres-semantic-bg);font-size:var(--pfx-pres-status-font-size, .8rem);font-weight:var(--pfx-pres-status-font-weight, 700);line-height:var(--pfx-pres-status-line-height, 1.1)}.praxis-presentation[data-presentation-appearance=filled] .praxis-presentation__value{color:var(--pfx-pres-status-filled-color, var(--mat-sys-on-primary, #ffffff));background:var(--pfx-pres-semantic-color);border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=outlined] .praxis-presentation__value{background:transparent;border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=plain] .praxis-presentation__value{border-color:transparent;background:transparent;padding-inline:0}.praxis-presentation__badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:20px;padding:1px 7px;border-radius:999px;border:1px solid var(--pfx-pres-semantic-border, color-mix(in srgb, currentColor 16%, transparent));color:var(--pfx-pres-semantic-color, currentColor);background:var(--pfx-pres-semantic-bg, color-mix(in srgb, currentColor 7%, transparent));font-size:.72rem;line-height:1;font-weight:700;white-space:nowrap}.presentation-mode.pres-label-left .praxis-presentation{display:flex;align-items:center;gap:8px}.presentation-mode.pres-label-left .praxis-presentation__label{margin:0;min-width:var(--pfx-pres-label-width, 140px);opacity:.85;text-align:var(--pfx-pres-label-align, start)}.presentation-mode .praxis-presentation__value,.presentation-mode .praxis-presentation__content{flex:1 1 auto;min-width:0;text-align:var(--pfx-pres-value-align, start)}.presentation-mode .praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.presentation-mode .praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.presentation-mode .praxis-presentation--semantic[data-presentation-presenter=iconValue] .praxis-presentation__value{display:inline-flex;flex:0 0 auto;width:auto}.praxis-presentation[data-presentation-presenter=microVisualization] .praxis-presentation__value{display:block;width:100%;max-width:var(--pfx-pres-micro-max-width, 320px);font-size:var(--pfx-pres-micro-font-size, .78rem);line-height:1.2}.pfx-micro-viz{display:grid;gap:6px;width:100%;min-width:0}.pfx-micro-viz__fallback{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600}.pfx-micro-viz__row{display:grid;grid-template-columns:minmax(48px,.65fr) minmax(92px,1fr) auto;gap:6px;align-items:center;min-width:0}.pfx-micro-viz__label,.pfx-micro-viz__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfx-micro-viz__label{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.84}.pfx-micro-viz__value{justify-self:end;font-weight:700}.pfx-micro-viz__track{position:relative;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__bar,.pfx-micro-viz__target{position:absolute;inset-block:0;border-radius:inherit;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__segments{display:flex;height:10px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__segment{min-width:2px;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__bullet{display:grid;gap:5px}.pfx-micro-viz__bullet .pfx-micro-viz__track{height:12px}.pfx-micro-viz__target{width:2px;min-width:2px;transform:translate(-1px);background:var(--mat-sys-on-surface, currentColor);opacity:.74}.pfx-micro-viz__delta{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor));font-weight:800}.pfx-micro-viz__delta-symbol{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:.72rem;line-height:1}.pfx-micro-viz__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.82}.pfx-micro-viz [data-tone=success]{--pfx-micro-tone-color: var(--praxis-success, #0f7b4a)}.pfx-micro-viz [data-tone=warning],.pfx-micro-viz[data-tone=warning]{--pfx-micro-tone-color: var(--praxis-warning, #a16207)}.pfx-micro-viz [data-tone=danger],.pfx-micro-viz[data-tone=danger],.pfx-micro-viz [data-tone=critical],.pfx-micro-viz[data-tone=critical]{--pfx-micro-tone-color: var(--mat-sys-error, #ba1a1a)}.pfx-micro-viz [data-tone=info],.pfx-micro-viz[data-tone=info]{--pfx-micro-tone-color: var(--mat-sys-primary, #0b5cad)}@media(max-width:480px){.presentation-mode.pres-label-left .praxis-presentation{flex-direction:column;align-items:flex-start;gap:4px}.presentation-mode.pres-label-left .praxis-presentation__label{min-width:0;width:auto;text-align:start}.presentation-mode.pres-label-left .praxis-presentation__content{width:100%;flex-basis:auto}}.presentation-mode.pres-density-cozy .praxis-presentation{padding:6px 0}.presentation-mode.pres-density-compact .praxis-presentation{padding:2px 0;gap:6px}.presentation-mode.pres-compact .praxis-presentation{padding:2px 0}.presentation-mode.pres-compact .praxis-presentation__label,.presentation-mode.pres-density-compact .praxis-presentation__label{font-size:var(--pfx-pres-compact-label-size, var(--pfx-pres-label-size, .72rem));margin-bottom:var(--pfx-pres-compact-label-gap, 1px)}.presentation-mode.pres-compact .praxis-presentation__value,.presentation-mode.pres-density-compact .praxis-presentation__value{font-size:var(--pfx-pres-compact-value-size, var(--pfx-pres-value-size, .92rem));line-height:var(--pfx-pres-compact-value-line-height, 1.22)}.presentation-mode .praxis-presentation--boolean .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pfx-pres-boolean-min-height, 22px);padding:var(--pfx-pres-boolean-padding, 0 8px);border-radius:var(--pfx-pres-boolean-radius, 999px);border:1px solid var(--pfx-pres-boolean-border-color, color-mix(in srgb, currentColor 18%, transparent));background:var(--pfx-pres-boolean-bg, color-mix(in srgb, currentColor 8%, transparent));font-size:var(--pfx-pres-boolean-font-size, .78rem);font-weight:var(--pfx-pres-boolean-font-weight, 700);line-height:var(--pfx-pres-boolean-line-height, 1);text-transform:var(--pfx-pres-boolean-text-transform, none)}.presentation-mode .praxis-presentation--boolean-true .praxis-presentation__value{color:var(--pfx-pres-boolean-true-color, var(--mat-sys-primary, currentColor));background:var(--pfx-pres-boolean-true-bg, color-mix(in srgb, var(--mat-sys-primary, currentColor) 10%, transparent));border-color:var(--pfx-pres-boolean-true-border-color, color-mix(in srgb, var(--mat-sys-primary, currentColor) 24%, transparent))}.presentation-mode .praxis-presentation--boolean-false .praxis-presentation__value{color:var(--pfx-pres-boolean-false-color, var(--mat-sys-on-surface-variant, currentColor));background:var(--pfx-pres-boolean-false-bg, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 6%, transparent));border-color:var(--pfx-pres-boolean-false-border-color, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 16%, transparent))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10520
+ `, isInline: true, styles: [".pfx-field-shell .mat-mdc-form-field,.pfx-field-shell mat-form-field{width:var(--pfx-field-shell-field-width, 100%)}.pfx-field-shell .mat-mdc-form-field-subscript-wrapper{min-height:20px;margin-top:2px}.pfx-field-shell .mat-mdc-form-field{margin-bottom:8px}.pfx-field-shell .mat-mdc-form-field-infix{min-width:0}:host{display:block;cursor:pointer;width:var(--pfx-field-shell-width, 100%);min-width:0;max-width:100%}.pfx-field-shell-wrapper,.pfx-field-shell-host{position:relative}.praxis-interaction-overlay{position:absolute;inset:0;pointer-events:all}.praxis-readonly-overlay,.praxis-disabled-overlay{cursor:not-allowed}.pfx-field-shell-authoring-hit-target{position:absolute;inset:0;z-index:2;display:block;width:100%;min-width:0;min-height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}.pfx-field-shell-authoring-hit-target:focus-visible{outline:2px solid var(--mat-sys-primary, #90caf9);outline-offset:2px}.praxis-presentation{white-space:pre-wrap;display:block;max-width:100%;min-width:0;padding:6px 0}.praxis-presentation__label{display:block;font-size:var(--pdx-presentation-label-size, var(--pfx-pres-label-size, .78rem));line-height:1.2;letter-spacing:.02em;font-weight:500;opacity:.8;margin-bottom:2px}.praxis-presentation__value{display:block;flex:1 1 auto;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word;font-size:var(--pdx-presentation-value-size, var(--pfx-pres-value-size, 1rem));line-height:1.35;font-weight:600;opacity:.95}.praxis-presentation__value a{color:var( --pfx-pres-link-color, color-mix( in srgb, var(--mat-sys-primary, #90caf9) 78%, var(--mat-sys-on-surface, #ffffff) 22% ) );text-decoration-color:var( --pfx-pres-link-decoration-color, color-mix(in srgb, currentColor 62%, transparent) );text-decoration-thickness:.08em;text-underline-offset:.18em;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.praxis-presentation__value a:visited{color:var(--pfx-pres-link-visited-color, var(--pfx-pres-link-color, inherit))}.praxis-presentation__value a:hover{color:var(--pfx-pres-link-hover-color, var(--pfx-pres-link-color, currentColor));text-decoration-color:currentColor}.praxis-presentation__value a:focus-visible{outline:2px solid var(--pfx-pres-link-focus-ring-color, currentColor);outline-offset:2px;border-radius:2px}.praxis-presentation__content{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}.praxis-presentation__icon{flex:0 0 auto;font-size:1.125rem;width:1.125rem;height:1.125rem;line-height:1;opacity:.85}.praxis-presentation--semantic{--pfx-pres-semantic-color: var(--mat-sys-on-surface-variant, currentColor);--pfx-pres-semantic-bg: color-mix(in srgb, currentColor 7%, transparent);--pfx-pres-semantic-border: color-mix(in srgb, currentColor 16%, transparent)}.praxis-presentation[data-presentation-tone=info]{--pfx-pres-semantic-color: var(--pfx-pres-info-color, var(--mat-sys-primary, #0b5cad))}.praxis-presentation[data-presentation-tone=success]{--pfx-pres-semantic-color: var(--pfx-pres-success-color, var(--praxis-success, #0f7b4a))}.praxis-presentation[data-presentation-tone=warning]{--pfx-pres-semantic-color: var(--pfx-pres-warning-color, var(--praxis-warning, #a16207))}.praxis-presentation[data-presentation-tone=danger]{--pfx-pres-semantic-color: var(--pfx-pres-danger-color, var(--mat-sys-error, #ba1a1a))}.praxis-presentation--semantic .praxis-presentation__icon{color:var(--pfx-pres-semantic-color);opacity:1}.praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.praxis-presentation[data-presentation-presenter=status] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=badge] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=chip] .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pdx-presentation-flag-height, var(--pfx-pres-status-min-height, 24px));padding:var(--pdx-presentation-flag-padding, var(--pfx-pres-status-padding, 2px 9px));border-radius:var(--pdx-presentation-flag-radius, var(--pfx-pres-status-radius, 999px));border:1px solid var(--pfx-pres-semantic-border);color:var(--pfx-pres-semantic-color);background:var(--pfx-pres-semantic-bg);font-size:var(--pdx-presentation-flag-font-size, var(--pfx-pres-status-font-size, .8rem));font-weight:var(--pfx-pres-status-font-weight, 700);line-height:var(--pfx-pres-status-line-height, 1.1)}.praxis-presentation[data-presentation-appearance=filled] .praxis-presentation__value{color:var(--pfx-pres-status-filled-color, var(--mat-sys-on-primary, #ffffff));background:var(--pfx-pres-semantic-color);border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=outlined] .praxis-presentation__value{background:transparent;border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=plain] .praxis-presentation__value{border-color:transparent;background:transparent;padding-inline:0}.praxis-presentation__badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:20px;padding:1px 7px;border-radius:999px;border:1px solid var(--pfx-pres-semantic-border, color-mix(in srgb, currentColor 16%, transparent));color:var(--pfx-pres-semantic-color, currentColor);background:var(--pfx-pres-semantic-bg, color-mix(in srgb, currentColor 7%, transparent));font-size:.72rem;line-height:1;font-weight:700;white-space:nowrap}.presentation-mode.pres-label-left .praxis-presentation{display:flex;align-items:center;gap:8px}.presentation-mode.pres-label-left .praxis-presentation__label{margin:0;min-width:var(--pdx-presentation-label-width, var(--pfx-pres-label-width, 140px));opacity:.85;text-align:var(--pfx-pres-label-align, start)}.presentation-mode .praxis-presentation__value,.presentation-mode .praxis-presentation__content{flex:1 1 auto;min-width:0;text-align:var(--pfx-pres-value-align, start)}.presentation-mode .praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.presentation-mode .praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.presentation-mode .praxis-presentation--semantic[data-presentation-presenter=iconValue] .praxis-presentation__value{display:inline-flex;flex:0 0 auto;width:auto}.praxis-presentation[data-presentation-presenter=microVisualization] .praxis-presentation__value{display:block;width:100%;max-width:var(--pfx-pres-micro-max-width, 320px);font-size:var(--pfx-pres-micro-font-size, .78rem);line-height:1.2}.pfx-micro-viz{display:grid;gap:6px;width:100%;min-width:0}.pfx-micro-viz__fallback{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600}.pfx-micro-viz__row{display:grid;grid-template-columns:minmax(48px,.65fr) minmax(92px,1fr) auto;gap:6px;align-items:center;min-width:0}.pfx-micro-viz__label,.pfx-micro-viz__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfx-micro-viz__label{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.84}.pfx-micro-viz__value{justify-self:end;font-weight:700}.pfx-micro-viz__track{position:relative;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__bar,.pfx-micro-viz__target{position:absolute;inset-block:0;border-radius:inherit;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__segments{display:flex;height:10px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__segment{min-width:2px;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__bullet{display:grid;gap:5px}.pfx-micro-viz__bullet .pfx-micro-viz__track{height:12px}.pfx-micro-viz__target{width:2px;min-width:2px;transform:translate(-1px);background:var(--mat-sys-on-surface, currentColor);opacity:.74}.pfx-micro-viz__delta{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor));font-weight:800}.pfx-micro-viz__delta-symbol{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:.72rem;line-height:1}.pfx-micro-viz__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.82}.pfx-micro-viz [data-tone=success]{--pfx-micro-tone-color: var(--praxis-success, #0f7b4a)}.pfx-micro-viz [data-tone=warning],.pfx-micro-viz[data-tone=warning]{--pfx-micro-tone-color: var(--praxis-warning, #a16207)}.pfx-micro-viz [data-tone=danger],.pfx-micro-viz[data-tone=danger],.pfx-micro-viz [data-tone=critical],.pfx-micro-viz[data-tone=critical]{--pfx-micro-tone-color: var(--mat-sys-error, #ba1a1a)}.pfx-micro-viz [data-tone=info],.pfx-micro-viz[data-tone=info]{--pfx-micro-tone-color: var(--mat-sys-primary, #0b5cad)}@media(max-width:480px){.presentation-mode.pres-label-left .praxis-presentation{flex-direction:column;align-items:flex-start;gap:4px}.presentation-mode.pres-label-left .praxis-presentation__label{min-width:0;width:auto;text-align:start}.presentation-mode.pres-label-left .praxis-presentation__content{width:100%;flex-basis:auto}}.presentation-mode.pres-density-cozy .praxis-presentation{padding:6px 0}.presentation-mode.pres-density-compact .praxis-presentation{padding:2px 0;gap:6px}.presentation-mode.pres-compact .praxis-presentation{padding:2px 0}.presentation-mode.pres-compact .praxis-presentation__label,.presentation-mode.pres-density-compact .praxis-presentation__label{font-size:var(--pdx-presentation-label-size, var(--pfx-pres-compact-label-size, var(--pfx-pres-label-size, .72rem)));margin-bottom:var(--pfx-pres-compact-label-gap, 1px)}.presentation-mode.pres-compact .praxis-presentation__value,.presentation-mode.pres-density-compact .praxis-presentation__value{font-size:var(--pdx-presentation-value-size, var(--pfx-pres-compact-value-size, var(--pfx-pres-value-size, .92rem)));line-height:var(--pfx-pres-compact-value-line-height, 1.22)}.presentation-mode .praxis-presentation--boolean .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pdx-presentation-flag-height, var(--pfx-pres-boolean-min-height, 22px));padding:var(--pdx-presentation-flag-padding, var(--pfx-pres-boolean-padding, 0 8px));border-radius:var(--pdx-presentation-flag-radius, var(--pfx-pres-boolean-radius, 999px));border:1px solid var(--pfx-pres-boolean-border-color, color-mix(in srgb, currentColor 18%, transparent));background:var(--pfx-pres-boolean-bg, color-mix(in srgb, currentColor 8%, transparent));font-size:var(--pdx-presentation-flag-font-size, var(--pfx-pres-boolean-font-size, .78rem));font-weight:var(--pfx-pres-boolean-font-weight, 700);line-height:var(--pfx-pres-boolean-line-height, 1);text-transform:var(--pfx-pres-boolean-text-transform, none)}.presentation-mode .praxis-presentation--boolean-true .praxis-presentation__value{color:var(--pfx-pres-boolean-true-color, var(--mat-sys-primary, currentColor));background:var(--pfx-pres-boolean-true-bg, color-mix(in srgb, var(--mat-sys-primary, currentColor) 10%, transparent));border-color:var(--pfx-pres-boolean-true-border-color, color-mix(in srgb, var(--mat-sys-primary, currentColor) 24%, transparent))}.presentation-mode .praxis-presentation--boolean-false .praxis-presentation__value{color:var(--pfx-pres-boolean-false-color, var(--mat-sys-on-surface-variant, currentColor));background:var(--pfx-pres-boolean-false-bg, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 6%, transparent));border-color:var(--pfx-pres-boolean-false-border-color, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 16%, transparent))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10444
10521
  }
10445
10522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FieldShellComponent, decorators: [{
10446
10523
  type: Component,
@@ -10562,7 +10639,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
10562
10639
 
10563
10640
  </div>
10564
10641
  </div>
10565
- `, styles: [".pfx-field-shell .mat-mdc-form-field,.pfx-field-shell mat-form-field{width:var(--pfx-field-shell-field-width, 100%)}.pfx-field-shell .mat-mdc-form-field-subscript-wrapper{min-height:20px;margin-top:2px}.pfx-field-shell .mat-mdc-form-field{margin-bottom:8px}.pfx-field-shell .mat-mdc-form-field-infix{min-width:0}:host{display:block;cursor:pointer;width:var(--pfx-field-shell-width, 100%);min-width:0;max-width:100%}.pfx-field-shell-wrapper,.pfx-field-shell-host{position:relative}.praxis-interaction-overlay{position:absolute;inset:0;pointer-events:all}.praxis-readonly-overlay,.praxis-disabled-overlay{cursor:not-allowed}.pfx-field-shell-authoring-hit-target{position:absolute;inset:0;z-index:2;display:block;width:100%;min-width:0;min-height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}.pfx-field-shell-authoring-hit-target:focus-visible{outline:2px solid var(--mat-sys-primary, #90caf9);outline-offset:2px}.praxis-presentation{white-space:pre-wrap;display:block;max-width:100%;min-width:0;padding:6px 0}.praxis-presentation__label{display:block;font-size:var(--pfx-pres-label-size, .78rem);line-height:1.2;letter-spacing:.02em;font-weight:500;opacity:.8;margin-bottom:2px}.praxis-presentation__value{display:block;flex:1 1 auto;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word;font-size:var(--pfx-pres-value-size, 1rem);line-height:1.35;font-weight:600;opacity:.95}.praxis-presentation__value a{color:var( --pfx-pres-link-color, color-mix( in srgb, var(--mat-sys-primary, #90caf9) 78%, var(--mat-sys-on-surface, #ffffff) 22% ) );text-decoration-color:var( --pfx-pres-link-decoration-color, color-mix(in srgb, currentColor 62%, transparent) );text-decoration-thickness:.08em;text-underline-offset:.18em;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.praxis-presentation__value a:visited{color:var(--pfx-pres-link-visited-color, var(--pfx-pres-link-color, inherit))}.praxis-presentation__value a:hover{color:var(--pfx-pres-link-hover-color, var(--pfx-pres-link-color, currentColor));text-decoration-color:currentColor}.praxis-presentation__value a:focus-visible{outline:2px solid var(--pfx-pres-link-focus-ring-color, currentColor);outline-offset:2px;border-radius:2px}.praxis-presentation__content{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}.praxis-presentation__icon{flex:0 0 auto;font-size:1.125rem;width:1.125rem;height:1.125rem;line-height:1;opacity:.85}.praxis-presentation--semantic{--pfx-pres-semantic-color: var(--mat-sys-on-surface-variant, currentColor);--pfx-pres-semantic-bg: color-mix(in srgb, currentColor 7%, transparent);--pfx-pres-semantic-border: color-mix(in srgb, currentColor 16%, transparent)}.praxis-presentation[data-presentation-tone=info]{--pfx-pres-semantic-color: var(--pfx-pres-info-color, var(--mat-sys-primary, #0b5cad))}.praxis-presentation[data-presentation-tone=success]{--pfx-pres-semantic-color: var(--pfx-pres-success-color, var(--praxis-success, #0f7b4a))}.praxis-presentation[data-presentation-tone=warning]{--pfx-pres-semantic-color: var(--pfx-pres-warning-color, var(--praxis-warning, #a16207))}.praxis-presentation[data-presentation-tone=danger]{--pfx-pres-semantic-color: var(--pfx-pres-danger-color, var(--mat-sys-error, #ba1a1a))}.praxis-presentation--semantic .praxis-presentation__icon{color:var(--pfx-pres-semantic-color);opacity:1}.praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.praxis-presentation[data-presentation-presenter=status] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=badge] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=chip] .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pfx-pres-status-min-height, 24px);padding:var(--pfx-pres-status-padding, 2px 9px);border-radius:var(--pfx-pres-status-radius, 999px);border:1px solid var(--pfx-pres-semantic-border);color:var(--pfx-pres-semantic-color);background:var(--pfx-pres-semantic-bg);font-size:var(--pfx-pres-status-font-size, .8rem);font-weight:var(--pfx-pres-status-font-weight, 700);line-height:var(--pfx-pres-status-line-height, 1.1)}.praxis-presentation[data-presentation-appearance=filled] .praxis-presentation__value{color:var(--pfx-pres-status-filled-color, var(--mat-sys-on-primary, #ffffff));background:var(--pfx-pres-semantic-color);border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=outlined] .praxis-presentation__value{background:transparent;border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=plain] .praxis-presentation__value{border-color:transparent;background:transparent;padding-inline:0}.praxis-presentation__badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:20px;padding:1px 7px;border-radius:999px;border:1px solid var(--pfx-pres-semantic-border, color-mix(in srgb, currentColor 16%, transparent));color:var(--pfx-pres-semantic-color, currentColor);background:var(--pfx-pres-semantic-bg, color-mix(in srgb, currentColor 7%, transparent));font-size:.72rem;line-height:1;font-weight:700;white-space:nowrap}.presentation-mode.pres-label-left .praxis-presentation{display:flex;align-items:center;gap:8px}.presentation-mode.pres-label-left .praxis-presentation__label{margin:0;min-width:var(--pfx-pres-label-width, 140px);opacity:.85;text-align:var(--pfx-pres-label-align, start)}.presentation-mode .praxis-presentation__value,.presentation-mode .praxis-presentation__content{flex:1 1 auto;min-width:0;text-align:var(--pfx-pres-value-align, start)}.presentation-mode .praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.presentation-mode .praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.presentation-mode .praxis-presentation--semantic[data-presentation-presenter=iconValue] .praxis-presentation__value{display:inline-flex;flex:0 0 auto;width:auto}.praxis-presentation[data-presentation-presenter=microVisualization] .praxis-presentation__value{display:block;width:100%;max-width:var(--pfx-pres-micro-max-width, 320px);font-size:var(--pfx-pres-micro-font-size, .78rem);line-height:1.2}.pfx-micro-viz{display:grid;gap:6px;width:100%;min-width:0}.pfx-micro-viz__fallback{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600}.pfx-micro-viz__row{display:grid;grid-template-columns:minmax(48px,.65fr) minmax(92px,1fr) auto;gap:6px;align-items:center;min-width:0}.pfx-micro-viz__label,.pfx-micro-viz__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfx-micro-viz__label{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.84}.pfx-micro-viz__value{justify-self:end;font-weight:700}.pfx-micro-viz__track{position:relative;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__bar,.pfx-micro-viz__target{position:absolute;inset-block:0;border-radius:inherit;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__segments{display:flex;height:10px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__segment{min-width:2px;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__bullet{display:grid;gap:5px}.pfx-micro-viz__bullet .pfx-micro-viz__track{height:12px}.pfx-micro-viz__target{width:2px;min-width:2px;transform:translate(-1px);background:var(--mat-sys-on-surface, currentColor);opacity:.74}.pfx-micro-viz__delta{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor));font-weight:800}.pfx-micro-viz__delta-symbol{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:.72rem;line-height:1}.pfx-micro-viz__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.82}.pfx-micro-viz [data-tone=success]{--pfx-micro-tone-color: var(--praxis-success, #0f7b4a)}.pfx-micro-viz [data-tone=warning],.pfx-micro-viz[data-tone=warning]{--pfx-micro-tone-color: var(--praxis-warning, #a16207)}.pfx-micro-viz [data-tone=danger],.pfx-micro-viz[data-tone=danger],.pfx-micro-viz [data-tone=critical],.pfx-micro-viz[data-tone=critical]{--pfx-micro-tone-color: var(--mat-sys-error, #ba1a1a)}.pfx-micro-viz [data-tone=info],.pfx-micro-viz[data-tone=info]{--pfx-micro-tone-color: var(--mat-sys-primary, #0b5cad)}@media(max-width:480px){.presentation-mode.pres-label-left .praxis-presentation{flex-direction:column;align-items:flex-start;gap:4px}.presentation-mode.pres-label-left .praxis-presentation__label{min-width:0;width:auto;text-align:start}.presentation-mode.pres-label-left .praxis-presentation__content{width:100%;flex-basis:auto}}.presentation-mode.pres-density-cozy .praxis-presentation{padding:6px 0}.presentation-mode.pres-density-compact .praxis-presentation{padding:2px 0;gap:6px}.presentation-mode.pres-compact .praxis-presentation{padding:2px 0}.presentation-mode.pres-compact .praxis-presentation__label,.presentation-mode.pres-density-compact .praxis-presentation__label{font-size:var(--pfx-pres-compact-label-size, var(--pfx-pres-label-size, .72rem));margin-bottom:var(--pfx-pres-compact-label-gap, 1px)}.presentation-mode.pres-compact .praxis-presentation__value,.presentation-mode.pres-density-compact .praxis-presentation__value{font-size:var(--pfx-pres-compact-value-size, var(--pfx-pres-value-size, .92rem));line-height:var(--pfx-pres-compact-value-line-height, 1.22)}.presentation-mode .praxis-presentation--boolean .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pfx-pres-boolean-min-height, 22px);padding:var(--pfx-pres-boolean-padding, 0 8px);border-radius:var(--pfx-pres-boolean-radius, 999px);border:1px solid var(--pfx-pres-boolean-border-color, color-mix(in srgb, currentColor 18%, transparent));background:var(--pfx-pres-boolean-bg, color-mix(in srgb, currentColor 8%, transparent));font-size:var(--pfx-pres-boolean-font-size, .78rem);font-weight:var(--pfx-pres-boolean-font-weight, 700);line-height:var(--pfx-pres-boolean-line-height, 1);text-transform:var(--pfx-pres-boolean-text-transform, none)}.presentation-mode .praxis-presentation--boolean-true .praxis-presentation__value{color:var(--pfx-pres-boolean-true-color, var(--mat-sys-primary, currentColor));background:var(--pfx-pres-boolean-true-bg, color-mix(in srgb, var(--mat-sys-primary, currentColor) 10%, transparent));border-color:var(--pfx-pres-boolean-true-border-color, color-mix(in srgb, var(--mat-sys-primary, currentColor) 24%, transparent))}.presentation-mode .praxis-presentation--boolean-false .praxis-presentation__value{color:var(--pfx-pres-boolean-false-color, var(--mat-sys-on-surface-variant, currentColor));background:var(--pfx-pres-boolean-false-bg, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 6%, transparent));border-color:var(--pfx-pres-boolean-false-border-color, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 16%, transparent))}\n"] }]
10642
+ `, styles: [".pfx-field-shell .mat-mdc-form-field,.pfx-field-shell mat-form-field{width:var(--pfx-field-shell-field-width, 100%)}.pfx-field-shell .mat-mdc-form-field-subscript-wrapper{min-height:20px;margin-top:2px}.pfx-field-shell .mat-mdc-form-field{margin-bottom:8px}.pfx-field-shell .mat-mdc-form-field-infix{min-width:0}:host{display:block;cursor:pointer;width:var(--pfx-field-shell-width, 100%);min-width:0;max-width:100%}.pfx-field-shell-wrapper,.pfx-field-shell-host{position:relative}.praxis-interaction-overlay{position:absolute;inset:0;pointer-events:all}.praxis-readonly-overlay,.praxis-disabled-overlay{cursor:not-allowed}.pfx-field-shell-authoring-hit-target{position:absolute;inset:0;z-index:2;display:block;width:100%;min-width:0;min-height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}.pfx-field-shell-authoring-hit-target:focus-visible{outline:2px solid var(--mat-sys-primary, #90caf9);outline-offset:2px}.praxis-presentation{white-space:pre-wrap;display:block;max-width:100%;min-width:0;padding:6px 0}.praxis-presentation__label{display:block;font-size:var(--pdx-presentation-label-size, var(--pfx-pres-label-size, .78rem));line-height:1.2;letter-spacing:.02em;font-weight:500;opacity:.8;margin-bottom:2px}.praxis-presentation__value{display:block;flex:1 1 auto;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word;font-size:var(--pdx-presentation-value-size, var(--pfx-pres-value-size, 1rem));line-height:1.35;font-weight:600;opacity:.95}.praxis-presentation__value a{color:var( --pfx-pres-link-color, color-mix( in srgb, var(--mat-sys-primary, #90caf9) 78%, var(--mat-sys-on-surface, #ffffff) 22% ) );text-decoration-color:var( --pfx-pres-link-decoration-color, color-mix(in srgb, currentColor 62%, transparent) );text-decoration-thickness:.08em;text-underline-offset:.18em;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.praxis-presentation__value a:visited{color:var(--pfx-pres-link-visited-color, var(--pfx-pres-link-color, inherit))}.praxis-presentation__value a:hover{color:var(--pfx-pres-link-hover-color, var(--pfx-pres-link-color, currentColor));text-decoration-color:currentColor}.praxis-presentation__value a:focus-visible{outline:2px solid var(--pfx-pres-link-focus-ring-color, currentColor);outline-offset:2px;border-radius:2px}.praxis-presentation__content{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}.praxis-presentation__icon{flex:0 0 auto;font-size:1.125rem;width:1.125rem;height:1.125rem;line-height:1;opacity:.85}.praxis-presentation--semantic{--pfx-pres-semantic-color: var(--mat-sys-on-surface-variant, currentColor);--pfx-pres-semantic-bg: color-mix(in srgb, currentColor 7%, transparent);--pfx-pres-semantic-border: color-mix(in srgb, currentColor 16%, transparent)}.praxis-presentation[data-presentation-tone=info]{--pfx-pres-semantic-color: var(--pfx-pres-info-color, var(--mat-sys-primary, #0b5cad))}.praxis-presentation[data-presentation-tone=success]{--pfx-pres-semantic-color: var(--pfx-pres-success-color, var(--praxis-success, #0f7b4a))}.praxis-presentation[data-presentation-tone=warning]{--pfx-pres-semantic-color: var(--pfx-pres-warning-color, var(--praxis-warning, #a16207))}.praxis-presentation[data-presentation-tone=danger]{--pfx-pres-semantic-color: var(--pfx-pres-danger-color, var(--mat-sys-error, #ba1a1a))}.praxis-presentation--semantic .praxis-presentation__icon{color:var(--pfx-pres-semantic-color);opacity:1}.praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.praxis-presentation[data-presentation-presenter=status] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=badge] .praxis-presentation__value,.praxis-presentation[data-presentation-presenter=chip] .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pdx-presentation-flag-height, var(--pfx-pres-status-min-height, 24px));padding:var(--pdx-presentation-flag-padding, var(--pfx-pres-status-padding, 2px 9px));border-radius:var(--pdx-presentation-flag-radius, var(--pfx-pres-status-radius, 999px));border:1px solid var(--pfx-pres-semantic-border);color:var(--pfx-pres-semantic-color);background:var(--pfx-pres-semantic-bg);font-size:var(--pdx-presentation-flag-font-size, var(--pfx-pres-status-font-size, .8rem));font-weight:var(--pfx-pres-status-font-weight, 700);line-height:var(--pfx-pres-status-line-height, 1.1)}.praxis-presentation[data-presentation-appearance=filled] .praxis-presentation__value{color:var(--pfx-pres-status-filled-color, var(--mat-sys-on-primary, #ffffff));background:var(--pfx-pres-semantic-color);border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=outlined] .praxis-presentation__value{background:transparent;border-color:var(--pfx-pres-semantic-color)}.praxis-presentation[data-presentation-appearance=plain] .praxis-presentation__value{border-color:transparent;background:transparent;padding-inline:0}.praxis-presentation__badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:20px;padding:1px 7px;border-radius:999px;border:1px solid var(--pfx-pres-semantic-border, color-mix(in srgb, currentColor 16%, transparent));color:var(--pfx-pres-semantic-color, currentColor);background:var(--pfx-pres-semantic-bg, color-mix(in srgb, currentColor 7%, transparent));font-size:.72rem;line-height:1;font-weight:700;white-space:nowrap}.presentation-mode.pres-label-left .praxis-presentation{display:flex;align-items:center;gap:8px}.presentation-mode.pres-label-left .praxis-presentation__label{margin:0;min-width:var(--pdx-presentation-label-width, var(--pfx-pres-label-width, 140px));opacity:.85;text-align:var(--pfx-pres-label-align, start)}.presentation-mode .praxis-presentation__value,.presentation-mode .praxis-presentation__content{flex:1 1 auto;min-width:0;text-align:var(--pfx-pres-value-align, start)}.presentation-mode .praxis-presentation--semantic .praxis-presentation__value{flex:0 1 auto}.presentation-mode .praxis-presentation--semantic .praxis-presentation__content{justify-content:flex-start}.presentation-mode .praxis-presentation--semantic[data-presentation-presenter=iconValue] .praxis-presentation__value{display:inline-flex;flex:0 0 auto;width:auto}.praxis-presentation[data-presentation-presenter=microVisualization] .praxis-presentation__value{display:block;width:100%;max-width:var(--pfx-pres-micro-max-width, 320px);font-size:var(--pfx-pres-micro-font-size, .78rem);line-height:1.2}.pfx-micro-viz{display:grid;gap:6px;width:100%;min-width:0}.pfx-micro-viz__fallback{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600}.pfx-micro-viz__row{display:grid;grid-template-columns:minmax(48px,.65fr) minmax(92px,1fr) auto;gap:6px;align-items:center;min-width:0}.pfx-micro-viz__label,.pfx-micro-viz__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfx-micro-viz__label{color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.84}.pfx-micro-viz__value{justify-self:end;font-weight:700}.pfx-micro-viz__track{position:relative;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__bar,.pfx-micro-viz__target{position:absolute;inset-block:0;border-radius:inherit;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__segments{display:flex;height:10px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-on-surface, currentColor) 12%,transparent)}.pfx-micro-viz__segment{min-width:2px;background:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor))}.pfx-micro-viz__bullet{display:grid;gap:5px}.pfx-micro-viz__bullet .pfx-micro-viz__track{height:12px}.pfx-micro-viz__target{width:2px;min-width:2px;transform:translate(-1px);background:var(--mat-sys-on-surface, currentColor);opacity:.74}.pfx-micro-viz__delta{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--pfx-micro-tone-color, var(--mat-sys-primary, currentColor));font-weight:800}.pfx-micro-viz__delta-symbol{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:.72rem;line-height:1}.pfx-micro-viz__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;color:var(--mat-sys-on-surface-variant, currentColor);font-weight:600;opacity:.82}.pfx-micro-viz [data-tone=success]{--pfx-micro-tone-color: var(--praxis-success, #0f7b4a)}.pfx-micro-viz [data-tone=warning],.pfx-micro-viz[data-tone=warning]{--pfx-micro-tone-color: var(--praxis-warning, #a16207)}.pfx-micro-viz [data-tone=danger],.pfx-micro-viz[data-tone=danger],.pfx-micro-viz [data-tone=critical],.pfx-micro-viz[data-tone=critical]{--pfx-micro-tone-color: var(--mat-sys-error, #ba1a1a)}.pfx-micro-viz [data-tone=info],.pfx-micro-viz[data-tone=info]{--pfx-micro-tone-color: var(--mat-sys-primary, #0b5cad)}@media(max-width:480px){.presentation-mode.pres-label-left .praxis-presentation{flex-direction:column;align-items:flex-start;gap:4px}.presentation-mode.pres-label-left .praxis-presentation__label{min-width:0;width:auto;text-align:start}.presentation-mode.pres-label-left .praxis-presentation__content{width:100%;flex-basis:auto}}.presentation-mode.pres-density-cozy .praxis-presentation{padding:6px 0}.presentation-mode.pres-density-compact .praxis-presentation{padding:2px 0;gap:6px}.presentation-mode.pres-compact .praxis-presentation{padding:2px 0}.presentation-mode.pres-compact .praxis-presentation__label,.presentation-mode.pres-density-compact .praxis-presentation__label{font-size:var(--pdx-presentation-label-size, var(--pfx-pres-compact-label-size, var(--pfx-pres-label-size, .72rem)));margin-bottom:var(--pfx-pres-compact-label-gap, 1px)}.presentation-mode.pres-compact .praxis-presentation__value,.presentation-mode.pres-density-compact .praxis-presentation__value{font-size:var(--pdx-presentation-value-size, var(--pfx-pres-compact-value-size, var(--pfx-pres-value-size, .92rem)));line-height:var(--pfx-pres-compact-value-line-height, 1.22)}.presentation-mode .praxis-presentation--boolean .praxis-presentation__value{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--pdx-presentation-flag-height, var(--pfx-pres-boolean-min-height, 22px));padding:var(--pdx-presentation-flag-padding, var(--pfx-pres-boolean-padding, 0 8px));border-radius:var(--pdx-presentation-flag-radius, var(--pfx-pres-boolean-radius, 999px));border:1px solid var(--pfx-pres-boolean-border-color, color-mix(in srgb, currentColor 18%, transparent));background:var(--pfx-pres-boolean-bg, color-mix(in srgb, currentColor 8%, transparent));font-size:var(--pdx-presentation-flag-font-size, var(--pfx-pres-boolean-font-size, .78rem));font-weight:var(--pfx-pres-boolean-font-weight, 700);line-height:var(--pfx-pres-boolean-line-height, 1);text-transform:var(--pfx-pres-boolean-text-transform, none)}.presentation-mode .praxis-presentation--boolean-true .praxis-presentation__value{color:var(--pfx-pres-boolean-true-color, var(--mat-sys-primary, currentColor));background:var(--pfx-pres-boolean-true-bg, color-mix(in srgb, var(--mat-sys-primary, currentColor) 10%, transparent));border-color:var(--pfx-pres-boolean-true-border-color, color-mix(in srgb, var(--mat-sys-primary, currentColor) 24%, transparent))}.presentation-mode .praxis-presentation--boolean-false .praxis-presentation__value{color:var(--pfx-pres-boolean-false-color, var(--mat-sys-on-surface-variant, currentColor));background:var(--pfx-pres-boolean-false-bg, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 6%, transparent));border-color:var(--pfx-pres-boolean-false-border-color, color-mix(in srgb, var(--mat-sys-on-surface, currentColor) 16%, transparent))}\n"] }]
10566
10643
  }], propDecorators: { field: [{
10567
10644
  type: Input
10568
10645
  }], index: [{
@@ -12887,15 +12964,28 @@ class MaterialAsyncSelectComponent extends SimpleBaseSelectComponent {
12887
12964
  ></mat-icon>
12888
12965
  </button>
12889
12966
  }
12967
+
12968
+ @if (fieldHelpPopoverText()) {
12969
+ <mat-icon
12970
+ matSuffix
12971
+ class="pdx-field-help-icon"
12972
+ [matTooltip]="fieldHelpPopoverText()"
12973
+ matTooltipPosition="above"
12974
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
12975
+ [attr.aria-label]="fieldHelpAriaLabel()"
12976
+ tabindex="0"
12977
+ [praxisIcon]="'help_outline'"
12978
+ ></mat-icon>
12979
+ }
12890
12980
 
12891
12981
  @if (hasValidationError()) {
12892
12982
  <mat-error>{{ errorMessage() }}</mat-error>
12893
12983
  }
12894
- @if (metadata()?.hint && !hasValidationError()) {
12895
- <mat-hint>{{ metadata()!.hint }}</mat-hint>
12984
+ @if (hasInlineFieldHelp()) {
12985
+ <mat-hint>{{ fieldHelpInlineText() }}</mat-hint>
12896
12986
  }
12897
12987
  </mat-form-field>
12898
- `, isInline: true, styles: ["::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.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: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$1.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: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
12988
+ `, isInline: true, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.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: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$1.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: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
12899
12989
  }
12900
12990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MaterialAsyncSelectComponent, decorators: [{
12901
12991
  type: Component,
@@ -13009,12 +13099,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
13009
13099
  ></mat-icon>
13010
13100
  </button>
13011
13101
  }
13102
+
13103
+ @if (fieldHelpPopoverText()) {
13104
+ <mat-icon
13105
+ matSuffix
13106
+ class="pdx-field-help-icon"
13107
+ [matTooltip]="fieldHelpPopoverText()"
13108
+ matTooltipPosition="above"
13109
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
13110
+ [attr.aria-label]="fieldHelpAriaLabel()"
13111
+ tabindex="0"
13112
+ [praxisIcon]="'help_outline'"
13113
+ ></mat-icon>
13114
+ }
13012
13115
 
13013
13116
  @if (hasValidationError()) {
13014
13117
  <mat-error>{{ errorMessage() }}</mat-error>
13015
13118
  }
13016
- @if (metadata()?.hint && !hasValidationError()) {
13017
- <mat-hint>{{ metadata()!.hint }}</mat-hint>
13119
+ @if (hasInlineFieldHelp()) {
13120
+ <mat-hint>{{ fieldHelpInlineText() }}</mat-hint>
13018
13121
  }
13019
13122
  </mat-form-field>
13020
13123
  `, providers: [
@@ -13032,7 +13135,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
13032
13135
  '[attr.data-field-type]': '"async-select"',
13033
13136
  '[attr.data-field-name]': 'metadata()?.name',
13034
13137
  '[attr.data-component-id]': 'componentId()',
13035
- }, styles: ["::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option input{width:100%}\n"] }]
13138
+ }, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-async-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-async-select-panel .pdx-select-search-option input{width:100%}\n"] }]
13036
13139
  }], propDecorators: { readonlyMode: [{
13037
13140
  type: Input
13038
13141
  }], disabledMode: [{
@@ -18894,6 +18997,18 @@ class MaterialSelectComponent extends SimpleBaseSelectComponent {
18894
18997
  [praxisIcon]="metadata()!.suffixIcon"
18895
18998
  ></mat-icon>
18896
18999
  }
19000
+ @if (fieldHelpPopoverText()) {
19001
+ <mat-icon
19002
+ matSuffix
19003
+ class="pdx-field-help-icon"
19004
+ [matTooltip]="fieldHelpPopoverText()"
19005
+ matTooltipPosition="above"
19006
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
19007
+ [attr.aria-label]="fieldHelpAriaLabel()"
19008
+ tabindex="0"
19009
+ [praxisIcon]="'help_outline'"
19010
+ ></mat-icon>
19011
+ }
18897
19012
  @if (!loading() && showClear()) {
18898
19013
  <button
18899
19014
  mat-icon-button
@@ -18914,11 +19029,11 @@ class MaterialSelectComponent extends SimpleBaseSelectComponent {
18914
19029
  @if (hasValidationError()) {
18915
19030
  <mat-error>{{ errorMessage() }}</mat-error>
18916
19031
  }
18917
- @if (metadata()?.hint && !hasValidationError()) {
18918
- <mat-hint>{{ metadata()!.hint }}</mat-hint>
19032
+ @if (hasInlineFieldHelp()) {
19033
+ <mat-hint>{{ fieldHelpInlineText() }}</mat-hint>
18919
19034
  }
18920
19035
  </mat-form-field>
18921
- `, isInline: true, styles: ["::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important;border-radius:8px!important;overflow:hidden!important}::ng-deep .pdx-material-select-panel{--pdx-material-select-panel-surface: var( --pdx-overlay-surface, var(--md-sys-color-surface-container-highest, light-dark(#ffffff, #121c28)) );--pdx-material-select-panel-on-surface: var( --pdx-overlay-on-surface, var(--md-sys-color-on-surface, #111827) );--mat-select-panel-background-color: var(--pdx-material-select-panel-surface);--mat-option-label-text-color: var(--pdx-material-select-panel-on-surface);--mat-option-selected-state-label-text-color: var(--md-sys-color-primary, #2563eb);--mat-option-selected-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 12%, var(--pdx-material-select-panel-surface) );--mat-option-hover-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 8%, var(--pdx-material-select-panel-surface) );--mat-option-focus-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 10%, var(--pdx-material-select-panel-surface) );background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border:1px solid var(--md-sys-color-outline-variant, rgba(148, 163, 184, .38))!important;box-shadow:var(--md-sys-elevation-level3, 0 18px 44px rgba(15, 23, 42, .18))!important;color:var(--pdx-material-select-panel-on-surface)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel) div.mat-mdc-select-panel.pdx-material-select-panel{background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border-radius:8px!important;overflow:auto!important}::ng-deep .pdx-material-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-select-panel .pdx-select-search-option input{width:100%}::ng-deep .pdx-material-select-panel .mat-mdc-option{min-height:48px;height:auto}::ng-deep .pdx-material-select-panel .pdx-material-select-option{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.2}::ng-deep .pdx-material-select-panel .pdx-material-select-option__label,::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{color:color-mix(in srgb,var(--pdx-material-select-panel-on-surface) 68%,transparent);font-size:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: i3$1.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: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }] });
19036
+ `, isInline: true, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important;border-radius:8px!important;overflow:hidden!important}::ng-deep .pdx-material-select-panel{--pdx-material-select-panel-surface: var( --pdx-overlay-surface, var(--md-sys-color-surface-container-highest, light-dark(#ffffff, #121c28)) );--pdx-material-select-panel-on-surface: var( --pdx-overlay-on-surface, var(--md-sys-color-on-surface, #111827) );--mat-select-panel-background-color: var(--pdx-material-select-panel-surface);--mat-option-label-text-color: var(--pdx-material-select-panel-on-surface);--mat-option-selected-state-label-text-color: var(--md-sys-color-primary, #2563eb);--mat-option-selected-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 12%, var(--pdx-material-select-panel-surface) );--mat-option-hover-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 8%, var(--pdx-material-select-panel-surface) );--mat-option-focus-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 10%, var(--pdx-material-select-panel-surface) );background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border:1px solid var(--md-sys-color-outline-variant, rgba(148, 163, 184, .38))!important;box-shadow:var(--md-sys-elevation-level3, 0 18px 44px rgba(15, 23, 42, .18))!important;color:var(--pdx-material-select-panel-on-surface)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel) div.mat-mdc-select-panel.pdx-material-select-panel{background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border-radius:8px!important;overflow:auto!important}::ng-deep .pdx-material-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-select-panel .pdx-select-search-option input{width:100%}::ng-deep .pdx-material-select-panel .mat-mdc-option{min-height:48px;height:auto}::ng-deep .pdx-material-select-panel .pdx-material-select-option{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.2}::ng-deep .pdx-material-select-panel .pdx-material-select-option__label,::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{color:color-mix(in srgb,var(--pdx-material-select-panel-on-surface) 68%,transparent);font-size:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: i3$1.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: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }] });
18922
19037
  }
18923
19038
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MaterialSelectComponent, decorators: [{
18924
19039
  type: Component,
@@ -19033,6 +19148,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19033
19148
  [praxisIcon]="metadata()!.suffixIcon"
19034
19149
  ></mat-icon>
19035
19150
  }
19151
+ @if (fieldHelpPopoverText()) {
19152
+ <mat-icon
19153
+ matSuffix
19154
+ class="pdx-field-help-icon"
19155
+ [matTooltip]="fieldHelpPopoverText()"
19156
+ matTooltipPosition="above"
19157
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
19158
+ [attr.aria-label]="fieldHelpAriaLabel()"
19159
+ tabindex="0"
19160
+ [praxisIcon]="'help_outline'"
19161
+ ></mat-icon>
19162
+ }
19036
19163
  @if (!loading() && showClear()) {
19037
19164
  <button
19038
19165
  mat-icon-button
@@ -19053,8 +19180,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19053
19180
  @if (hasValidationError()) {
19054
19181
  <mat-error>{{ errorMessage() }}</mat-error>
19055
19182
  }
19056
- @if (metadata()?.hint && !hasValidationError()) {
19057
- <mat-hint>{{ metadata()!.hint }}</mat-hint>
19183
+ @if (hasInlineFieldHelp()) {
19184
+ <mat-hint>{{ fieldHelpInlineText() }}</mat-hint>
19058
19185
  }
19059
19186
  </mat-form-field>
19060
19187
  `, providers: [
@@ -19073,7 +19200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19073
19200
  '[attr.data-field-type]': '"select"',
19074
19201
  '[attr.data-field-name]': 'metadata()?.name',
19075
19202
  '[attr.data-component-id]': 'componentId()',
19076
- }, styles: ["::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important;border-radius:8px!important;overflow:hidden!important}::ng-deep .pdx-material-select-panel{--pdx-material-select-panel-surface: var( --pdx-overlay-surface, var(--md-sys-color-surface-container-highest, light-dark(#ffffff, #121c28)) );--pdx-material-select-panel-on-surface: var( --pdx-overlay-on-surface, var(--md-sys-color-on-surface, #111827) );--mat-select-panel-background-color: var(--pdx-material-select-panel-surface);--mat-option-label-text-color: var(--pdx-material-select-panel-on-surface);--mat-option-selected-state-label-text-color: var(--md-sys-color-primary, #2563eb);--mat-option-selected-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 12%, var(--pdx-material-select-panel-surface) );--mat-option-hover-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 8%, var(--pdx-material-select-panel-surface) );--mat-option-focus-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 10%, var(--pdx-material-select-panel-surface) );background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border:1px solid var(--md-sys-color-outline-variant, rgba(148, 163, 184, .38))!important;box-shadow:var(--md-sys-elevation-level3, 0 18px 44px rgba(15, 23, 42, .18))!important;color:var(--pdx-material-select-panel-on-surface)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel) div.mat-mdc-select-panel.pdx-material-select-panel{background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border-radius:8px!important;overflow:auto!important}::ng-deep .pdx-material-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-select-panel .pdx-select-search-option input{width:100%}::ng-deep .pdx-material-select-panel .mat-mdc-option{min-height:48px;height:auto}::ng-deep .pdx-material-select-panel .pdx-material-select-option{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.2}::ng-deep .pdx-material-select-panel .pdx-material-select-option__label,::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{color:color-mix(in srgb,var(--pdx-material-select-panel-on-surface) 68%,transparent);font-size:.75rem}\n"] }]
19203
+ }, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel){z-index:var(--praxis-layer-popup, 1400)!important;border-radius:8px!important;overflow:hidden!important}::ng-deep .pdx-material-select-panel{--pdx-material-select-panel-surface: var( --pdx-overlay-surface, var(--md-sys-color-surface-container-highest, light-dark(#ffffff, #121c28)) );--pdx-material-select-panel-on-surface: var( --pdx-overlay-on-surface, var(--md-sys-color-on-surface, #111827) );--mat-select-panel-background-color: var(--pdx-material-select-panel-surface);--mat-option-label-text-color: var(--pdx-material-select-panel-on-surface);--mat-option-selected-state-label-text-color: var(--md-sys-color-primary, #2563eb);--mat-option-selected-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 12%, var(--pdx-material-select-panel-surface) );--mat-option-hover-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 8%, var(--pdx-material-select-panel-surface) );--mat-option-focus-state-layer-color: color-mix( in srgb, var(--md-sys-color-primary, #2563eb) 10%, var(--pdx-material-select-panel-surface) );background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border:1px solid var(--md-sys-color-outline-variant, rgba(148, 163, 184, .38))!important;box-shadow:var(--md-sys-elevation-level3, 0 18px 44px rgba(15, 23, 42, .18))!important;color:var(--pdx-material-select-panel-on-surface)!important}::ng-deep .cdk-overlay-pane:has(.pdx-material-select-panel) div.mat-mdc-select-panel.pdx-material-select-panel{background-color:var(--pdx-material-select-panel-surface)!important;background-image:none!important;border-radius:8px!important;overflow:auto!important}::ng-deep .pdx-material-select-panel .pdx-select-search-option{box-sizing:border-box;display:block;padding:10px 16px}::ng-deep .pdx-material-select-panel .pdx-select-search-option input{width:100%}::ng-deep .pdx-material-select-panel .mat-mdc-option{min-height:48px;height:auto}::ng-deep .pdx-material-select-panel .pdx-material-select-option{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.2}::ng-deep .pdx-material-select-panel .pdx-material-select-option__label,::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .pdx-material-select-panel .pdx-material-select-option__description{color:color-mix(in srgb,var(--pdx-material-select-panel-on-surface) 68%,transparent);font-size:.75rem}\n"] }]
19077
19204
  }], propDecorators: { readonlyMode: [{
19078
19205
  type: Input
19079
19206
  }], disabledMode: [{
@@ -19239,21 +19366,36 @@ class MaterialSlideToggleComponent extends SimpleBaseInputComponent {
19239
19366
  {{ label }}
19240
19367
  </mat-slide-toggle>
19241
19368
 
19369
+ @if (fieldHelpPopoverText()) {
19370
+ <mat-icon
19371
+ class="pdx-field-help-icon"
19372
+ [matTooltip]="fieldHelpPopoverText()"
19373
+ matTooltipPosition="above"
19374
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
19375
+ [attr.aria-label]="fieldHelpAriaLabel()"
19376
+ tabindex="0"
19377
+ [praxisIcon]="'help_outline'"
19378
+ ></mat-icon>
19379
+ }
19380
+
19242
19381
  @if (hasValidationError()) {
19243
19382
  <div class="pdx-error">{{ errorMessage() }}</div>
19244
19383
  }
19245
- @if (metadata()?.hint && !hasValidationError()) {
19246
- <div class="pdx-hint">{{ metadata()!.hint }}</div>
19384
+ @if (hasInlineFieldHelp()) {
19385
+ <div class="pdx-hint">{{ fieldHelpInlineText() }}</div>
19247
19386
  }
19248
19387
  </div>
19249
- `, isInline: true, styles: [".pdx-slide-toggle-wrapper{display:flex;align-items:center;width:100%;min-height:56px;padding:4px 0;border-radius:var(--md-sys-shape-corner-large, 16px)}.pdx-slide-toggle-wrapper:focus-within{outline:2px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 4px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent)}:host{display:block;width:100%}mat-slide-toggle{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i2$3.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: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
19388
+ `, isInline: true, styles: [".pdx-slide-toggle-wrapper{display:flex;align-items:center;width:100%;min-height:56px;padding:4px 0;border-radius:var(--md-sys-shape-corner-large, 16px)}.pdx-slide-toggle-wrapper:focus-within{outline:2px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 4px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent)}:host{display:block;width:100%}mat-slide-toggle{flex:1 1 auto;min-width:0}.pdx-field-help-icon{border-radius:999px;flex:0 0 auto;margin-inline-start:4px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i2$3.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: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }] });
19250
19389
  }
19251
19390
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MaterialSlideToggleComponent, decorators: [{
19252
19391
  type: Component,
19253
19392
  args: [{ selector: 'pdx-material-slide-toggle', standalone: true, imports: [
19254
19393
  ReactiveFormsModule,
19255
19394
  MatSlideToggleModule,
19256
- MatTooltipModule
19395
+ MatTooltipModule,
19396
+ MatIconModule,
19397
+ MatButtonModule,
19398
+ PraxisIconDirective
19257
19399
  ], template: `
19258
19400
  <div
19259
19401
  class="pdx-slide-toggle-wrapper"
@@ -19282,11 +19424,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19282
19424
  {{ label }}
19283
19425
  </mat-slide-toggle>
19284
19426
 
19427
+ @if (fieldHelpPopoverText()) {
19428
+ <mat-icon
19429
+ class="pdx-field-help-icon"
19430
+ [matTooltip]="fieldHelpPopoverText()"
19431
+ matTooltipPosition="above"
19432
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
19433
+ [attr.aria-label]="fieldHelpAriaLabel()"
19434
+ tabindex="0"
19435
+ [praxisIcon]="'help_outline'"
19436
+ ></mat-icon>
19437
+ }
19438
+
19285
19439
  @if (hasValidationError()) {
19286
19440
  <div class="pdx-error">{{ errorMessage() }}</div>
19287
19441
  }
19288
- @if (metadata()?.hint && !hasValidationError()) {
19289
- <div class="pdx-hint">{{ metadata()!.hint }}</div>
19442
+ @if (hasInlineFieldHelp()) {
19443
+ <div class="pdx-hint">{{ fieldHelpInlineText() }}</div>
19290
19444
  }
19291
19445
  </div>
19292
19446
  `, providers: [
@@ -19304,7 +19458,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19304
19458
  '[attr.data-field-type]': '"toggle"',
19305
19459
  '[attr.data-field-name]': 'metadata()?.name',
19306
19460
  '[attr.data-component-id]': 'componentId()',
19307
- }, styles: [".pdx-slide-toggle-wrapper{display:flex;align-items:center;width:100%;min-height:56px;padding:4px 0;border-radius:var(--md-sys-shape-corner-large, 16px)}.pdx-slide-toggle-wrapper:focus-within{outline:2px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 4px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent)}:host{display:block;width:100%}mat-slide-toggle{width:100%}\n"] }]
19461
+ }, styles: [".pdx-slide-toggle-wrapper{display:flex;align-items:center;width:100%;min-height:56px;padding:4px 0;border-radius:var(--md-sys-shape-corner-large, 16px)}.pdx-slide-toggle-wrapper:focus-within{outline:2px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 4px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent)}:host{display:block;width:100%}mat-slide-toggle{flex:1 1 auto;min-width:0}.pdx-field-help-icon{border-radius:999px;flex:0 0 auto;margin-inline-start:4px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"] }]
19308
19462
  }], propDecorators: { readonlyMode: [{
19309
19463
  type: Input
19310
19464
  }], disabledMode: [{
@@ -19859,13 +20013,26 @@ class NumberInputComponent extends SimpleBaseInputComponent {
19859
20013
  ></mat-icon>
19860
20014
  }
19861
20015
 
20016
+ @if (fieldHelpPopoverText()) {
20017
+ <mat-icon
20018
+ matSuffix
20019
+ class="pdx-field-help-icon"
20020
+ [matTooltip]="fieldHelpPopoverText()"
20021
+ matTooltipPosition="above"
20022
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
20023
+ [attr.aria-label]="fieldHelpAriaLabel()"
20024
+ tabindex="0"
20025
+ [praxisIcon]="'help_outline'"
20026
+ ></mat-icon>
20027
+ }
20028
+
19862
20029
  @if (hasValidationError()) {
19863
20030
  <mat-error>{{ errorMessage() }}</mat-error>
19864
20031
  }
19865
20032
 
19866
- @if (metadata()?.hint && !hasValidationError()) {
20033
+ @if (hasInlineFieldHelp()) {
19867
20034
  <mat-hint [align]="metadata()?.hintAlign || 'start'">{{
19868
- metadata()!.hint
20035
+ fieldHelpInlineText()
19869
20036
  }}</mat-hint>
19870
20037
  }
19871
20038
 
@@ -19887,14 +20054,11 @@ class NumberInputComponent extends SimpleBaseInputComponent {
19887
20054
  </button>
19888
20055
  }
19889
20056
  </mat-form-field>
19890
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
20057
+ `, isInline: true, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
19891
20058
  }
19892
20059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NumberInputComponent, decorators: [{
19893
20060
  type: Component,
19894
- args: [{
19895
- selector: 'pdx-number-input',
19896
- standalone: true,
19897
- template: `
20061
+ args: [{ selector: 'pdx-number-input', standalone: true, template: `
19898
20062
  <mat-form-field
19899
20063
  [appearance]="materialAppearance()"
19900
20064
  [color]="materialColor()"
@@ -19941,13 +20105,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19941
20105
  ></mat-icon>
19942
20106
  }
19943
20107
 
20108
+ @if (fieldHelpPopoverText()) {
20109
+ <mat-icon
20110
+ matSuffix
20111
+ class="pdx-field-help-icon"
20112
+ [matTooltip]="fieldHelpPopoverText()"
20113
+ matTooltipPosition="above"
20114
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
20115
+ [attr.aria-label]="fieldHelpAriaLabel()"
20116
+ tabindex="0"
20117
+ [praxisIcon]="'help_outline'"
20118
+ ></mat-icon>
20119
+ }
20120
+
19944
20121
  @if (hasValidationError()) {
19945
20122
  <mat-error>{{ errorMessage() }}</mat-error>
19946
20123
  }
19947
20124
 
19948
- @if (metadata()?.hint && !hasValidationError()) {
20125
+ @if (hasInlineFieldHelp()) {
19949
20126
  <mat-hint [align]="metadata()?.hintAlign || 'start'">{{
19950
- metadata()!.hint
20127
+ fieldHelpInlineText()
19951
20128
  }}</mat-hint>
19952
20129
  }
19953
20130
 
@@ -19969,8 +20146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19969
20146
  </button>
19970
20147
  }
19971
20148
  </mat-form-field>
19972
- `,
19973
- imports: [
20149
+ `, imports: [
19974
20150
  MatFormFieldModule,
19975
20151
  MatInputModule,
19976
20152
  MatIconModule,
@@ -19978,15 +20154,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19978
20154
  MatButtonModule,
19979
20155
  PraxisIconDirective,
19980
20156
  ReactiveFormsModule
19981
- ],
19982
- providers: [
20157
+ ], providers: [
19983
20158
  {
19984
20159
  provide: NG_VALUE_ACCESSOR,
19985
20160
  useExisting: forwardRef(() => NumberInputComponent),
19986
20161
  multi: true,
19987
20162
  },
19988
- ],
19989
- host: {
20163
+ ], host: {
19990
20164
  '[class]': 'componentCssClasses()',
19991
20165
  '[class.praxis-disabled]': 'disabledMode',
19992
20166
  '[style.display]': 'visible ? "block" : "none"',
@@ -19995,8 +20169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
19995
20169
  '[attr.data-field-type]': '"numericTextBox"',
19996
20170
  '[attr.data-field-name]': 'metadata()?.name',
19997
20171
  '[attr.data-component-id]': 'componentId()',
19998
- },
19999
- }]
20172
+ }, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"] }]
20000
20173
  }], propDecorators: { validationChange: [{ type: i0.Output, args: ["validationChange"] }], readonlyMode: [{
20001
20174
  type: Input
20002
20175
  }], disabledMode: [{
@@ -20695,6 +20868,19 @@ class TextInputComponent extends SimpleBaseInputComponent {
20695
20868
  ></mat-icon>
20696
20869
  }
20697
20870
 
20871
+ @if (fieldHelpPopoverText()) {
20872
+ <mat-icon
20873
+ matSuffix
20874
+ class="pdx-field-help-icon"
20875
+ [matTooltip]="fieldHelpPopoverText()"
20876
+ matTooltipPosition="above"
20877
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
20878
+ [attr.aria-label]="fieldHelpAriaLabel()"
20879
+ tabindex="0"
20880
+ [praxisIcon]="'help_outline'"
20881
+ ></mat-icon>
20882
+ }
20883
+
20698
20884
  @if (showClear()) {
20699
20885
  <button
20700
20886
  mat-icon-button
@@ -20717,9 +20903,9 @@ class TextInputComponent extends SimpleBaseInputComponent {
20717
20903
  <mat-error>{{ errorMessage() }}</mat-error>
20718
20904
  }
20719
20905
 
20720
- @if (metadata()?.hint && !hasValidationError()) {
20906
+ @if (hasInlineFieldHelp()) {
20721
20907
  <mat-hint [align]="metadata()?.hintAlign || 'start'">{{
20722
- metadata()!.hint
20908
+ fieldHelpInlineText()
20723
20909
  }}</mat-hint>
20724
20910
  }
20725
20911
 
@@ -20730,14 +20916,11 @@ class TextInputComponent extends SimpleBaseInputComponent {
20730
20916
  </mat-hint>
20731
20917
  }
20732
20918
  </mat-form-field>
20733
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
20919
+ `, isInline: true, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
20734
20920
  }
20735
20921
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: TextInputComponent, decorators: [{
20736
20922
  type: Component,
20737
- args: [{
20738
- selector: 'pdx-text-input',
20739
- standalone: true,
20740
- template: `
20923
+ args: [{ selector: 'pdx-text-input', standalone: true, template: `
20741
20924
  <mat-form-field
20742
20925
  [appearance]="materialAppearance()"
20743
20926
  [color]="materialColor()"
@@ -20787,6 +20970,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
20787
20970
  ></mat-icon>
20788
20971
  }
20789
20972
 
20973
+ @if (fieldHelpPopoverText()) {
20974
+ <mat-icon
20975
+ matSuffix
20976
+ class="pdx-field-help-icon"
20977
+ [matTooltip]="fieldHelpPopoverText()"
20978
+ matTooltipPosition="above"
20979
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
20980
+ [attr.aria-label]="fieldHelpAriaLabel()"
20981
+ tabindex="0"
20982
+ [praxisIcon]="'help_outline'"
20983
+ ></mat-icon>
20984
+ }
20985
+
20790
20986
  @if (showClear()) {
20791
20987
  <button
20792
20988
  mat-icon-button
@@ -20809,9 +21005,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
20809
21005
  <mat-error>{{ errorMessage() }}</mat-error>
20810
21006
  }
20811
21007
 
20812
- @if (metadata()?.hint && !hasValidationError()) {
21008
+ @if (hasInlineFieldHelp()) {
20813
21009
  <mat-hint [align]="metadata()?.hintAlign || 'start'">{{
20814
- metadata()!.hint
21010
+ fieldHelpInlineText()
20815
21011
  }}</mat-hint>
20816
21012
  }
20817
21013
 
@@ -20822,8 +21018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
20822
21018
  </mat-hint>
20823
21019
  }
20824
21020
  </mat-form-field>
20825
- `,
20826
- imports: [
21021
+ `, imports: [
20827
21022
  MatInputModule,
20828
21023
  MatFormFieldModule,
20829
21024
  MatIconModule,
@@ -20831,15 +21026,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
20831
21026
  MatButtonModule,
20832
21027
  PraxisIconDirective,
20833
21028
  ReactiveFormsModule
20834
- ],
20835
- providers: [
21029
+ ], providers: [
20836
21030
  {
20837
21031
  provide: NG_VALUE_ACCESSOR,
20838
21032
  useExisting: forwardRef(() => TextInputComponent),
20839
21033
  multi: true,
20840
21034
  },
20841
- ],
20842
- host: {
21035
+ ], host: {
20843
21036
  '[class]': 'componentCssClasses()',
20844
21037
  '[class.praxis-disabled]': 'disabledMode',
20845
21038
  '[style.display]': 'visible ? "block" : "none"',
@@ -20848,8 +21041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
20848
21041
  '[attr.data-field-type]': '"input"',
20849
21042
  '[attr.data-field-name]': 'metadata()?.name',
20850
21043
  '[attr.data-component-id]': 'componentId()',
20851
- },
20852
- }]
21044
+ }, styles: [".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"] }]
20853
21045
  }], propDecorators: { validationChange: [{ type: i0.Output, args: ["validationChange"] }], readonlyMode: [{
20854
21046
  type: Input
20855
21047
  }], disabledMode: [{
@@ -29091,6 +29283,18 @@ class MaterialAutocompleteComponent extends SimpleBaseSelectComponent {
29091
29283
  [praxisIcon]="metadata()!.suffixIcon"
29092
29284
  ></mat-icon>
29093
29285
  }
29286
+ @if (fieldHelpPopoverText()) {
29287
+ <mat-icon
29288
+ matSuffix
29289
+ class="pdx-field-help-icon"
29290
+ [matTooltip]="fieldHelpPopoverText()"
29291
+ matTooltipPosition="above"
29292
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
29293
+ [attr.aria-label]="fieldHelpAriaLabel()"
29294
+ tabindex="0"
29295
+ [praxisIcon]="'help_outline'"
29296
+ ></mat-icon>
29297
+ }
29094
29298
  @if (showClear()) {
29095
29299
  <button
29096
29300
  mat-icon-button
@@ -29111,11 +29315,11 @@ class MaterialAutocompleteComponent extends SimpleBaseSelectComponent {
29111
29315
  @if (hasValidationError()) {
29112
29316
  <mat-error>{{ errorMessage() }}</mat-error>
29113
29317
  }
29114
- @if (metadata()?.hint && !hasValidationError()) {
29115
- <mat-hint>{{ metadata()!.hint }}</mat-hint>
29318
+ @if (hasInlineFieldHelp()) {
29319
+ <mat-hint>{{ fieldHelpInlineText() }}</mat-hint>
29116
29320
  }
29117
29321
  </mat-form-field>
29118
- `, isInline: true, styles: [":host ::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .cdk-overlay-pane:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .pdx-autocomplete-panel .pdx-autocomplete-viewport{height:256px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatAutocompleteModule }, { kind: "component", type: i4$2.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: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i8.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i8.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i8.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }] });
29322
+ `, isInline: true, styles: [":host ::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .cdk-overlay-pane:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .pdx-autocomplete-panel .pdx-autocomplete-viewport{height:256px}\n", ".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: MatAutocompleteModule }, { kind: "component", type: i4$2.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: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i8.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i8.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i8.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }] });
29119
29323
  }
29120
29324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MaterialAutocompleteComponent, decorators: [{
29121
29325
  type: Component,
@@ -29204,6 +29408,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
29204
29408
  [praxisIcon]="metadata()!.suffixIcon"
29205
29409
  ></mat-icon>
29206
29410
  }
29411
+ @if (fieldHelpPopoverText()) {
29412
+ <mat-icon
29413
+ matSuffix
29414
+ class="pdx-field-help-icon"
29415
+ [matTooltip]="fieldHelpPopoverText()"
29416
+ matTooltipPosition="above"
29417
+ [matTooltipDisabled]="fieldHelpPopoverDisabled()"
29418
+ [attr.aria-label]="fieldHelpAriaLabel()"
29419
+ tabindex="0"
29420
+ [praxisIcon]="'help_outline'"
29421
+ ></mat-icon>
29422
+ }
29207
29423
  @if (showClear()) {
29208
29424
  <button
29209
29425
  mat-icon-button
@@ -29224,8 +29440,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
29224
29440
  @if (hasValidationError()) {
29225
29441
  <mat-error>{{ errorMessage() }}</mat-error>
29226
29442
  }
29227
- @if (metadata()?.hint && !hasValidationError()) {
29228
- <mat-hint>{{ metadata()!.hint }}</mat-hint>
29443
+ @if (hasInlineFieldHelp()) {
29444
+ <mat-hint>{{ fieldHelpInlineText() }}</mat-hint>
29229
29445
  }
29230
29446
  </mat-form-field>
29231
29447
  `, providers: [
@@ -29243,7 +29459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
29243
29459
  '[attr.data-field-type]': '"autocomplete"',
29244
29460
  '[attr.data-field-name]': 'metadata()?.name',
29245
29461
  '[attr.data-component-id]': 'componentId()',
29246
- }, styles: [":host ::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .cdk-overlay-pane:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .pdx-autocomplete-panel .pdx-autocomplete-viewport{height:256px}\n"] }]
29462
+ }, styles: [":host ::ng-deep .cdk-overlay-connected-position-bounding-box:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .cdk-overlay-pane:has(.pdx-autocomplete-panel){z-index:var(--praxis-layer-popup, 1400)!important}:host ::ng-deep .pdx-autocomplete-panel .pdx-autocomplete-viewport{height:256px}\n", ".pdx-field-help-icon{border-radius:999px;color:var(--md-sys-color-on-surface-variant);cursor:help}.pdx-field-help-icon:focus{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}\n"] }]
29247
29463
  }], propDecorators: { readonlyMode: [{
29248
29464
  type: Input
29249
29465
  }], disabledMode: [{
@@ -53828,7 +54044,6 @@ class MaterialButtonToggleComponent extends SimpleBaseSelectComponent {
53828
54044
  <mat-button-toggle-group
53829
54045
  [formControl]="control()"
53830
54046
  [multiple]="multiple()"
53831
- [disabled]="toggleInteractionDisabled()"
53832
54047
  [appearance]="metadata()?.appearance || 'legacy'"
53833
54048
  [attr.aria-disabled]="toggleAriaDisabled()"
53834
54049
  [attr.aria-invalid]="ariaInvalidAttribute()"
@@ -53876,7 +54091,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
53876
54091
  <mat-button-toggle-group
53877
54092
  [formControl]="control()"
53878
54093
  [multiple]="multiple()"
53879
- [disabled]="toggleInteractionDisabled()"
53880
54094
  [appearance]="metadata()?.appearance || 'legacy'"
53881
54095
  [attr.aria-disabled]="toggleAriaDisabled()"
53882
54096
  [attr.aria-invalid]="ariaInvalidAttribute()"