@praxisui/dynamic-fields 9.0.0-beta.57 → 9.0.0-beta.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-08T22:49:24.424Z",
3
+ "generatedAt": "2026-07-08T23:07:14.325Z",
4
4
  "packageName": "@praxisui/dynamic-fields",
5
- "packageVersion": "9.0.0-beta.57",
5
+ "packageVersion": "9.0.0-beta.58",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 76,
@@ -20014,7 +20014,7 @@ class MaterialTextareaComponent extends SimpleBaseInputComponent {
20014
20014
  useExisting: forwardRef(() => MaterialTextareaComponent),
20015
20015
  multi: true,
20016
20016
  },
20017
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"materialAppearance()\"\n [color]=\"materialColor()\"\n [floatLabel]=\"floatLabelBehavior()\"\n [class.pdx-textarea-auto-resize]=\"autoResizeEnabled()\"\n [class.pdx-textarea-spellcheck]=\"metadata()?.spellcheck\"\n [class.pdx-textarea-code]=\"isCodeLikeMode()\"\n>\n <mat-label>\n <span\n [matTooltip]=\"metadata()?.description || null\"\n [matTooltipDisabled]=\"!metadata()?.description\"\n matTooltipPosition=\"above\"\n >\n {{ label }}\n </span>\n </mat-label>\n <!-- Optional prefix icon -->\n @if (metadata()?.prefixIcon) {\n <mat-icon\n matPrefix\n [matTooltip]=\"'Icon: ' + metadata()?.prefixIcon\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.prefixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.prefixIconColor)\"\n [praxisIcon]=\"metadata()?.prefixIcon\"\n ></mat-icon>\n }\n\n <textarea\n matInput\n [formControl]=\"control()\"\n [attr.placeholder]=\"shouldShowPlaceholder && placeholder ? placeholder : null\"\n [readonly]=\"isReadonlyEffective()\"\n [rows]=\"getRowsAttr()\"\n [cdkTextareaAutosize]=\"autoResizeEnabled()\"\n [cdkAutosizeMinRows]=\"getMinRowsAttr()\"\n [cdkAutosizeMaxRows]=\"getMaxRowsAttr()\"\n [maxlength]=\"metadata()?.maxLength || null\"\n [minlength]=\"metadata()?.minLength || null\"\n [attr.aria-describedby]=\"metadata()?.hint ? componentId() + '-hint' : null\"\n [attr.spellcheck]=\"effectiveSpellcheck() === null ? null : effectiveSpellcheck()\"\n [attr.wrap]=\"effectiveWrap()\"\n [attr.cols]=\"metadata()?.cols || null\"\n [style.resize]=\"metadata()?.resize || null\"\n [matTooltip]=\"tooltipEnabled() ? errorMessage() : null\"\n [matTooltipDisabled]=\"!(tooltipEnabled() && hasValidationError())\"\n [matTooltipPosition]=\"tooltipPosition()\"\n (focus)=\"onFocusLog()\"\n (blur)=\"onBlurLog()\"\n (input)=\"onInputLog($event)\"\n (paste)=\"onPaste($event)\"\n (cut)=\"onCut($event)\"\n (keydown)=\"onTextareaKeydown($event)\"\n ></textarea>\n <!-- Optional suffix icon -->\n @if (metadata()?.suffixIcon) {\n <mat-icon\n matSuffix\n [matTooltip]=\"metadata()?.suffixIconTooltip || ('Icon: ' + metadata()?.suffixIcon)\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.suffixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.suffixIconColor)\"\n [attr.aria-label]=\"metadata()?.suffixIconAriaLabel || null\"\n [praxisIcon]=\"metadata()?.suffixIcon\"\n ></mat-icon>\n }\n <!-- Optional clear button -->\n @if (showClear()) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"onClearClick()\"\n [disabled]=\"disabledMode || isReadonlyEffective() || presentationMode\"\n [matTooltip]=\"clearActionTooltip()\"\n matTooltipPosition=\"above\"\n [attr.aria-label]=\"clearActionAriaLabel()\"\n >\n <mat-icon\n [color]=\"iconPalette(metadata()?.clearButton?.iconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.clearButton?.iconColor)\"\n [praxisIcon]=\"metadata()?.clearButton?.icon || 'mi:clear'\"\n ></mat-icon>\n </button>\n }\n @if (metadata()?.hint) {\n <mat-hint [id]=\"componentId() + '-hint'\" align=\"start\">{{ metadata()?.hint }}</mat-hint>\n }\n @if (showCharacterCount()) {\n <mat-hint align=\"end\" [class.pdx-character-count-warning]=\"isNearLimit()\" [class.pdx-character-count-error]=\"isAtOrOverLimit()\">\n {{ charCount }}/{{ metadata()?.maxLength }}\n </mat-hint>\n }\n @if (showStats()) {\n <mat-hint align=\"end\">{{ getWords() }} palavras \u2022 {{ getLines() }} linhas</mat-hint>\n }\n @if (hasValidationError()) {\n <mat-error>{{ errorMessage() }}</mat-error>\n }\n</mat-form-field>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;position:relative}:host.pdx-loading{pointer-events:none;opacity:.7}:host.pdx-error .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-focused .mat-mdc-form-field{--mdc-outlined-text-field-focused-outline-color: var(--md-sys-color-primary)}:host.pdx-dirty .mat-mdc-form-field-label:after{content:\" \\2022\";color:var(--md-sys-color-primary);font-weight:700}:host.pdx-valid.pdx-dirty .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-tertiary)}:host.pdx-invalid.pdx-touched .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-textarea-auto-resize .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix textarea{resize:none!important;overflow-y:hidden;transition:height .2s ease-out}:host.pdx-textarea-with-preview .mat-mdc-form-field{margin-bottom:16px}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-webkit-input-placeholder{font-style:italic}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-moz-placeholder{font-style:italic}:host.pdx-textarea-with-stats{margin-bottom:48px}.pdx-textarea-container{position:relative;width:100%}.mat-mdc-form-field{width:100%}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:inherit;line-height:1.5}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:1}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar{width:8px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-track{background:var(--md-sys-color-surface-variant);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline-variant)}.mat-mdc-form-field .mat-mdc-form-field-suffix{display:flex;align-items:center;gap:4px}.mat-mdc-form-field.pdx-textarea-with-tabs{border-top:1px solid var(--md-sys-color-outline-variant);border-radius:0 0 4px 4px}:host.pdx-textarea-code .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;white-space:pre;word-break:normal;overflow-x:auto}.pdx-character-count-warning{color:var(--md-sys-color-secondary)}.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600}.pdx-textarea-tabs{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px 4px 0 0;margin-bottom:-1px}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-header{border-bottom:1px solid var(--md-sys-color-outline-variant)}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-body-wrapper{padding:16px;min-height:200px}.pdx-textarea-preview-content{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:16px;min-height:120px;font-family:inherit;line-height:1.6}.pdx-textarea-preview-content .markdown-content h1,.pdx-textarea-preview-content .markdown-content h2,.pdx-textarea-preview-content .markdown-content h3,.pdx-textarea-preview-content .markdown-content h4,.pdx-textarea-preview-content .markdown-content h5,.pdx-textarea-preview-content .markdown-content h6{margin:16px 0 8px;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content h1:first-child,.pdx-textarea-preview-content .markdown-content h2:first-child,.pdx-textarea-preview-content .markdown-content h3:first-child,.pdx-textarea-preview-content .markdown-content h4:first-child,.pdx-textarea-preview-content .markdown-content h5:first-child,.pdx-textarea-preview-content .markdown-content h6:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content h1{font-size:1.5rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h2{font-size:1.3rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h3{font-size:1.1rem;font-weight:500}.pdx-textarea-preview-content .markdown-content p{margin:8px 0}.pdx-textarea-preview-content .markdown-content p:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content p:last-child{margin-bottom:0}.pdx-textarea-preview-content .markdown-content strong{font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content em{font-style:italic}.pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:3px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.pdx-textarea-preview-content .markdown-content br{line-height:1.8}.pdx-templates-button,.pdx-preview-button,.pdx-auto-resize-button,.pdx-clear-button{width:32px;height:32px;line-height:32px;opacity:.7;transition:all .2s ease}.pdx-templates-button:hover,.pdx-preview-button:hover,.pdx-auto-resize-button:hover,.pdx-clear-button:hover{opacity:1;background:var(--md-sys-color-primary-container)}.pdx-templates-button .mat-icon,.pdx-preview-button .mat-icon,.pdx-auto-resize-button .mat-icon,.pdx-clear-button .mat-icon{font-size:18px;width:18px;height:18px}.pdx-templates-button.pdx-preview-active,.pdx-templates-button.pdx-auto-resize-active,.pdx-preview-button.pdx-preview-active,.pdx-preview-button.pdx-auto-resize-active,.pdx-auto-resize-button.pdx-preview-active,.pdx-auto-resize-button.pdx-auto-resize-active,.pdx-clear-button.pdx-preview-active,.pdx-clear-button.pdx-auto-resize-active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-templates-menu .pdx-template-item{padding:12px 16px;line-height:1.4}.pdx-templates-menu .pdx-template-item .mat-icon{margin-right:12px;color:var(--md-sys-color-primary)}.pdx-templates-menu .pdx-template-item .pdx-template-info{display:flex;flex-direction:column}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-name{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-description{color:var(--md-sys-color-on-surface-variant);font-size:.75rem;margin-top:2px}.pdx-templates-menu .pdx-template-item:hover{background:var(--md-sys-color-surface-variant)}.pdx-text-statistics{position:absolute;bottom:-44px;left:0;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:8px 12px}.pdx-text-statistics .pdx-stats-grid{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item{display:flex;flex-direction:column;align-items:center;min-width:60px}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-weight:600;font-size:.9rem;color:var(--md-sys-color-primary);font-variant-numeric:tabular-nums}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.7rem;color:var(--md-sys-color-on-surface-variant);text-transform:lowercase;margin-top:2px}.pdx-preview-panel{margin-top:16px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;background:var(--md-sys-color-surface)}.pdx-preview-panel .pdx-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-variant)}.pdx-preview-panel .pdx-preview-header .pdx-preview-title{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector{display:flex;gap:4px}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button{width:32px;height:32px;opacity:.6;transition:all .2s ease}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button.active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button:hover{opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button .mat-icon{font-size:16px;width:16px;height:16px}.pdx-preview-panel .pdx-preview-content{padding:16px;min-height:120px;line-height:1.6}.mat-mdc-form-field-label{cursor:pointer;transition:all .2s ease}.mat-mdc-form-field-label:hover{color:var(--md-sys-color-primary)}.mat-mdc-form-field-label .pdx-required-marker{color:var(--md-sys-color-error);margin-left:2px;font-weight:700}.pdx-label-editor{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-primary);border-radius:4px;padding:4px 8px;font-size:inherit;font-family:inherit;color:inherit;outline:none;box-shadow:var(--md-sys-elevation-level1, var(--md-sys-elevation-level1))}.pdx-label-editor:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px var(--md-sys-color-primary)}.pdx-character-count{font-size:.75rem;font-variant-numeric:tabular-nums;transition:color .2s ease}.pdx-character-count.pdx-character-count-warning{color:var(--md-sys-color-secondary);font-weight:500}.pdx-character-count.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600;animation:pulse-error 1s ease-in-out}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.7}}.pdx-error-message{display:flex;align-items:flex-start;gap:4px;font-size:.75rem;line-height:1.4;margin-top:4px}.pdx-error-message .pdx-error-icon{font-size:16px;width:16px;height:16px;margin-top:1px;color:var(--md-sys-color-error)}.pdx-error-message.pdx-additional-error{margin-top:2px;opacity:.8;font-size:.7rem}.pdx-additional-errors{margin-top:4px}.pdx-validation-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;color:var(--md-sys-color-primary);font-size:.75rem}.pdx-validation-loading .pdx-loading-spinner{font-size:16px;width:16px;height:16px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pdx-debug-info{position:absolute;top:-24px;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline);border-radius:4px;padding:2px 6px;font-size:.65rem;color:var(--md-sys-color-on-surface-variant);z-index:10}.pdx-debug-info .pdx-debug-security{display:block;font-family:monospace}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-contrast:high){:host .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: currentColor;--mdc-outlined-text-field-focused-outline-color: currentColor}:host .pdx-character-count.pdx-character-count-warning,:host .pdx-character-count.pdx-character-count-error{color:currentColor;font-weight:700}:host .pdx-text-statistics{border-color:currentColor}:host .pdx-text-statistics .pdx-stat-value{color:currentColor}}@media(prefers-reduced-motion:reduce){:host *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:host .pdx-label-editor{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-surface)}:host .pdx-debug-info{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}:host .pdx-text-statistics{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs,:host .pdx-preview-panel{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs .pdx-preview-header,:host .pdx-preview-panel .pdx-preview-header{background:var(--md-sys-color-surface-variant);border-bottom-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content .markdown-content h1,:host .pdx-textarea-preview-content .markdown-content h2,:host .pdx-textarea-preview-content .markdown-content h3,:host .pdx-textarea-preview-content .markdown-content h4,:host .pdx-textarea-preview-content .markdown-content h5,:host .pdx-textarea-preview-content .markdown-content h6{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content strong{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}}@media(max-width:599px){:host .pdx-text-statistics .pdx-stats-grid{gap:8px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:50px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.65rem}:host .pdx-textarea-tabs .mat-mdc-tab-body-wrapper{padding:8px;min-height:150px}:host .pdx-preview-panel .pdx-preview-content{padding:12px;min-height:100px}}@media(min-width:600px){:host .pdx-character-count{font-size:.8rem}:host .pdx-error-message{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:70px}}@media(min-width:1200px){:host.pdx-textarea-with-preview{display:flex;gap:16px}:host.pdx-textarea-with-preview .pdx-textarea-container{flex:1}:host.pdx-textarea-with-preview .pdx-preview-panel{flex:1;margin-top:0;height:fit-content}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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.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: "ngmodule", type: ReactiveFormsModule }, { 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: "directive", type: i4$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { 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: TextFieldModule }, { 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"] }] });
20017
+ ], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"materialAppearance()\"\n [color]=\"materialColor()\"\n [floatLabel]=\"floatLabelBehavior()\"\n [class.pdx-textarea-auto-resize]=\"autoResizeEnabled()\"\n [class.pdx-textarea-spellcheck]=\"metadata()?.spellcheck\"\n [class.pdx-textarea-code]=\"isCodeLikeMode()\"\n>\n <mat-label>\n <span\n [matTooltip]=\"metadata()?.description || null\"\n [matTooltipDisabled]=\"!metadata()?.description\"\n matTooltipPosition=\"above\"\n >\n {{ label }}\n </span>\n </mat-label>\n <!-- Optional prefix icon -->\n @if (metadata()?.prefixIcon) {\n <mat-icon\n matPrefix\n [matTooltip]=\"'Icon: ' + metadata()?.prefixIcon\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.prefixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.prefixIconColor)\"\n [praxisIcon]=\"metadata()?.prefixIcon\"\n ></mat-icon>\n }\n\n <textarea\n matInput\n [formControl]=\"control()\"\n [attr.placeholder]=\"shouldShowPlaceholder && placeholder ? placeholder : null\"\n [readonly]=\"isReadonlyEffective()\"\n [rows]=\"getRowsAttr()\"\n [cdkTextareaAutosize]=\"autoResizeEnabled()\"\n [cdkAutosizeMinRows]=\"getMinRowsAttr()\"\n [cdkAutosizeMaxRows]=\"getMaxRowsAttr()\"\n [maxlength]=\"metadata()?.maxLength || null\"\n [minlength]=\"metadata()?.minLength || null\"\n [attr.aria-describedby]=\"hasInlineFieldHelp() ? componentId() + '-hint' : null\"\n [attr.spellcheck]=\"effectiveSpellcheck() === null ? null : effectiveSpellcheck()\"\n [attr.wrap]=\"effectiveWrap()\"\n [attr.cols]=\"metadata()?.cols || null\"\n [style.resize]=\"metadata()?.resize || null\"\n [matTooltip]=\"tooltipEnabled() ? errorMessage() : null\"\n [matTooltipDisabled]=\"!(tooltipEnabled() && hasValidationError())\"\n [matTooltipPosition]=\"tooltipPosition()\"\n (focus)=\"onFocusLog()\"\n (blur)=\"onBlurLog()\"\n (input)=\"onInputLog($event)\"\n (paste)=\"onPaste($event)\"\n (cut)=\"onCut($event)\"\n (keydown)=\"onTextareaKeydown($event)\"\n ></textarea>\n <!-- Optional suffix icon -->\n @if (metadata()?.suffixIcon) {\n <mat-icon\n matSuffix\n [matTooltip]=\"metadata()?.suffixIconTooltip || ('Icon: ' + metadata()?.suffixIcon)\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.suffixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.suffixIconColor)\"\n [attr.aria-label]=\"metadata()?.suffixIconAriaLabel || null\"\n [praxisIcon]=\"metadata()?.suffixIcon\"\n ></mat-icon>\n }\n <!-- Optional clear button -->\n @if (showClear()) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"onClearClick()\"\n [disabled]=\"disabledMode || isReadonlyEffective() || presentationMode\"\n [matTooltip]=\"clearActionTooltip()\"\n matTooltipPosition=\"above\"\n [attr.aria-label]=\"clearActionAriaLabel()\"\n >\n <mat-icon\n [color]=\"iconPalette(metadata()?.clearButton?.iconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.clearButton?.iconColor)\"\n [praxisIcon]=\"metadata()?.clearButton?.icon || 'mi:clear'\"\n ></mat-icon>\n </button>\n }\n @if (fieldHelpPopoverText()) {\n <mat-icon\n matSuffix\n class=\"pdx-field-help-icon\"\n [matTooltip]=\"fieldHelpPopoverText()\"\n matTooltipPosition=\"above\"\n [matTooltipDisabled]=\"fieldHelpPopoverDisabled()\"\n [attr.aria-label]=\"fieldHelpAriaLabel()\"\n tabindex=\"0\"\n [praxisIcon]=\"'help_outline'\"\n ></mat-icon>\n }\n @if (hasInlineFieldHelp()) {\n <mat-hint [id]=\"componentId() + '-hint'\" align=\"start\">{{ fieldHelpInlineText() }}</mat-hint>\n }\n @if (showCharacterCount()) {\n <mat-hint align=\"end\" [class.pdx-character-count-warning]=\"isNearLimit()\" [class.pdx-character-count-error]=\"isAtOrOverLimit()\">\n {{ charCount }}/{{ metadata()?.maxLength }}\n </mat-hint>\n }\n @if (showStats()) {\n <mat-hint align=\"end\">{{ getWords() }} palavras \u2022 {{ getLines() }} linhas</mat-hint>\n }\n @if (hasValidationError()) {\n <mat-error>{{ errorMessage() }}</mat-error>\n }\n</mat-form-field>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;position:relative}:host.pdx-loading{pointer-events:none;opacity:.7}:host.pdx-error .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-focused .mat-mdc-form-field{--mdc-outlined-text-field-focused-outline-color: var(--md-sys-color-primary)}:host.pdx-dirty .mat-mdc-form-field-label:after{content:\" \\2022\";color:var(--md-sys-color-primary);font-weight:700}:host.pdx-valid.pdx-dirty .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-tertiary)}:host.pdx-invalid.pdx-touched .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-textarea-auto-resize .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix textarea{resize:none!important;overflow-y:hidden;transition:height .2s ease-out}:host.pdx-textarea-with-preview .mat-mdc-form-field{margin-bottom:16px}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-webkit-input-placeholder{font-style:italic}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-moz-placeholder{font-style:italic}:host.pdx-textarea-with-stats{margin-bottom:48px}.pdx-textarea-container{position:relative;width:100%}.mat-mdc-form-field{width:100%}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:inherit;line-height:1.5}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:1}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar{width:8px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-track{background:var(--md-sys-color-surface-variant);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline-variant)}.mat-mdc-form-field .mat-mdc-form-field-suffix{display:flex;align-items:center;gap:4px}.mat-mdc-form-field.pdx-textarea-with-tabs{border-top:1px solid var(--md-sys-color-outline-variant);border-radius:0 0 4px 4px}:host.pdx-textarea-code .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;white-space:pre;word-break:normal;overflow-x:auto}.pdx-character-count-warning{color:var(--md-sys-color-secondary)}.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600}.pdx-textarea-tabs{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px 4px 0 0;margin-bottom:-1px}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-header{border-bottom:1px solid var(--md-sys-color-outline-variant)}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-body-wrapper{padding:16px;min-height:200px}.pdx-textarea-preview-content{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:16px;min-height:120px;font-family:inherit;line-height:1.6}.pdx-textarea-preview-content .markdown-content h1,.pdx-textarea-preview-content .markdown-content h2,.pdx-textarea-preview-content .markdown-content h3,.pdx-textarea-preview-content .markdown-content h4,.pdx-textarea-preview-content .markdown-content h5,.pdx-textarea-preview-content .markdown-content h6{margin:16px 0 8px;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content h1:first-child,.pdx-textarea-preview-content .markdown-content h2:first-child,.pdx-textarea-preview-content .markdown-content h3:first-child,.pdx-textarea-preview-content .markdown-content h4:first-child,.pdx-textarea-preview-content .markdown-content h5:first-child,.pdx-textarea-preview-content .markdown-content h6:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content h1{font-size:1.5rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h2{font-size:1.3rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h3{font-size:1.1rem;font-weight:500}.pdx-textarea-preview-content .markdown-content p{margin:8px 0}.pdx-textarea-preview-content .markdown-content p:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content p:last-child{margin-bottom:0}.pdx-textarea-preview-content .markdown-content strong{font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content em{font-style:italic}.pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:3px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.pdx-textarea-preview-content .markdown-content br{line-height:1.8}.pdx-templates-button,.pdx-preview-button,.pdx-auto-resize-button,.pdx-clear-button{width:32px;height:32px;line-height:32px;opacity:.7;transition:all .2s ease}.pdx-templates-button:hover,.pdx-preview-button:hover,.pdx-auto-resize-button:hover,.pdx-clear-button:hover{opacity:1;background:var(--md-sys-color-primary-container)}.pdx-templates-button .mat-icon,.pdx-preview-button .mat-icon,.pdx-auto-resize-button .mat-icon,.pdx-clear-button .mat-icon{font-size:18px;width:18px;height:18px}.pdx-templates-button.pdx-preview-active,.pdx-templates-button.pdx-auto-resize-active,.pdx-preview-button.pdx-preview-active,.pdx-preview-button.pdx-auto-resize-active,.pdx-auto-resize-button.pdx-preview-active,.pdx-auto-resize-button.pdx-auto-resize-active,.pdx-clear-button.pdx-preview-active,.pdx-clear-button.pdx-auto-resize-active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-templates-menu .pdx-template-item{padding:12px 16px;line-height:1.4}.pdx-templates-menu .pdx-template-item .mat-icon{margin-right:12px;color:var(--md-sys-color-primary)}.pdx-templates-menu .pdx-template-item .pdx-template-info{display:flex;flex-direction:column}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-name{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-description{color:var(--md-sys-color-on-surface-variant);font-size:.75rem;margin-top:2px}.pdx-templates-menu .pdx-template-item:hover{background:var(--md-sys-color-surface-variant)}.pdx-text-statistics{position:absolute;bottom:-44px;left:0;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:8px 12px}.pdx-text-statistics .pdx-stats-grid{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item{display:flex;flex-direction:column;align-items:center;min-width:60px}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-weight:600;font-size:.9rem;color:var(--md-sys-color-primary);font-variant-numeric:tabular-nums}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.7rem;color:var(--md-sys-color-on-surface-variant);text-transform:lowercase;margin-top:2px}.pdx-preview-panel{margin-top:16px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;background:var(--md-sys-color-surface)}.pdx-preview-panel .pdx-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-variant)}.pdx-preview-panel .pdx-preview-header .pdx-preview-title{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector{display:flex;gap:4px}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button{width:32px;height:32px;opacity:.6;transition:all .2s ease}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button.active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button:hover{opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button .mat-icon{font-size:16px;width:16px;height:16px}.pdx-preview-panel .pdx-preview-content{padding:16px;min-height:120px;line-height:1.6}.mat-mdc-form-field-label{cursor:pointer;transition:all .2s ease}.mat-mdc-form-field-label:hover{color:var(--md-sys-color-primary)}.mat-mdc-form-field-label .pdx-required-marker{color:var(--md-sys-color-error);margin-left:2px;font-weight:700}.pdx-label-editor{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-primary);border-radius:4px;padding:4px 8px;font-size:inherit;font-family:inherit;color:inherit;outline:none;box-shadow:var(--md-sys-elevation-level1, var(--md-sys-elevation-level1))}.pdx-label-editor:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px var(--md-sys-color-primary)}.pdx-character-count{font-size:.75rem;font-variant-numeric:tabular-nums;transition:color .2s ease}.pdx-character-count.pdx-character-count-warning{color:var(--md-sys-color-secondary);font-weight:500}.pdx-character-count.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600;animation:pulse-error 1s ease-in-out}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.7}}.pdx-error-message{display:flex;align-items:flex-start;gap:4px;font-size:.75rem;line-height:1.4;margin-top:4px}.pdx-error-message .pdx-error-icon{font-size:16px;width:16px;height:16px;margin-top:1px;color:var(--md-sys-color-error)}.pdx-error-message.pdx-additional-error{margin-top:2px;opacity:.8;font-size:.7rem}.pdx-additional-errors{margin-top:4px}.pdx-validation-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;color:var(--md-sys-color-primary);font-size:.75rem}.pdx-validation-loading .pdx-loading-spinner{font-size:16px;width:16px;height:16px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pdx-debug-info{position:absolute;top:-24px;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline);border-radius:4px;padding:2px 6px;font-size:.65rem;color:var(--md-sys-color-on-surface-variant);z-index:10}.pdx-debug-info .pdx-debug-security{display:block;font-family:monospace}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-contrast:high){:host .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: currentColor;--mdc-outlined-text-field-focused-outline-color: currentColor}:host .pdx-character-count.pdx-character-count-warning,:host .pdx-character-count.pdx-character-count-error{color:currentColor;font-weight:700}:host .pdx-text-statistics{border-color:currentColor}:host .pdx-text-statistics .pdx-stat-value{color:currentColor}}@media(prefers-reduced-motion:reduce){:host *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:host .pdx-label-editor{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-surface)}:host .pdx-debug-info{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}:host .pdx-text-statistics{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs,:host .pdx-preview-panel{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs .pdx-preview-header,:host .pdx-preview-panel .pdx-preview-header{background:var(--md-sys-color-surface-variant);border-bottom-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content .markdown-content h1,:host .pdx-textarea-preview-content .markdown-content h2,:host .pdx-textarea-preview-content .markdown-content h3,:host .pdx-textarea-preview-content .markdown-content h4,:host .pdx-textarea-preview-content .markdown-content h5,:host .pdx-textarea-preview-content .markdown-content h6{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content strong{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}}@media(max-width:599px){:host .pdx-text-statistics .pdx-stats-grid{gap:8px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:50px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.65rem}:host .pdx-textarea-tabs .mat-mdc-tab-body-wrapper{padding:8px;min-height:150px}:host .pdx-preview-panel .pdx-preview-content{padding:12px;min-height:100px}}@media(min-width:600px){:host .pdx-character-count{font-size:.8rem}:host .pdx-error-message{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:70px}}@media(min-width:1200px){:host.pdx-textarea-with-preview{display:flex;gap:16px}:host.pdx-textarea-with-preview .pdx-textarea-container{flex:1}:host.pdx-textarea-with-preview .pdx-preview-panel{flex:1;margin-top:0;height:fit-content}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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.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: "ngmodule", type: ReactiveFormsModule }, { 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: "directive", type: i4$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { 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: TextFieldModule }, { 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"] }] });
20018
20018
  }
20019
20019
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MaterialTextareaComponent, decorators: [{
20020
20020
  type: Component,
@@ -20043,7 +20043,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
20043
20043
  '[attr.data-field-type]': '"textarea"',
20044
20044
  '[attr.data-field-name]': 'metadata()?.name',
20045
20045
  '[attr.data-component-id]': 'componentId()',
20046
- }, template: "<mat-form-field\n [appearance]=\"materialAppearance()\"\n [color]=\"materialColor()\"\n [floatLabel]=\"floatLabelBehavior()\"\n [class.pdx-textarea-auto-resize]=\"autoResizeEnabled()\"\n [class.pdx-textarea-spellcheck]=\"metadata()?.spellcheck\"\n [class.pdx-textarea-code]=\"isCodeLikeMode()\"\n>\n <mat-label>\n <span\n [matTooltip]=\"metadata()?.description || null\"\n [matTooltipDisabled]=\"!metadata()?.description\"\n matTooltipPosition=\"above\"\n >\n {{ label }}\n </span>\n </mat-label>\n <!-- Optional prefix icon -->\n @if (metadata()?.prefixIcon) {\n <mat-icon\n matPrefix\n [matTooltip]=\"'Icon: ' + metadata()?.prefixIcon\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.prefixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.prefixIconColor)\"\n [praxisIcon]=\"metadata()?.prefixIcon\"\n ></mat-icon>\n }\n\n <textarea\n matInput\n [formControl]=\"control()\"\n [attr.placeholder]=\"shouldShowPlaceholder && placeholder ? placeholder : null\"\n [readonly]=\"isReadonlyEffective()\"\n [rows]=\"getRowsAttr()\"\n [cdkTextareaAutosize]=\"autoResizeEnabled()\"\n [cdkAutosizeMinRows]=\"getMinRowsAttr()\"\n [cdkAutosizeMaxRows]=\"getMaxRowsAttr()\"\n [maxlength]=\"metadata()?.maxLength || null\"\n [minlength]=\"metadata()?.minLength || null\"\n [attr.aria-describedby]=\"metadata()?.hint ? componentId() + '-hint' : null\"\n [attr.spellcheck]=\"effectiveSpellcheck() === null ? null : effectiveSpellcheck()\"\n [attr.wrap]=\"effectiveWrap()\"\n [attr.cols]=\"metadata()?.cols || null\"\n [style.resize]=\"metadata()?.resize || null\"\n [matTooltip]=\"tooltipEnabled() ? errorMessage() : null\"\n [matTooltipDisabled]=\"!(tooltipEnabled() && hasValidationError())\"\n [matTooltipPosition]=\"tooltipPosition()\"\n (focus)=\"onFocusLog()\"\n (blur)=\"onBlurLog()\"\n (input)=\"onInputLog($event)\"\n (paste)=\"onPaste($event)\"\n (cut)=\"onCut($event)\"\n (keydown)=\"onTextareaKeydown($event)\"\n ></textarea>\n <!-- Optional suffix icon -->\n @if (metadata()?.suffixIcon) {\n <mat-icon\n matSuffix\n [matTooltip]=\"metadata()?.suffixIconTooltip || ('Icon: ' + metadata()?.suffixIcon)\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.suffixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.suffixIconColor)\"\n [attr.aria-label]=\"metadata()?.suffixIconAriaLabel || null\"\n [praxisIcon]=\"metadata()?.suffixIcon\"\n ></mat-icon>\n }\n <!-- Optional clear button -->\n @if (showClear()) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"onClearClick()\"\n [disabled]=\"disabledMode || isReadonlyEffective() || presentationMode\"\n [matTooltip]=\"clearActionTooltip()\"\n matTooltipPosition=\"above\"\n [attr.aria-label]=\"clearActionAriaLabel()\"\n >\n <mat-icon\n [color]=\"iconPalette(metadata()?.clearButton?.iconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.clearButton?.iconColor)\"\n [praxisIcon]=\"metadata()?.clearButton?.icon || 'mi:clear'\"\n ></mat-icon>\n </button>\n }\n @if (metadata()?.hint) {\n <mat-hint [id]=\"componentId() + '-hint'\" align=\"start\">{{ metadata()?.hint }}</mat-hint>\n }\n @if (showCharacterCount()) {\n <mat-hint align=\"end\" [class.pdx-character-count-warning]=\"isNearLimit()\" [class.pdx-character-count-error]=\"isAtOrOverLimit()\">\n {{ charCount }}/{{ metadata()?.maxLength }}\n </mat-hint>\n }\n @if (showStats()) {\n <mat-hint align=\"end\">{{ getWords() }} palavras \u2022 {{ getLines() }} linhas</mat-hint>\n }\n @if (hasValidationError()) {\n <mat-error>{{ errorMessage() }}</mat-error>\n }\n</mat-form-field>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;position:relative}:host.pdx-loading{pointer-events:none;opacity:.7}:host.pdx-error .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-focused .mat-mdc-form-field{--mdc-outlined-text-field-focused-outline-color: var(--md-sys-color-primary)}:host.pdx-dirty .mat-mdc-form-field-label:after{content:\" \\2022\";color:var(--md-sys-color-primary);font-weight:700}:host.pdx-valid.pdx-dirty .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-tertiary)}:host.pdx-invalid.pdx-touched .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-textarea-auto-resize .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix textarea{resize:none!important;overflow-y:hidden;transition:height .2s ease-out}:host.pdx-textarea-with-preview .mat-mdc-form-field{margin-bottom:16px}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-webkit-input-placeholder{font-style:italic}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-moz-placeholder{font-style:italic}:host.pdx-textarea-with-stats{margin-bottom:48px}.pdx-textarea-container{position:relative;width:100%}.mat-mdc-form-field{width:100%}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:inherit;line-height:1.5}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:1}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar{width:8px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-track{background:var(--md-sys-color-surface-variant);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline-variant)}.mat-mdc-form-field .mat-mdc-form-field-suffix{display:flex;align-items:center;gap:4px}.mat-mdc-form-field.pdx-textarea-with-tabs{border-top:1px solid var(--md-sys-color-outline-variant);border-radius:0 0 4px 4px}:host.pdx-textarea-code .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;white-space:pre;word-break:normal;overflow-x:auto}.pdx-character-count-warning{color:var(--md-sys-color-secondary)}.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600}.pdx-textarea-tabs{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px 4px 0 0;margin-bottom:-1px}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-header{border-bottom:1px solid var(--md-sys-color-outline-variant)}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-body-wrapper{padding:16px;min-height:200px}.pdx-textarea-preview-content{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:16px;min-height:120px;font-family:inherit;line-height:1.6}.pdx-textarea-preview-content .markdown-content h1,.pdx-textarea-preview-content .markdown-content h2,.pdx-textarea-preview-content .markdown-content h3,.pdx-textarea-preview-content .markdown-content h4,.pdx-textarea-preview-content .markdown-content h5,.pdx-textarea-preview-content .markdown-content h6{margin:16px 0 8px;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content h1:first-child,.pdx-textarea-preview-content .markdown-content h2:first-child,.pdx-textarea-preview-content .markdown-content h3:first-child,.pdx-textarea-preview-content .markdown-content h4:first-child,.pdx-textarea-preview-content .markdown-content h5:first-child,.pdx-textarea-preview-content .markdown-content h6:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content h1{font-size:1.5rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h2{font-size:1.3rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h3{font-size:1.1rem;font-weight:500}.pdx-textarea-preview-content .markdown-content p{margin:8px 0}.pdx-textarea-preview-content .markdown-content p:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content p:last-child{margin-bottom:0}.pdx-textarea-preview-content .markdown-content strong{font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content em{font-style:italic}.pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:3px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.pdx-textarea-preview-content .markdown-content br{line-height:1.8}.pdx-templates-button,.pdx-preview-button,.pdx-auto-resize-button,.pdx-clear-button{width:32px;height:32px;line-height:32px;opacity:.7;transition:all .2s ease}.pdx-templates-button:hover,.pdx-preview-button:hover,.pdx-auto-resize-button:hover,.pdx-clear-button:hover{opacity:1;background:var(--md-sys-color-primary-container)}.pdx-templates-button .mat-icon,.pdx-preview-button .mat-icon,.pdx-auto-resize-button .mat-icon,.pdx-clear-button .mat-icon{font-size:18px;width:18px;height:18px}.pdx-templates-button.pdx-preview-active,.pdx-templates-button.pdx-auto-resize-active,.pdx-preview-button.pdx-preview-active,.pdx-preview-button.pdx-auto-resize-active,.pdx-auto-resize-button.pdx-preview-active,.pdx-auto-resize-button.pdx-auto-resize-active,.pdx-clear-button.pdx-preview-active,.pdx-clear-button.pdx-auto-resize-active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-templates-menu .pdx-template-item{padding:12px 16px;line-height:1.4}.pdx-templates-menu .pdx-template-item .mat-icon{margin-right:12px;color:var(--md-sys-color-primary)}.pdx-templates-menu .pdx-template-item .pdx-template-info{display:flex;flex-direction:column}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-name{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-description{color:var(--md-sys-color-on-surface-variant);font-size:.75rem;margin-top:2px}.pdx-templates-menu .pdx-template-item:hover{background:var(--md-sys-color-surface-variant)}.pdx-text-statistics{position:absolute;bottom:-44px;left:0;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:8px 12px}.pdx-text-statistics .pdx-stats-grid{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item{display:flex;flex-direction:column;align-items:center;min-width:60px}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-weight:600;font-size:.9rem;color:var(--md-sys-color-primary);font-variant-numeric:tabular-nums}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.7rem;color:var(--md-sys-color-on-surface-variant);text-transform:lowercase;margin-top:2px}.pdx-preview-panel{margin-top:16px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;background:var(--md-sys-color-surface)}.pdx-preview-panel .pdx-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-variant)}.pdx-preview-panel .pdx-preview-header .pdx-preview-title{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector{display:flex;gap:4px}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button{width:32px;height:32px;opacity:.6;transition:all .2s ease}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button.active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button:hover{opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button .mat-icon{font-size:16px;width:16px;height:16px}.pdx-preview-panel .pdx-preview-content{padding:16px;min-height:120px;line-height:1.6}.mat-mdc-form-field-label{cursor:pointer;transition:all .2s ease}.mat-mdc-form-field-label:hover{color:var(--md-sys-color-primary)}.mat-mdc-form-field-label .pdx-required-marker{color:var(--md-sys-color-error);margin-left:2px;font-weight:700}.pdx-label-editor{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-primary);border-radius:4px;padding:4px 8px;font-size:inherit;font-family:inherit;color:inherit;outline:none;box-shadow:var(--md-sys-elevation-level1, var(--md-sys-elevation-level1))}.pdx-label-editor:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px var(--md-sys-color-primary)}.pdx-character-count{font-size:.75rem;font-variant-numeric:tabular-nums;transition:color .2s ease}.pdx-character-count.pdx-character-count-warning{color:var(--md-sys-color-secondary);font-weight:500}.pdx-character-count.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600;animation:pulse-error 1s ease-in-out}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.7}}.pdx-error-message{display:flex;align-items:flex-start;gap:4px;font-size:.75rem;line-height:1.4;margin-top:4px}.pdx-error-message .pdx-error-icon{font-size:16px;width:16px;height:16px;margin-top:1px;color:var(--md-sys-color-error)}.pdx-error-message.pdx-additional-error{margin-top:2px;opacity:.8;font-size:.7rem}.pdx-additional-errors{margin-top:4px}.pdx-validation-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;color:var(--md-sys-color-primary);font-size:.75rem}.pdx-validation-loading .pdx-loading-spinner{font-size:16px;width:16px;height:16px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pdx-debug-info{position:absolute;top:-24px;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline);border-radius:4px;padding:2px 6px;font-size:.65rem;color:var(--md-sys-color-on-surface-variant);z-index:10}.pdx-debug-info .pdx-debug-security{display:block;font-family:monospace}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-contrast:high){:host .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: currentColor;--mdc-outlined-text-field-focused-outline-color: currentColor}:host .pdx-character-count.pdx-character-count-warning,:host .pdx-character-count.pdx-character-count-error{color:currentColor;font-weight:700}:host .pdx-text-statistics{border-color:currentColor}:host .pdx-text-statistics .pdx-stat-value{color:currentColor}}@media(prefers-reduced-motion:reduce){:host *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:host .pdx-label-editor{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-surface)}:host .pdx-debug-info{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}:host .pdx-text-statistics{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs,:host .pdx-preview-panel{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs .pdx-preview-header,:host .pdx-preview-panel .pdx-preview-header{background:var(--md-sys-color-surface-variant);border-bottom-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content .markdown-content h1,:host .pdx-textarea-preview-content .markdown-content h2,:host .pdx-textarea-preview-content .markdown-content h3,:host .pdx-textarea-preview-content .markdown-content h4,:host .pdx-textarea-preview-content .markdown-content h5,:host .pdx-textarea-preview-content .markdown-content h6{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content strong{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}}@media(max-width:599px){:host .pdx-text-statistics .pdx-stats-grid{gap:8px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:50px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.65rem}:host .pdx-textarea-tabs .mat-mdc-tab-body-wrapper{padding:8px;min-height:150px}:host .pdx-preview-panel .pdx-preview-content{padding:12px;min-height:100px}}@media(min-width:600px){:host .pdx-character-count{font-size:.8rem}:host .pdx-error-message{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:70px}}@media(min-width:1200px){:host.pdx-textarea-with-preview{display:flex;gap:16px}:host.pdx-textarea-with-preview .pdx-textarea-container{flex:1}:host.pdx-textarea-with-preview .pdx-preview-panel{flex:1;margin-top:0;height:fit-content}}\n"] }]
20046
+ }, template: "<mat-form-field\n [appearance]=\"materialAppearance()\"\n [color]=\"materialColor()\"\n [floatLabel]=\"floatLabelBehavior()\"\n [class.pdx-textarea-auto-resize]=\"autoResizeEnabled()\"\n [class.pdx-textarea-spellcheck]=\"metadata()?.spellcheck\"\n [class.pdx-textarea-code]=\"isCodeLikeMode()\"\n>\n <mat-label>\n <span\n [matTooltip]=\"metadata()?.description || null\"\n [matTooltipDisabled]=\"!metadata()?.description\"\n matTooltipPosition=\"above\"\n >\n {{ label }}\n </span>\n </mat-label>\n <!-- Optional prefix icon -->\n @if (metadata()?.prefixIcon) {\n <mat-icon\n matPrefix\n [matTooltip]=\"'Icon: ' + metadata()?.prefixIcon\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.prefixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.prefixIconColor)\"\n [praxisIcon]=\"metadata()?.prefixIcon\"\n ></mat-icon>\n }\n\n <textarea\n matInput\n [formControl]=\"control()\"\n [attr.placeholder]=\"shouldShowPlaceholder && placeholder ? placeholder : null\"\n [readonly]=\"isReadonlyEffective()\"\n [rows]=\"getRowsAttr()\"\n [cdkTextareaAutosize]=\"autoResizeEnabled()\"\n [cdkAutosizeMinRows]=\"getMinRowsAttr()\"\n [cdkAutosizeMaxRows]=\"getMaxRowsAttr()\"\n [maxlength]=\"metadata()?.maxLength || null\"\n [minlength]=\"metadata()?.minLength || null\"\n [attr.aria-describedby]=\"hasInlineFieldHelp() ? componentId() + '-hint' : null\"\n [attr.spellcheck]=\"effectiveSpellcheck() === null ? null : effectiveSpellcheck()\"\n [attr.wrap]=\"effectiveWrap()\"\n [attr.cols]=\"metadata()?.cols || null\"\n [style.resize]=\"metadata()?.resize || null\"\n [matTooltip]=\"tooltipEnabled() ? errorMessage() : null\"\n [matTooltipDisabled]=\"!(tooltipEnabled() && hasValidationError())\"\n [matTooltipPosition]=\"tooltipPosition()\"\n (focus)=\"onFocusLog()\"\n (blur)=\"onBlurLog()\"\n (input)=\"onInputLog($event)\"\n (paste)=\"onPaste($event)\"\n (cut)=\"onCut($event)\"\n (keydown)=\"onTextareaKeydown($event)\"\n ></textarea>\n <!-- Optional suffix icon -->\n @if (metadata()?.suffixIcon) {\n <mat-icon\n matSuffix\n [matTooltip]=\"metadata()?.suffixIconTooltip || ('Icon: ' + metadata()?.suffixIcon)\"\n matTooltipPosition=\"above\"\n [color]=\"iconPalette(metadata()?.suffixIconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.suffixIconColor)\"\n [attr.aria-label]=\"metadata()?.suffixIconAriaLabel || null\"\n [praxisIcon]=\"metadata()?.suffixIcon\"\n ></mat-icon>\n }\n <!-- Optional clear button -->\n @if (showClear()) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"onClearClick()\"\n [disabled]=\"disabledMode || isReadonlyEffective() || presentationMode\"\n [matTooltip]=\"clearActionTooltip()\"\n matTooltipPosition=\"above\"\n [attr.aria-label]=\"clearActionAriaLabel()\"\n >\n <mat-icon\n [color]=\"iconPalette(metadata()?.clearButton?.iconColor)\"\n [style.color]=\"iconCustomColor(metadata()?.clearButton?.iconColor)\"\n [praxisIcon]=\"metadata()?.clearButton?.icon || 'mi:clear'\"\n ></mat-icon>\n </button>\n }\n @if (fieldHelpPopoverText()) {\n <mat-icon\n matSuffix\n class=\"pdx-field-help-icon\"\n [matTooltip]=\"fieldHelpPopoverText()\"\n matTooltipPosition=\"above\"\n [matTooltipDisabled]=\"fieldHelpPopoverDisabled()\"\n [attr.aria-label]=\"fieldHelpAriaLabel()\"\n tabindex=\"0\"\n [praxisIcon]=\"'help_outline'\"\n ></mat-icon>\n }\n @if (hasInlineFieldHelp()) {\n <mat-hint [id]=\"componentId() + '-hint'\" align=\"start\">{{ fieldHelpInlineText() }}</mat-hint>\n }\n @if (showCharacterCount()) {\n <mat-hint align=\"end\" [class.pdx-character-count-warning]=\"isNearLimit()\" [class.pdx-character-count-error]=\"isAtOrOverLimit()\">\n {{ charCount }}/{{ metadata()?.maxLength }}\n </mat-hint>\n }\n @if (showStats()) {\n <mat-hint align=\"end\">{{ getWords() }} palavras \u2022 {{ getLines() }} linhas</mat-hint>\n }\n @if (hasValidationError()) {\n <mat-error>{{ errorMessage() }}</mat-error>\n }\n</mat-form-field>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;position:relative}:host.pdx-loading{pointer-events:none;opacity:.7}:host.pdx-error .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-focused .mat-mdc-form-field{--mdc-outlined-text-field-focused-outline-color: var(--md-sys-color-primary)}:host.pdx-dirty .mat-mdc-form-field-label:after{content:\" \\2022\";color:var(--md-sys-color-primary);font-weight:700}:host.pdx-valid.pdx-dirty .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-tertiary)}:host.pdx-invalid.pdx-touched .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: var(--md-sys-color-error)}:host.pdx-textarea-auto-resize .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix textarea{resize:none!important;overflow-y:hidden;transition:height .2s ease-out}:host.pdx-textarea-with-preview .mat-mdc-form-field{margin-bottom:16px}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-webkit-input-placeholder{font-style:italic}:host.pdx-textarea-spellcheck .mat-mdc-text-field-wrapper textarea::-moz-placeholder{font-style:italic}:host.pdx-textarea-with-stats{margin-bottom:48px}.pdx-textarea-container{position:relative;width:100%}.mat-mdc-form-field{width:100%}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:inherit;line-height:1.5}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:1}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar{width:8px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-track{background:var(--md-sys-color-surface-variant);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline);border-radius:4px}.mat-mdc-form-field .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline-variant)}.mat-mdc-form-field .mat-mdc-form-field-suffix{display:flex;align-items:center;gap:4px}.mat-mdc-form-field.pdx-textarea-with-tabs{border-top:1px solid var(--md-sys-color-outline-variant);border-radius:0 0 4px 4px}:host.pdx-textarea-code .mat-mdc-text-field-wrapper textarea.mat-mdc-input-element{font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;white-space:pre;word-break:normal;overflow-x:auto}.pdx-character-count-warning{color:var(--md-sys-color-secondary)}.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600}.pdx-textarea-tabs{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px 4px 0 0;margin-bottom:-1px}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-header{border-bottom:1px solid var(--md-sys-color-outline-variant)}.pdx-textarea-tabs .mat-mdc-tab-group .mat-mdc-tab-body-wrapper{padding:16px;min-height:200px}.pdx-textarea-preview-content{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:16px;min-height:120px;font-family:inherit;line-height:1.6}.pdx-textarea-preview-content .markdown-content h1,.pdx-textarea-preview-content .markdown-content h2,.pdx-textarea-preview-content .markdown-content h3,.pdx-textarea-preview-content .markdown-content h4,.pdx-textarea-preview-content .markdown-content h5,.pdx-textarea-preview-content .markdown-content h6{margin:16px 0 8px;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content h1:first-child,.pdx-textarea-preview-content .markdown-content h2:first-child,.pdx-textarea-preview-content .markdown-content h3:first-child,.pdx-textarea-preview-content .markdown-content h4:first-child,.pdx-textarea-preview-content .markdown-content h5:first-child,.pdx-textarea-preview-content .markdown-content h6:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content h1{font-size:1.5rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h2{font-size:1.3rem;font-weight:600}.pdx-textarea-preview-content .markdown-content h3{font-size:1.1rem;font-weight:500}.pdx-textarea-preview-content .markdown-content p{margin:8px 0}.pdx-textarea-preview-content .markdown-content p:first-child{margin-top:0}.pdx-textarea-preview-content .markdown-content p:last-child{margin-bottom:0}.pdx-textarea-preview-content .markdown-content strong{font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-textarea-preview-content .markdown-content em{font-style:italic}.pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:3px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.pdx-textarea-preview-content .markdown-content br{line-height:1.8}.pdx-templates-button,.pdx-preview-button,.pdx-auto-resize-button,.pdx-clear-button{width:32px;height:32px;line-height:32px;opacity:.7;transition:all .2s ease}.pdx-templates-button:hover,.pdx-preview-button:hover,.pdx-auto-resize-button:hover,.pdx-clear-button:hover{opacity:1;background:var(--md-sys-color-primary-container)}.pdx-templates-button .mat-icon,.pdx-preview-button .mat-icon,.pdx-auto-resize-button .mat-icon,.pdx-clear-button .mat-icon{font-size:18px;width:18px;height:18px}.pdx-templates-button.pdx-preview-active,.pdx-templates-button.pdx-auto-resize-active,.pdx-preview-button.pdx-preview-active,.pdx-preview-button.pdx-auto-resize-active,.pdx-auto-resize-button.pdx-preview-active,.pdx-auto-resize-button.pdx-auto-resize-active,.pdx-clear-button.pdx-preview-active,.pdx-clear-button.pdx-auto-resize-active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-templates-menu .pdx-template-item{padding:12px 16px;line-height:1.4}.pdx-templates-menu .pdx-template-item .mat-icon{margin-right:12px;color:var(--md-sys-color-primary)}.pdx-templates-menu .pdx-template-item .pdx-template-info{display:flex;flex-direction:column}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-name{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-templates-menu .pdx-template-item .pdx-template-info .pdx-template-description{color:var(--md-sys-color-on-surface-variant);font-size:.75rem;margin-top:2px}.pdx-templates-menu .pdx-template-item:hover{background:var(--md-sys-color-surface-variant)}.pdx-text-statistics{position:absolute;bottom:-44px;left:0;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;padding:8px 12px}.pdx-text-statistics .pdx-stats-grid{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item{display:flex;flex-direction:column;align-items:center;min-width:60px}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-weight:600;font-size:.9rem;color:var(--md-sys-color-primary);font-variant-numeric:tabular-nums}.pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.7rem;color:var(--md-sys-color-on-surface-variant);text-transform:lowercase;margin-top:2px}.pdx-preview-panel{margin-top:16px;border:1px solid var(--md-sys-color-outline-variant);border-radius:4px;background:var(--md-sys-color-surface)}.pdx-preview-panel .pdx-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-variant)}.pdx-preview-panel .pdx-preview-header .pdx-preview-title{font-weight:500;color:var(--md-sys-color-on-surface)}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector{display:flex;gap:4px}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button{width:32px;height:32px;opacity:.6;transition:all .2s ease}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button.active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button:hover{opacity:1}.pdx-preview-panel .pdx-preview-header .pdx-preview-mode-selector button .mat-icon{font-size:16px;width:16px;height:16px}.pdx-preview-panel .pdx-preview-content{padding:16px;min-height:120px;line-height:1.6}.mat-mdc-form-field-label{cursor:pointer;transition:all .2s ease}.mat-mdc-form-field-label:hover{color:var(--md-sys-color-primary)}.mat-mdc-form-field-label .pdx-required-marker{color:var(--md-sys-color-error);margin-left:2px;font-weight:700}.pdx-label-editor{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-primary);border-radius:4px;padding:4px 8px;font-size:inherit;font-family:inherit;color:inherit;outline:none;box-shadow:var(--md-sys-elevation-level1, var(--md-sys-elevation-level1))}.pdx-label-editor:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px var(--md-sys-color-primary)}.pdx-character-count{font-size:.75rem;font-variant-numeric:tabular-nums;transition:color .2s ease}.pdx-character-count.pdx-character-count-warning{color:var(--md-sys-color-secondary);font-weight:500}.pdx-character-count.pdx-character-count-error{color:var(--md-sys-color-error);font-weight:600;animation:pulse-error 1s ease-in-out}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.7}}.pdx-error-message{display:flex;align-items:flex-start;gap:4px;font-size:.75rem;line-height:1.4;margin-top:4px}.pdx-error-message .pdx-error-icon{font-size:16px;width:16px;height:16px;margin-top:1px;color:var(--md-sys-color-error)}.pdx-error-message.pdx-additional-error{margin-top:2px;opacity:.8;font-size:.7rem}.pdx-additional-errors{margin-top:4px}.pdx-validation-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;color:var(--md-sys-color-primary);font-size:.75rem}.pdx-validation-loading .pdx-loading-spinner{font-size:16px;width:16px;height:16px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pdx-debug-info{position:absolute;top:-24px;right:0;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline);border-radius:4px;padding:2px 6px;font-size:.65rem;color:var(--md-sys-color-on-surface-variant);z-index:10}.pdx-debug-info .pdx-debug-security{display:block;font-family:monospace}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-contrast:high){:host .mat-mdc-form-field{--mdc-outlined-text-field-outline-color: currentColor;--mdc-outlined-text-field-focused-outline-color: currentColor}:host .pdx-character-count.pdx-character-count-warning,:host .pdx-character-count.pdx-character-count-error{color:currentColor;font-weight:700}:host .pdx-text-statistics{border-color:currentColor}:host .pdx-text-statistics .pdx-stat-value{color:currentColor}}@media(prefers-reduced-motion:reduce){:host *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:host .pdx-label-editor{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-surface)}:host .pdx-debug-info{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}:host .pdx-text-statistics{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs,:host .pdx-preview-panel{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-tabs .pdx-preview-header,:host .pdx-preview-panel .pdx-preview-header{background:var(--md-sys-color-surface-variant);border-bottom-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-outline)}:host .pdx-textarea-preview-content .markdown-content h1,:host .pdx-textarea-preview-content .markdown-content h2,:host .pdx-textarea-preview-content .markdown-content h3,:host .pdx-textarea-preview-content .markdown-content h4,:host .pdx-textarea-preview-content .markdown-content h5,:host .pdx-textarea-preview-content .markdown-content h6{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content strong{color:var(--md-sys-color-on-surface)}:host .pdx-textarea-preview-content .markdown-content code{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface-variant)}}@media(max-width:599px){:host .pdx-text-statistics .pdx-stats-grid{gap:8px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:50px}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-value{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item .pdx-stat-label{font-size:.65rem}:host .pdx-textarea-tabs .mat-mdc-tab-body-wrapper{padding:8px;min-height:150px}:host .pdx-preview-panel .pdx-preview-content{padding:12px;min-height:100px}}@media(min-width:600px){:host .pdx-character-count{font-size:.8rem}:host .pdx-error-message{font-size:.8rem}:host .pdx-text-statistics .pdx-stats-grid .pdx-stat-item{min-width:70px}}@media(min-width:1200px){:host.pdx-textarea-with-preview{display:flex;gap:16px}:host.pdx-textarea-with-preview .pdx-textarea-container{flex:1}:host.pdx-textarea-with-preview .pdx-preview-panel{flex:1;margin-top:0;height:fit-content}}\n"] }]
20047
20047
  }], propDecorators: { readonlyMode: [{
20048
20048
  type: Input
20049
20049
  }], disabledMode: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/dynamic-fields",
3
- "version": "9.0.0-beta.57",
3
+ "version": "9.0.0-beta.58",
4
4
  "description": "Angular Material-based dynamic form fields for Praxis UI with lazy loading and metadata-driven rendering.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -11,8 +11,8 @@
11
11
  "@angular/platform-browser": "^21.0.0",
12
12
  "@angular/router": "^21.0.0",
13
13
  "rxjs": "^7.8.0",
14
- "@praxisui/core": "^9.0.0-beta.57",
15
- "@praxisui/cron-builder": "^9.0.0-beta.57"
14
+ "@praxisui/core": "^9.0.0-beta.58",
15
+ "@praxisui/cron-builder": "^9.0.0-beta.58"
16
16
  },
17
17
  "dependencies": {
18
18
  "libphonenumber-js": "^1.12.41",
@@ -336,7 +336,7 @@ Resumo de composicao deste componente:
336
336
  - Ordenacao: nao se aplica.
337
337
  - Selecao: texto multiline livre (respeitando regras de validacao).
338
338
  - Eventos: usa outputs herdados e processa eventos locais de teclado/paste/cut para UX avancada.
339
- - Renderizacao: `mat-form-field` + `<textarea matInput>` com autosize opcional, clear button opcional e hints de suporte.
339
+ - Renderizacao: `mat-form-field` + `<textarea matInput>` com autosize opcional, clear button opcional e ajuda de campo pelo contrato herdado (`helpDisplay='inline'|'popover'|'hidden'|'auto'`).
340
340
 
341
341
  ### 5. Exemplo Minimo (JSON + Uso)
342
342
  ```json