@praxisui/metadata-editor 3.0.0-beta.0 → 3.0.0-beta.2

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 +1 @@
1
- {"version":3,"file":"praxisui-metadata-editor.mjs","sources":["../../../projects/praxis-metadata-editor/src/lib/registry/config-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/registry/context-validator-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/schema-normalizer.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/dynamic-form-factory.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/editor-component-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/components/regex-help-dialog/regex-help-dialog.component.ts","../../../projects/praxis-metadata-editor/src/lib/components/dynamic-editor-renderer/dynamic-editor-renderer.component.ts","../../../projects/praxis-metadata-editor/src/lib/config/input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/select.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/transfer-list.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/radio.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/button-toggle.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/tree-select.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/textarea.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/number.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/datetime-local.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-picker.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/month.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/week.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/email.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/password.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/url.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/search.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/phone.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/color.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/color-picker.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/rating.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/chip-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/checkbox-group.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/toggle.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/slider.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/range-slider.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/currency.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/price-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/cpf-cnpj.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/file-upload.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/year.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/avatar.config.ts","../../../projects/praxis-metadata-editor/src/lib/validators/context-validators.ts","../../../projects/praxis-metadata-editor/src/lib/validators/gradient-color.validators.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-distance-radius.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-relative-period.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-sentiment.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-color-label.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-pipeline-status.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-rating.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-score-priority.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-filter-control-properties.map.ts","../../../projects/praxis-metadata-editor/src/lib/components/field-metadata-editor/field-metadata-editor.component.ts","../../../projects/praxis-metadata-editor/src/lib/tabs/cascade-manager/cascade-rules.service.ts","../../../projects/praxis-metadata-editor/src/lib/tabs/cascade-manager/cascade-manager-tab.component.ts","../../../projects/praxis-metadata-editor/src/lib/ai/metadata-editor-ai-capabilities.ts","../../../projects/praxis-metadata-editor/src/praxisui-metadata-editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport type { FieldControlType } from '@praxisui/core';\nimport type { EditorProperty } from '../types/editor-property.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfigRegistryService {\n private readonly map = new Map<FieldControlType, EditorProperty[]>();\n\n register(controlType: FieldControlType, props: EditorProperty[]): void {\n this.map.set(controlType, props);\n }\n\n getProperties(controlType: FieldControlType): EditorProperty[] {\n return this.map.get(controlType) ?? [];\n }\n\n list(): Array<{ controlType: FieldControlType; count: number }> {\n return Array.from(this.map.entries()).map(([ct, props]) => ({\n controlType: ct,\n count: props.length,\n }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { FieldControlType } from '@praxisui/core';\nimport type { ValidatorFn } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class ContextValidatorRegistryService {\n private readonly map = new Map<FieldControlType, ValidatorFn[]>();\n\n register(controlType: FieldControlType, validator: ValidatorFn): void {\n const list = this.map.get(controlType) ?? [];\n list.push(validator);\n this.map.set(controlType, list);\n }\n\n get(controlType: FieldControlType): ValidatorFn[] {\n return this.map.get(controlType) ?? [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport type { FieldDefinition } from '@praxisui/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SchemaNormalizerService {\n /** Normaliza propriedades e aplica defaultValue resolvendo do seed por dot-path. */\n normalize(properties: EditorProperty[], seed?: Partial<FieldDefinition>): EditorProperty[] {\n const out = properties.map((p) => {\n const clone: EditorProperty = { ...p };\n // normalizar options se for string simples\n if (Array.isArray(clone.options)) {\n clone.options = clone.options.map((opt: any) =>\n typeof opt === 'string' ? { value: opt, text: opt } : opt,\n );\n }\n // pattern/regex\n if ((clone as any).pattern && typeof (clone as any).pattern === 'string') {\n const str = String((clone as any).pattern);\n const match = /^\\/(.*)\\/([gimsuy]*)$/.exec(str);\n if (match) {\n try {\n (clone as any).pattern = new RegExp(match[1], match[2]);\n } catch {}\n }\n }\n // aplicar defaultValue do seed se existir\n if (seed && clone.defaultValue === undefined) {\n const val = this.getByPath(seed as any, clone.name);\n if (val !== undefined) {\n // Stringify complex defaults for textarea-friendly editors\n const needsJson = (\n clone.editorType === 'textarea' &&\n (\n clone.name === 'options' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'paletteSettings.colors' ||\n clone.name === 'views' ||\n clone.name === 'adaptiveSubtitle'\n )\n );\n clone.defaultValue = needsJson && typeof val !== 'string' ? JSON.stringify(val, null, 2) : val;\n try {\n if (\n clone.name === 'resourcePath' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'optionLabelKey' ||\n clone.name === 'optionValueKey' ||\n clone.name === 'options' ||\n clone.name === 'paletteSettings.colors' ||\n clone.name === 'views'\n ) {\n console.debug('[SchemaNormalizer] default from seed', {\n name: clone.name,\n value: needsJson && typeof val !== 'string' ? JSON.stringify(val) : val,\n });\n }\n // Extra diagnostics for Rating editor fields\n if ([\n 'max',\n 'allowHalf',\n 'precision',\n 'selection',\n 'size',\n 'icon',\n 'emptyIcon',\n 'svgIcon',\n 'svgIconOutline',\n 'ratingColor',\n 'outlineColor',\n 'readonly',\n 'tabIndex',\n 'ariaLabel',\n ].includes(clone.name)) {\n console.debug('[SchemaNormalizer][RATING] default from seed', {\n name: clone.name,\n value: val,\n });\n }\n } catch {}\n }\n } else if (seed && clone.defaultValue !== undefined) {\n // Log when a property defines its own defaultValue and thus does not read from seed\n try {\n if (\n clone.name === 'resourcePath' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'optionLabelKey' ||\n clone.name === 'optionValueKey' ||\n clone.name === 'options'\n ) {\n const val = this.getByPath(seed as any, clone.name);\n console.debug('[SchemaNormalizer] default preserved (property default overrides seed)', {\n name: clone.name,\n propertyDefault: clone.defaultValue,\n seedValue: val,\n });\n }\n } catch {}\n }\n return clone;\n });\n try {\n const names = out.map((p) => p.name);\n const defPreview = out\n .filter((p) =>\n ['resourcePath', 'filterCriteria', 'optionLabelKey', 'optionValueKey'].includes(p.name),\n )\n .map((p) => ({ name: p.name, defaultValue: (p as any).defaultValue }));\n console.debug('[SchemaNormalizer] normalize summary', { names, defPreview });\n } catch {}\n return out;\n }\n\n /** Lê valor por dot-path */\n private getByPath(obj: any, path: string): any {\n return path.split('.').reduce((acc, key) => (acc == null ? acc : acc[key]), obj);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport type { FieldDefinition } from '@praxisui/core';\nimport { ContextValidatorRegistryService } from '../registry/context-validator-registry.service';\nimport type { FieldControlType } from '@praxisui/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicFormFactoryService {\n constructor(\n private fb: FormBuilder,\n private ctxValidators: ContextValidatorRegistryService,\n ) {}\n\n createEditorForm(\n controlType: FieldControlType,\n props: EditorProperty[],\n seed?: Partial<FieldDefinition>,\n ): FormGroup {\n const group = this.fb.group({});\n\n for (const p of props) {\n const ctrl = new FormControl(\n p.defaultValue ?? null,\n { validators: p.validators ?? [] },\n );\n this.assignControlByPath(group, p.name, ctrl);\n try {\n if (\n p.name === 'resourcePath' ||\n p.name === 'filterCriteria' ||\n p.name === 'optionLabelKey' ||\n p.name === 'optionValueKey'\n ) {\n console.debug('[EditorForm] control init', {\n name: p.name,\n defaultValue: p.defaultValue ?? null,\n });\n }\n } catch {}\n }\n\n const formValidators = this.ctxValidators.get(controlType);\n if (formValidators.length) {\n group.addValidators(formValidators);\n }\n return group;\n }\n\n getControlByPath(form: FormGroup, path: string): AbstractControl | null {\n return form.get(path);\n }\n\n setValueByPath(form: FormGroup, path: string, value: any): void {\n form.get(path)?.setValue(value);\n }\n\n extractPatch(form: FormGroup): Partial<FieldDefinition> {\n const patch = form.getRawValue() as any;\n try { console.debug('[EditorForm] extractPatch', patch); } catch {}\n return patch;\n }\n\n mergeIntoFieldDefinition(\n base: FieldDefinition,\n patch: Partial<FieldDefinition>,\n ): FieldDefinition {\n return this.deepMerge(base, patch);\n }\n\n private assignControlByPath(group: FormGroup, path: string, ctrl: FormControl) {\n const parts = path.split('.');\n let current: FormGroup = group;\n for (let i = 0; i < parts.length - 1; i++) {\n const key = parts[i];\n const next = current.get(key);\n if (!next) {\n const child = this.fb.group({});\n current.addControl(key, child);\n current = child;\n } else if (next instanceof FormGroup) {\n current = next;\n } else {\n // Overwrite non-group path with group to respect dot-notation\n const child = this.fb.group({});\n current.removeControl(key);\n current.addControl(key, child);\n current = child;\n }\n }\n current.addControl(parts[parts.length - 1], ctrl);\n }\n\n private deepMerge<T>(target: T, source: Partial<T>): T {\n if (source == null || typeof source !== 'object') return target;\n const result: any = Array.isArray(target) ? [...(target as any)] : { ...(target as any) };\n for (const [k, v] of Object.entries(source as any)) {\n if (v && typeof v === 'object' && !Array.isArray(v)) {\n result[k] = this.deepMerge(result[k] ?? {}, v as any);\n } else {\n result[k] = v;\n }\n }\n return result as T;\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EditorComponentRegistryService {\n private readonly registry = new Map<string, () => Promise<Type<any>>>();\n private readonly cache = new Map<string, Type<any>>();\n\n register(editorType: string, loader: () => Promise<Type<any>>): void {\n this.registry.set(editorType, loader);\n }\n\n async get(editorType: string): Promise<Type<any> | null> {\n if (this.cache.has(editorType)) {\n return this.cache.get(editorType)!;\n }\n const loader = this.registry.get(editorType);\n if (!loader) return null;\n const type = await loader();\n if (type) this.cache.set(editorType, type);\n return type ?? null;\n }\n\n isRegistered(editorType: string): boolean {\n return this.registry.has(editorType);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'praxis-regex-help-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatListModule, MatButtonModule],\n template: `\n <h2 mat-dialog-title>Modelos de Expressões Regulares</h2>\n <div mat-dialog-content>\n <p>Selecione um dos modelos abaixo para preencher o campo ou use como base:</p>\n <mat-nav-list dense>\n @for (r of presets; track r.pattern) {\n <a mat-list-item (click)=\"choose(r.pattern)\" style=\"cursor: pointer;\">\n <span matListItemTitle><code>{{ r.pattern }}</code></span>\n <span matListItemLine>{{ r.label }}</span>\n </a>\n }\n </mat-nav-list>\n <p style=\"margin-top: 12px;\">Recursos úteis:</p>\n <ul>\n <li><a href=\"https://regex101.com/\" target=\"_blank\" rel=\"noreferrer noopener\">regex101.com</a> — Teste e depure regex</li>\n <li><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions\" target=\"_blank\" rel=\"noreferrer noopener\">MDN: Regular expressions</a></li>\n </ul>\n </div>\n <div mat-dialog-actions>\n <button class=\"mat-mdc-button mdc-button\" mat-dialog-close>Fechar</button>\n </div>\n `,\n})\nexport class RegexHelpDialogComponent {\n private dialogRef = inject(MatDialogRef<RegexHelpDialogComponent>);\n\n readonly presets: { label: string; pattern: string }[] = [\n { label: 'Apenas letras (ASCII)', pattern: '/^[a-zA-Z]+$/' },\n { label: 'Apenas dígitos', pattern: '/^\\\\d+$/' },\n { label: 'Email simples', pattern: '/^\\\\w+@[\\\\w.-]+\\\\.[A-Za-z]&#123;2,&#125;$/' },\n { label: 'URL básica (http/https)', pattern: '/^(https?:\\\\/\\\\/)?[\\\\w.-]+(\\\\\\\\.[\\\\w.-]+)+[\\\\w\\\\-._~:?#@!$&\\'()*+,;=\\\\/]*$/' },\n { label: 'Pelo menos 8 caracteres', pattern: '/^.&#123;8,&#125;$/' },\n { label: 'CEP brasileiro (#####-###)', pattern: '/^\\\\d{5}-\\\\d{3}$/' },\n { label: 'CPF (###.###.###-##)', pattern: '/^\\\\d{3}\\\\.\\\\d{3}\\\\.\\\\d{3}-\\\\d{2}$/' },\n { label: 'CNPJ (##.###.###/####-##)', pattern: '/^\\\\d{2}\\\\.\\\\d{3}\\\\.\\\\d{3}\\\\/\\\\d{4}-\\\\d{2}$/' },\n { label: 'Telefone (Brasil) com DDD', pattern: '/^\\\\(\\\\d{2}\\\\) \\\\d{4,5}-\\\\d{4}$/' },\n { label: 'Somente hex (0-9 A-F)', pattern: '/^[0-9A-Fa-f]+$/' },\n { label: 'Código postal (US ZIP)', pattern: '/^\\\\d{5}(-\\\\d{4})?$/' },\n { label: 'Data (YYYY-MM-DD)', pattern: '/^\\\\d{4}-\\\\d{2}-\\\\d{2}$/' },\n { label: 'Hora (HH:MM 24h)', pattern: '/^([01]\\\\d|2[0-3]):[0-5]\\\\d$/' },\n { label: 'Slug (letras, dígitos, hífen)', pattern: '/^[a-z0-9-]+$/' },\n { label: 'Username (3-16, alfanum., _ -)', pattern: '/^[a-zA-Z0-9_-]{3,16}$/' },\n { label: 'Senha forte (8+, maiúsc., minúsc., dígito)', pattern: '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d).&#123;8,&#125;$/' },\n { label: 'IPv4', pattern: '/^(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d))&#123;3&#125;$/' },\n { label: 'MAC address', pattern: '/^([0-9A-Fa-f]{2}:)&#123;5&#125;[0-9A-Fa-f]{2}$/' },\n { label: 'Hashtag (#palavra)', pattern: '/^#\\\\w+$/' },\n { label: 'Menção (@usuario)', pattern: '/^@\\\\w+$/' },\n { label: 'Palavra específica (foo)', pattern: '/\\\\bfoo\\\\b/' },\n { label: 'Não conter espaços', pattern: '/^\\\\S+$/' },\n { label: 'Início com letra', pattern: '/^[A-Za-z].*$/' },\n { label: 'Termina com ponto final', pattern: '/.*\\\\.$/' },\n { label: 'Número com 2 casas decimais', pattern: '/^\\\\d+(,\\\\d{2}|\\\\.\\\\d{2})$/' },\n { label: 'Hex color (#RRGGBB)', pattern: '/^#?[A-Fa-f0-9]{6}$/' },\n { label: 'UUID v4', pattern: '/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i' },\n { label: 'DOM id (letra inicial)', pattern: '/^[A-Za-z][-A-Za-z0-9_:.]*$/' },\n { label: 'Base64', pattern: '/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/' },\n ];\n\n choose(pattern: string): void {\n this.dialogRef.close(pattern);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport type { EditorProperty } from '../../types/editor-property.types';\nimport type { FieldMetadata, FieldControlType } from '@praxisui/core';\nimport { DynamicFieldLoaderDirective } from '@praxisui/dynamic-fields';\nimport { FieldControlType as FCT } from '@praxisui/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { PraxisIconDirective } from '@praxisui/core';\nimport { RegexHelpDialogComponent } from '../regex-help-dialog/regex-help-dialog.component';\nimport { IconPickerService } from '@praxisui/core';\n\n@Component({\n selector: 'praxis-dynamic-editor-renderer',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DynamicFieldLoaderDirective,\n MatExpansionModule,\n MatIconModule,\n MatButtonModule,\n MatDialogModule,\n MatTooltipModule,\n PraxisIconDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-template #item let-field=\"field\" let-index=\"index\" let-content=\"content\">\n <div class=\"editor-item\" [attr.data-control-type]=\"field.controlType\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n \n <div class=\"actions-container\">\n <!-- Botão de ajuda para regex -->\n <button\n *ngIf=\"field.name === 'pattern'\"\n type=\"button\"\n mat-icon-button\n class=\"regex-help-btn decorator-btn\"\n (click)=\"openRegexHelp()\"\n aria-label=\"Exemplos de regex\"\n matTooltip=\"Exemplos de regex\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n <!-- Botão para escolher ícone (prefix/suffix) -->\n <button\n *ngIf=\"isIconField(field.name)\"\n type=\"button\"\n mat-icon-button\n class=\"icon-picker-btn decorator-btn\"\n (click)=\"openIconPicker(field.name)\"\n aria-label=\"Escolher ícone\"\n matTooltip=\"Escolher ícone\"\n >\n <mat-icon [praxisIcon]=\"'apps'\"></mat-icon>\n </button>\n <!-- Botão de ajuda (fallback quando suffix não é aplicado) -->\n <button\n *ngIf=\"field.hint && !useHelpSuffix(field)\"\n type=\"button\"\n mat-icon-button\n class=\"hint-btn decorator-btn\"\n [class.has-icon-picker]=\"isIconField(field.name)\"\n [matTooltip]=\"field.hint\"\n aria-label=\"Ajuda\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </div>\n </div>\n </ng-template>\n\n <div class=\"editor-surface\">\n <mat-accordion class=\"section-accordion\" multi>\n <mat-expansion-panel class=\"section-card\" *ngFor=\"let g of groupOrder\">\n <mat-expansion-panel-header class=\"section-header\">\n <mat-panel-title>\n <span class=\"section-title\">\n <mat-icon class=\"section-icon\" [praxisIcon]=\"groupIcon(g)\"></mat-icon>\n {{ g }}\n </span>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div *ngFor=\"let row of groupRows[g]\" class=\"editor-row\" [ngClass]=\"rowClass(row)\">\n <ng-container *ngIf=\"ready\"\n dynamicFieldLoader\n [fields]=\"row\"\n [formGroup]=\"form\"\n [itemTemplate]=\"item\">\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n </div>\n `,\n styles: [\n `\n :host { display: block; }\n .editor-surface {\n /* Remove lateral padding here; the settings panel body already provides horizontal spacing */\n padding: 8px 0 2px;\n border-radius: 12px;\n background: transparent; /* gradiente movido para o settings-panel */\n }\n /* --- Seções (cards colapsáveis) --- */\n .section-accordion {\n display: block;\n }\n .section-card {\n margin: 6px 0 8px; /* reduced vertical spacing between panels */\n border-radius: 12px;\n border: 1px solid var(--md-sys-color-outline-variant);\n overflow: hidden;\n }\n .section-card.mat-expanded {\n border-color: var(--md-sys-color-primary);\n box-shadow: 0 2px 10px rgba(0,0,0,0.05);\n }\n /* Expansion body padding normalized in settings panel styles; avoid styling deep children here */\n .section-card .mat-expansion-panel-body {\n background: var(--md-sys-color-surface-container-low);\n }\n .section-header {\n /* Use host theme tokens with dark-friendly fallbacks */\n background: var(--md-sys-color-surface-container-low);\n border-bottom: 1px solid var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));\n padding: 2px 8px; /* extra compact header */\n min-height: 32px; /* extra compact height */\n display: flex;\n align-items: center; /* vertically center header content */\n color: var(--md-sys-color-on-surface);\n }\n /* Ensure Material header title area centers content vertically */\n .section-header .mat-expansion-panel-header-title,\n .section-header .mat-expansion-panel-header-description {\n display: flex;\n align-items: center;\n color: var(--md-sys-color-on-surface);\n }\n .section-title {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n letter-spacing: 0.2px;\n /* Use theme on-surface color for title text (dark-safe) */\n color: var(--md-sys-color-on-surface);\n font-size: 0.9rem; /* smaller to match extra compact header */\n line-height: 1.2;\n }\n .section-icon {\n /* Use theme primary color for the icon */\n color: var(--md-sys-color-primary, var(--md-sys-color-primary, #3f51b5));\n opacity: 0.9;\n }\n\n\n .editor-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n flex-wrap: wrap;\n margin-bottom: 8px;\n }\n /* Campos ocupam 100% da largura por padrão (uma coluna) */\n .editor-row > praxis-field-shell {\n flex: 1 1 100%;\n min-width: 280px;\n }\n /* Garantir que cada campo ocupe toda a largura e tenha respiro inferior */\n .editor-row praxis-field-shell .mat-mdc-form-field {\n width: 100%;\n margin-bottom: 8px;\n }\n /* Nos rows inline (toggles), cada item ocupa apenas o necessário */\n .editor-row.row-inline > praxis-field-shell {\n flex: 0 0 auto;\n }\n /* Duas colunas iguais */\n .editor-row.row-2 > praxis-field-shell { flex: 1 1 calc(50% - 12px); min-width: 260px; }\n /* Três colunas iguais */\n .editor-row.row-3 > praxis-field-shell { flex: 1 1 calc(33.333% - 12px); min-width: 220px; }\n\n /* Priorização visual dos campos principais */\n .editor-row > praxis-field-shell[data-field-name=\"controlType\"],\n .editor-row > praxis-field-shell[data-field-name=\"label\"],\n .editor-row > praxis-field-shell[data-field-name=\"placeholder\"] {\n flex: 1 1 calc(50% - 12px);\n min-width: 300px;\n }\n praxis-field-shell[data-field-name=\"label\"] .mdc-floating-label,\n praxis-field-shell[data-field-name=\"placeholder\"] .mdc-floating-label {\n font-weight: 600;\n }\n /* Inputs curtos para prefixos/sufixos */\n /* Inputs curtos para prefixos/sufixos */\n .editor-row > praxis-field-shell[data-field-name=\"prefix\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffix\"] {\n flex: 0 0 200px;\n min-width: 160px;\n }\n /* Icon fields now behave as normal fields (flex) */\n .editor-row > praxis-field-shell[data-field-name=\"prefixIcon\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffixIcon\"],\n .editor-row > praxis-field-shell[data-field-name=\"prefixIconColor\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffixIconColor\"] {\n flex: 1 1 auto;\n min-width: 160px;\n }\n\n /* Flexbox Layout for Editor Items */\n .editor-item {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n }\n /* Field content takes available space */\n .editor-item > ng-container,\n .editor-item > praxis-field-shell {\n flex: 1;\n min-width: 0;\n }\n /* Actions container for decorators */\n .actions-container {\n display: flex;\n align-items: center;\n gap: 0;\n margin-top: 12px; /* Align with input box, skipping label */\n flex-shrink: 0;\n }\n\n /* Decorators (botões) */\n .decorator-btn {\n position: static; /* Reset absolute positioning */\n color: var(--md-sys-color-primary, #3f51b5);\n opacity: 0.6;\n transform: scale(0.8);\n width: 32px;\n height: 32px;\n line-height: 32px;\n padding: 0;\n }\n .decorator-btn:hover { opacity: 1; }\n \n /* Remove old positioning classes */\n .icon-picker-btn { right: auto; }\n .hint-btn { right: auto; }\n .hint-btn.has-icon-picker { right: auto; }\n\n /* Hide native hints to avoid duplication */\n .editor-row .mat-mdc-form-field-subscript-wrapper mat-hint {\n display: none !important;\n }\n /* Ensure validation errors remain visible */\n .editor-row .mat-mdc-form-field-subscript-wrapper mat-error {\n display: block !important;\n }\n\n /* Destaque para toggles importantes */\n praxis-field-shell[data-field-name=\"showCharCount\"] .mdc-switch { transform: scale(1.05); }\n praxis-field-shell[data-field-name=\"showCharCount\"] .mat-mdc-slide-toggle { font-weight: 600; }\n /* Banner de aviso estilizado no hint do Tipo de campo */\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-hint {\n display: flex;\n align-items: center;\n gap: 8px;\n background: var(--md-sys-color-tertiary-container);\n border: 1px solid var(--md-sys-color-tertiary);\n color: var(--md-sys-color-on-tertiary-container);\n padding: 8px 10px;\n border-radius: 6px;\n line-height: 1.3;\n white-space: normal;\n }\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-hint::before {\n content: '⚠️';\n display: inline-block;\n }\n /* Garantir espaço vertical extra abaixo do aviso */\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-subscript-wrapper {\n margin-top: 6px;\n margin-bottom: 10px;\n min-height: auto; /* deixa o wrapper crescer conforme conteúdo */\n }\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field {\n margin-bottom: 16px; /* mais respiro para não sobrepor próximo campo */\n }\n `,\n ],\n})\nexport class DynamicEditorRendererComponent implements OnChanges {\n @Input() properties: EditorProperty[] = [];\n @Input() form!: FormGroup;\n\n fields: FieldMetadata[] = [];\n groupFields: Record<string, FieldMetadata[]> = {};\n groupOrder: string[] = [];\n groupRows: Record<string, FieldMetadata[][]> = {};\n // Evita reentrância: cria loaders após o primeiro tick\n ready = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['properties']) {\n const mapped = this.properties.map((p) => this.toFieldMetadata(p));\n this.fields = mapped;\n const groupMap = new Map<string, FieldMetadata[]>();\n const rowMap = new Map<string, Map<string, FieldMetadata[]>>();\n for (const f of mapped) {\n const g = (f as any)._group || 'Geral';\n if (!groupMap.has(g)) groupMap.set(g, []);\n groupMap.get(g)!.push(f);\n const rowKey = (f as any)._row || `${f.name}`;\n if (!rowMap.has(g)) rowMap.set(g, new Map());\n const rmap = rowMap.get(g)!;\n if (!rmap.has(rowKey)) rmap.set(rowKey, []);\n rmap.get(rowKey)!.push(f);\n }\n this.groupFields = Object.fromEntries(groupMap.entries());\n this.groupOrder = Array.from(groupMap.keys()).sort((a, b) => this.groupWeight(a) - this.groupWeight(b));\n const rows: Record<string, FieldMetadata[][]> = {};\n for (const g of this.groupOrder) {\n const rmap = rowMap.get(g)!;\n rows[g] = Array.from(rmap.values());\n }\n this.groupRows = rows;\n // Ativar loaders após agrupar propriedades\n queueMicrotask?.(() => (this.ready = true));\n }\n }\n\n private toFieldMetadata(p: EditorProperty): FieldMetadata {\n const controlType = this.mapEditorType(p.editorType);\n const meta: any = {\n name: p.name,\n label: p.label,\n controlType,\n placeholder: p.placeholder,\n // Ajuda contextual padrão quando ausente\n hint: p.hint,\n // Help suffix dentro do campo (padrao) - somente para campos compatíveis\n suffixIcon: p.hint && !this.isIconField(p.name) && this.isSuffixCapable(p.editorType)\n ? 'help_outline'\n : undefined,\n suffixIconTooltip: p.hint && !this.isIconField(p.name) && this.isSuffixCapable(p.editorType)\n ? p.hint\n : undefined,\n suffixIconAriaLabel: p.hint && !this.isIconField(p.name) && this.isSuffixCapable(p.editorType)\n ? 'Ajuda'\n : undefined,\n options: Array.isArray(p.options) ? (p.options as any) : undefined,\n required: p.required,\n // meta auxiliar de agrupamento (não exportado)\n _group: p.group || 'Geral',\n _inline: p.inline || false,\n _row: p.row || undefined,\n _editorType: p.editorType,\n // validators do EditorProperty já foram aplicados ao FormControl pela fábrica,\n // mas manter aqui não prejudica e habilita exibição de mensagens padrão.\n validators: undefined,\n } as FieldMetadata & { _group?: string; min?: number; max?: number; step?: number };\n\n // Priorização de campos principais (agrupa em uma linha \"core\")\n const coreNames = new Set(['controlType', 'label', 'placeholder']);\n if (coreNames.has(p.name) && !meta._row) meta._row = '__core';\n\n // Campos menores e de baixa relevância visual (agrupados inline)\n const smallNames = new Set([\n 'prefix',\n 'suffix',\n 'icon',\n ]);\n if (smallNames.has(p.name)) {\n meta._inline = true;\n if (!meta._row) meta._row = '__affixes';\n }\n\n // Apenas campos de ícone devem receber o hint de Material Symbols\n if (this.isIconField(p.name) && !meta.hint) {\n meta.hint = 'Use o nome do ícone (Material Symbols)';\n }\n\n // Booleans em linha (switches) para melhor densidade\n const booleanLike = new Set([\n 'required',\n 'disabled',\n 'readonly',\n 'showCharCount',\n 'showClear',\n 'autoFocus',\n 'hideLabel',\n ]);\n if (p.editorType === 'checkbox' || booleanLike.has(p.name)) {\n meta._inline = true;\n if (!meta._row) meta._row = '__toggles';\n }\n\n // Mensagem padrão de atenção ao trocar tipo de campo\n if (p.name === 'controlType' && !meta.hint) {\n meta.hint = 'Alterar o tipo pode impactar configurações e validações';\n }\n\n if (p.editorType === 'number') {\n // Defaults for numeric editors\n if (/minlength|maxlength/i.test(p.name)) {\n (meta as any).min = 0;\n (meta as any).step = 1;\n }\n }\n\n // no editor-specific overrides for textarea sizing here (reverted)\n\n return meta as FieldMetadata;\n }\n\n // Priorização das seções\n private groupWeight(group: string): number {\n const key = group.toLowerCase();\n const order = [\n 'geral',\n 'apresent',\n 'valida',\n 'formato',\n 'comport',\n 'material',\n 'ações',\n 'acess',\n ];\n const idx = order.findIndex((k) => key.includes(k));\n return idx >= 0 ? idx : 999;\n }\n\n // No section open by default\n isInitiallyExpanded(_group: string): boolean {\n return false;\n }\n\n // (preview removed by request)\n\n rowClass(row: FieldMetadata[]): string {\n // Linha compacta (toggles) quando todos são inline\n if (row.every((f: any) => !!(f as any)._inline)) return 'row-inline';\n // Se não for inline e houver 2 ou 3 itens, usar colunas iguais\n const n = row.length;\n if (n === 2) return 'row-2';\n if (n === 3) return 'row-3';\n return '';\n }\n\n private mapEditorType(t: string): FieldControlType {\n switch (t) {\n case 'text':\n return FCT.INPUT as FieldControlType;\n case 'number':\n return FCT.NUMERIC_TEXT_BOX as FieldControlType;\n case 'textarea':\n return FCT.TEXTAREA as FieldControlType;\n case 'select':\n return FCT.SELECT as FieldControlType;\n case 'checkbox':\n // Para booleano simples, usamos o toggle\n return (FCT as any).TOGGLE as FieldControlType;\n case 'date':\n return (FCT as any).DATE_INPUT as FieldControlType;\n case 'datetime-local':\n return (FCT as any).DATETIME_LOCAL_INPUT as FieldControlType;\n case 'color':\n return (FCT as any).COLOR_INPUT as FieldControlType;\n case 'colorPicker':\n return (FCT as any).COLOR_PICKER as FieldControlType;\n default:\n return FCT.INPUT as FieldControlType;\n }\n }\n\n groupIcon(group: string): string {\n const key = (group ?? '').toLowerCase();\n const normalized = key\n .replace(/[àáâãäå]/g, 'a')\n .replace(/[èéêë]/g, 'e')\n .replace(/[ìíîï]/g, 'i')\n .replace(/[òóôõö]/g, 'o')\n .replace(/[ùúûü]/g, 'u')\n .replace(/[ç]/g, 'c')\n .replace(/[ñ]/g, 'n');\n if (normalized.includes('geral')) return 'widgets';\n if (normalized.includes('apresent')) return 'slideshow';\n if (normalized.includes('dados') || normalized.includes('opcoes')) return 'list_alt';\n if (normalized.includes('valid')) return 'task_alt';\n if (normalized.includes('formato') || normalized.includes('comport')) return 'tune';\n if (normalized.includes('material')) return 'design_services';\n if (normalized.includes('acao')) return 'bolt';\n if (normalized.includes('acess')) return 'accessibility_new';\n if (normalized.includes('icone')) return 'apps';\n if (normalized.includes('fonte') || normalized.includes('remota')) return 'cloud_sync';\n if (normalized.includes('adaptive')) return 'open_in_new';\n if (normalized.includes('apare')) return 'style';\n if (normalized.includes('atalho')) return 'keyboard_command_key';\n if (normalized.includes('conteu')) return 'article';\n if (normalized.includes('estado')) return 'toggle_on';\n if (normalized.includes('gradient')) return 'gradient';\n if (normalized.includes('palette')) return 'palette';\n if (normalized.includes('theme')) return 'colorize';\n if (normalized.includes('preview') || normalized.includes('view')) return 'visibility';\n return 'settings';\n }\n\n constructor(private dialog: MatDialog, private iconPicker: IconPickerService) { }\n\n isIconField(path: string): boolean {\n if (!path) return false;\n // Supports: prefixIcon, suffixIcon, icon, clearButton.icon, any *.icon\n return path === 'prefixIcon'\n || path === 'suffixIcon'\n || path === 'icon'\n || path === 'emptyIcon'\n || /(^|\\.)icon$/.test(path);\n }\n\n useHelpSuffix(field: FieldMetadata): boolean {\n const editorType = (field as any)._editorType as string | undefined;\n return (\n !!field.hint &&\n !this.isIconField(field.name) &&\n this.isSuffixCapable(editorType || '')\n );\n }\n\n private isSuffixCapable(editorType: string): boolean {\n return (\n editorType === 'text' ||\n editorType === 'number' ||\n editorType === 'textarea' ||\n editorType === 'select' ||\n editorType === 'date' ||\n editorType === 'datetime-local' ||\n editorType === 'color' ||\n editorType === 'colorPicker'\n );\n }\n\n openRegexHelp(): void {\n const ref = this.dialog.open(RegexHelpDialogComponent, {\n width: '720px',\n });\n ref.afterClosed().subscribe((selected: string | null | undefined) => {\n if (!selected) return;\n const ctrl = this.form?.get('pattern');\n ctrl?.setValue(selected);\n ctrl?.markAsDirty();\n this.form?.markAsDirty();\n });\n }\n\n async openIconPicker(path: string): Promise<void> {\n const current = this.form?.get(path)?.value as string | undefined;\n const picked = await this.iconPicker.openDialog({ value: current });\n if (picked !== undefined) {\n this.form?.get(path)?.setValue(picked);\n this.form?.markAsDirty();\n }\n }\n}\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const inputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', placeholder: 'Rótulo do campo', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (mi:*). Use o seletor ao lado.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (mi:*). Use o seletor ao lado.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mínimo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'maxLength', label: 'Máximo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'pattern', label: 'Pattern (regex)', editorType: 'text', hint: 'Ex.: /^foo.*/i', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: padrão inválido', editorType: 'text', group: 'Validação' },\n\n // Máscara/Formato\n { name: 'mask', label: 'Máscara', editorType: 'text', group: 'Formato/Comportamento' },\n {\n name: 'textTransform',\n label: 'Transformação de texto',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'none', text: 'Nenhuma' },\n { value: 'uppercase', text: 'MAIÚSCULAS (CSS)' },\n { value: 'lowercase', text: 'minúsculas (CSS)' },\n { value: 'capitalize', text: 'Capitalizar (CSS)' },\n { value: 'titleCase', text: 'Title Case' },\n { value: 'sentenceCase', text: 'Sentence case' },\n { value: 'kebab', text: 'kebab-case' },\n { value: 'snake', text: 'snake_case' },\n { value: 'camel', text: 'camelCase' },\n { value: 'pascal', text: 'PascalCase' },\n { value: 'slugify', text: 'slugify (a-z0-9-)' },\n { value: 'trim', text: 'trim (remover bordas)' },\n { value: 'collapseWhitespace', text: 'collapseWhitespace (normalizar espaços)' },\n { value: 'removeDiacritics', text: 'removeDiacritics (sem acentos)' },\n ],\n },\n {\n name: 'textTransformApply',\n label: 'Aplicar em',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'displayOnly',\n options: [\n { value: 'displayOnly', text: 'Exibição (visual)' },\n { value: 'saveOnly', text: 'Salvar (persistência)' },\n { value: 'both', text: 'Ambos' },\n ],\n },\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n {\n name: 'inputMode',\n label: 'Modo de entrada (mobile)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'text', text: 'Texto' },\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n { value: 'tel', text: 'Telefone' },\n { value: 'email', text: 'Email' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n ],\n },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n {\n name: 'inputType',\n label: 'Tipo de input (HTML5)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'text', text: 'Texto' },\n { value: 'email', text: 'Email' },\n { value: 'password', text: 'Senha' },\n { value: 'tel', text: 'Telefone' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n { value: 'number', text: 'Número' },\n { value: 'date', text: 'Data' },\n { value: 'datetime-local', text: 'Data/Hora local' },\n { value: 'time', text: 'Hora' },\n { value: 'month', text: 'Mês' },\n { value: 'week', text: 'Semana' },\n { value: 'color', text: 'Cor' },\n ],\n },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n {\n name: 'validators.validationDebounce',\n label: 'Debounce de validação (ms)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Estado de erro e interações avançadas\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n { name: 'disabledInteractive', label: 'Desabilitado interativo', editorType: 'checkbox', group: 'Material Design' },\n\n // Botão limpar (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Acessibilidade / Avançado\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', hint: '{ \"testId\": \"input-a\" }', group: 'Acessibilidade' },\n\n // Valor padrão\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Editor de metadados para componentes SELECT-like\n// Paridade com INPUT: grupos, linhas e propriedades canônicas\nexport const selectProperties: EditorProperty[] = [\n // 1) Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', row: 'icon.prefix', inline: true, hint: \"Material Symbols (ex.: mi:list). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', row: 'icon.prefix', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', row: 'icon.suffix', inline: true, hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', row: 'icon.suffix', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'panelSearchIcon', label: 'Ícone da busca (painel)', editorType: 'text', group: 'Ícones', row: 'icon.panelSearch', inline: true, hint: 'Ícone do campo de busca no painel (fallback: search).' },\n { name: 'panelSearchIconColor', label: 'Cor da busca (painel)', editorType: 'color', group: 'Ícones', row: 'icon.panelSearch', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n { name: 'panelResetIcon', label: 'Ícone de reset (painel)', editorType: 'text', group: 'Ícones', row: 'icon.panelReset', inline: true, hint: 'Ícone da ação limpar/reset no painel (fallback: restart_alt).' },\n { name: 'panelResetIconColor', label: 'Cor de reset (painel)', editorType: 'color', group: 'Ícones', row: 'icon.panelReset', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n { name: 'optionSelectedIcon', label: 'Ícone de selecionado', editorType: 'text', group: 'Ícones', row: 'icon.optionSelected', inline: true, hint: 'Ícone exibido em opções selecionadas (fallback: done).' },\n { name: 'optionSelectedIconColor', label: 'Cor do selecionado', editorType: 'color', group: 'Ícones', row: 'icon.optionSelected', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n\n // 2) Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo. Para múltiplos valores, use multiple=true.',\n },\n { name: 'emptyOptionText', label: 'Texto da opção vazia', editorType: 'text', group: 'Dados/Opções' },\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Dados/Opções', row: 'dados.inline1', inline: true, hint: 'Permite selecionar mais de um item.' },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo exibido ao carregar via API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo salvo como value vindo da API.' },\n { name: 'lookupIdKey', label: 'Lookup: chave de ID', editorType: 'text', group: 'Dados/Opções', hint: 'Usado por lookup inline para identificar o item (default: id).' },\n { name: 'lookupLabelKey', label: 'Lookup: chave de label', editorType: 'text', group: 'Dados/Opções', hint: 'Define qual campo textual é exibido no trigger.' },\n { name: 'lookupSubtitleKey', label: 'Lookup: chave de subtítulo', editorType: 'text', group: 'Dados/Opções', hint: 'Campo secundário exibido nas opções (quando disponível).' },\n\n // 3) Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n {\n name: 'loadOn',\n label: 'Carregar em',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'open', text: 'Ao abrir (padrão)' },\n { value: 'init', text: 'Na inicialização' },\n { value: 'none', text: 'Nenhum (manual)' },\n ],\n hint: \"Define quando o async-select realiza a primeira busca remota\",\n },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // 3.1) Dependências (Cascata Nativa – Fase 1)\n { name: 'dependencyFields', label: 'Campos dependentes (CSV ou JSON)', editorType: 'text', group: 'Fonte Remota', hint: \"Ex.: rotaId,destinoReqId\" },\n { name: 'resetOnDependentChange', label: 'Resetar ao mudar dependentes', editorType: 'checkbox', group: 'Fonte Remota' },\n { name: 'enableDependencyCascade', label: 'Habilitar cascata nativa', editorType: 'checkbox', group: 'Fonte Remota', hint: 'Desative quando Connections controlarem filterCriteria' },\n { name: 'dependencyFilterMap', label: 'Mapeamento de filtros (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"rotaId\": \"rotaId\", \"destinoReqId\": { \"key\": \"destinoId\", \"valuePath\": \"id\" } }' },\n { name: 'dependencyValuePath', label: 'Value path padrão (dep.)', editorType: 'text', group: 'Fonte Remota', hint: \"Ex.: 'id' (default) ou 'code'\" },\n {\n name: 'dependencyMergeStrategy',\n label: 'Merge de filtros (dep.)',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'merge', text: 'merge (padrão)' },\n { value: 'replace', text: 'replace (apenas chaves mapeadas)' },\n ],\n hint: 'merge preserva chaves externas; replace substitui apenas chaves mapeadas',\n },\n { name: 'dependencyDebounceMs', label: 'Debounce (ms) dependentes', editorType: 'number', group: 'Fonte Remota', hint: 'Padrão: 150' },\n {\n name: 'dependencyLoadOnChange', label: 'Recarregar ao mudar dependentes', editorType: 'select', group: 'Fonte Remota', options: [\n { value: 'respectLoadOn', text: 'Respeitar loadOn (padrão)' },\n { value: 'immediate', text: 'Imediato' },\n { value: 'manual', text: 'Manual (Connections disparam)' },\n ]\n },\n\n // 4) Formato/Comportamento\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Exibe opção para selecionar tudo (somente multiple).' },\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Mostra campo de busca; em remoto, filtra na API.' },\n { name: 'searchPlaceholder', label: 'Placeholder da busca', editorType: 'text', group: 'Formato/Comportamento', hint: 'Texto do campo de busca no popover/lista.' },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de itens quando multiple=true.' },\n\n // 5) Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // 6) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true, hint: 'Mostra botão para limpar seleção.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'clear.inline2', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true, hint: 'Exibe o botão apenas quando há valor.' },\n\n // 7) Aparência\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // 8) Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"select-a\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const transferListProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo. Para listas grandes, use resourcePath (lazy/paginação).',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Propriedade para exibir como texto ao carregar da API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Propriedade usada como value ao carregar da API.' },\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Dados/Opções', hint: 'Endpoint para carregar opções (suporta lazy load/paginação/virtualização).' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true } — filtro inicial enviado na busca remota.' },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fonte.inline1', inline: true, hint: 'Habilita busca; com resourcePath filtra no backend.' },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de itens transferidos (0 ou vazio = sem limite).' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Preencha quando o botão não tiver label visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos com help/error.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \\\"testId\\\": \\\"transfer-a\\\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const radioProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'description', label: 'Descrição', editorType: 'textarea', group: 'Geral', hint: 'Texto de apoio adicional do grupo de radio.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\",\"description\":\"Ajuda\",\"disabled\":false }] ou linhas: valor|rótulo. Apenas uma opção pode ser selecionada.',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo exibido ao carregar via API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo salvo como value vindo da API.' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota', hint: 'Endpoint para opções remotas.' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'text', group: 'Fonte Remota', hint: '{ \"active\": true } — filtro inicial na busca remota.' },\n\n // Formato/Comportamento\n { name: 'selectionMode', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'single', text: 'Escolha única' },\n ], hint: 'Contrato canônico do radio group.' },\n { name: 'variant', label: 'Variante', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'default', text: 'Default' },\n { value: 'compact', text: 'Compacto' },\n { value: 'tiles', text: 'Tiles' },\n ] },\n { name: 'density', label: 'Densidade', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'spacious', text: 'Espaçosa' },\n ] },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'vertical', text: 'Vertical' },\n ] },\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado aos radios.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const buttonToggleProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo.',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo exibido ao carregar via API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo salvo como value.' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota', hint: 'Endpoint para carregar opções.' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true } — filtro inicial enviado.' },\n\n // Formato/Comportamento\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Permite selecionar mais de um botão.' },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite quando multiple=true.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'legacy', text: 'Legacy' },\n { value: 'standard', text: 'Standard' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const treeSelectProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone do chip', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:account_tree). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone do chip', editorType: 'color', group: 'Ícones', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'panelSearchIcon', label: 'Ícone da busca (painel)', editorType: 'text', group: 'Ícones', row: 'icons.search', inline: true, hint: 'Ícone do campo de busca no painel (fallback: search).' },\n { name: 'panelSearchIconColor', label: 'Cor da busca (painel)', editorType: 'color', group: 'Ícones', row: 'icons.search', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n { name: 'panelToggleCloseIcon', label: 'Ícone toggle fechado', editorType: 'text', group: 'Ícones', row: 'icons.toggle', inline: true, hint: 'Ícone do trigger quando painel está fechado (fallback: expand_more).' },\n { name: 'panelToggleOpenIcon', label: 'Ícone toggle aberto', editorType: 'text', group: 'Ícones', row: 'icons.toggle', inline: true, hint: 'Ícone do trigger quando painel está aberto (fallback: expand_less).' },\n { name: 'panelToggleIconColor', label: 'Cor do toggle', editorType: 'color', group: 'Ícones', row: 'icons.toggle', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n { name: 'treeNodeExpandedIcon', label: 'Ícone nó expandido', editorType: 'text', group: 'Ícones', row: 'icons.node', inline: true, hint: 'Ícone do botão de nó aberto (fallback: expand_more).' },\n { name: 'treeNodeCollapsedIcon', label: 'Ícone nó recolhido', editorType: 'text', group: 'Ícones', row: 'icons.node', inline: true, hint: 'Ícone do botão de nó fechado (fallback: chevron_right).' },\n { name: 'treeNodeIconColor', label: 'Cor ícones de nó', editorType: 'color', group: 'Ícones', row: 'icons.node', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Nós (estáticos)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"label\":\"Um\", children:[...] }]. Para árvores grandes, considere lazy load/virtualização.',\n },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Habilita busca; com lazy load, filtra nós carregados.' },\n { name: 'searchPlaceholder', label: 'Placeholder da busca', editorType: 'text', group: 'Formato/Comportamento', hint: 'Texto exibido no campo de busca dentro do popover.' },\n { name: 'emptyStateText', label: 'Mensagem sem resultado', editorType: 'text', group: 'Formato/Comportamento', hint: 'Texto mostrado quando não houver nós visíveis.' },\n { name: 'leafOnly', label: 'Permitir apenas folhas', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Impede seleção de nós pais.' },\n { name: 'autoExpandOnSearch', label: 'Auto-expansão ao buscar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true, hint: 'Expande nós que correspondem ao termo de busca.' },\n { name: 'returnPath', label: 'Retornar caminho', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true, hint: 'Retorna array de ancestrais (caminho completo).' },\n { name: 'returnObject', label: 'Retornar objeto', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true, hint: 'Retorna o objeto completo do nó selecionado.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Use quando o botão não tiver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Aparência\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID/IDs de elementos de ajuda ou erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"tree-a\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Properties for Material Textarea editor (parity com INPUT onde aplicável)\nexport const textareaProperties: EditorProperty[] = [\n // Geral / Apresentação\n { name: 'label', label: 'Label', editorType: 'text', placeholder: 'Rótulo do campo', group: 'Geral', hint: 'Título exibido acima do textarea.' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral', hint: 'Texto temporário dentro do campo (ex.: Descreva o problema).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Ajuda curta exibida abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral', hint: 'Texto fixo antes do conteúdo digitado.' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral', hint: 'Texto fixo após o conteúdo digitado.' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: 'Valor inicial do textarea (pré-preenchimento).' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:edit). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n {\n name: 'textTransform',\n label: 'Transformação de texto',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'none', text: 'Nenhuma' },\n { value: 'uppercase', text: 'MAIÚSCULAS (CSS)' },\n { value: 'lowercase', text: 'minúsculas (CSS)' },\n { value: 'capitalize', text: 'Capitalizar (CSS)' },\n { value: 'titleCase', text: 'Title Case' },\n { value: 'sentenceCase', text: 'Sentence case' },\n { value: 'kebab', text: 'kebab-case' },\n { value: 'snake', text: 'snake_case' },\n { value: 'camel', text: 'camelCase' },\n { value: 'pascal', text: 'PascalCase' },\n { value: 'slugify', text: 'slugify (a-z0-9-)' },\n { value: 'trim', text: 'trim (remover bordas)' },\n { value: 'collapseWhitespace', text: 'collapseWhitespace (normalizar espaços)' },\n { value: 'removeDiacritics', text: 'removeDiacritics (sem acentos)' },\n ],\n hint: 'Transformação aplicada ao texto (visual ou na persistência).',\n },\n {\n name: 'textTransformApply',\n label: 'Aplicar em',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'displayOnly',\n options: [\n { value: 'displayOnly', text: 'Exibição (visual)' },\n { value: 'saveOnly', text: 'Salvar (persistência)' },\n { value: 'both', text: 'Ambos' },\n ],\n hint: 'Onde aplicar a transformação: visual, persistência ou ambos.',\n },\n { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe contador progressivo; combine com min/max length.' },\n { name: 'rows', label: 'Linhas (rows)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size', hint: 'Altura inicial em linhas (sem auto-resize).' },\n { name: 'cols', label: 'Colunas (cols)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size', hint: 'Largura em colunas de caracteres (modo monospace).' },\n {\n name: 'wrap',\n label: 'Quebra de linha (wrap)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'soft', text: 'Soft (visual, sem \\\\n)' },\n { value: 'hard', text: 'Hard (visual + \\\\n)' },\n { value: 'off', text: 'Off (sem quebra automática)' },\n ],\n hint: 'Define se insere quebras reais (hard) ou só visuais (soft/off).',\n },\n { name: 'autoResize', label: 'Auto-resize (CDK)', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true, hint: 'Ajusta a altura conforme o conteúdo (respeita min/max rows).' },\n { name: 'minRows', label: 'Mín. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true, hint: 'Altura mínima quando auto-resize está ativo.' },\n { name: 'maxRows', label: 'Máx. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true, hint: 'Limite de expansão do auto-resize.' },\n { name: 'resize', label: 'Redimensionamento (CSS resize)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'none', text: 'Nenhum' },\n { value: 'vertical', text: 'Vertical' },\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'both', text: 'Ambos' },\n ], hint: 'Permite o handle nativo de resize: vertical, horizontal ou ambos.' },\n { name: 'textAreaMode', label: 'Modo de edição', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'plain', text: 'Texto (normal)' },\n { value: 'code', text: 'Código (genérico)' },\n { value: 'markdown', text: 'Markdown' },\n { value: 'json', text: 'JSON' },\n { value: 'xml', text: 'XML' },\n { value: 'sql', text: 'SQL' },\n { value: 'log', text: 'Log' },\n ], hint: 'Ajusta o modo de edição/estilo (plain, código, markdown, JSON etc.).' },\n { name: 'showStats', label: 'Mostrar estatísticas (palavras/linhas)', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe contagem de palavras/linhas para textos longos.' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Valor do atributo autocomplete (ex.: on, off, email, name).' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true, hint: 'Ativa correção ortográfica do navegador.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true, hint: 'Impede alterações mas mantém scroll e seleção.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true, hint: 'Desativa foco e interação do usuário.' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true, hint: 'Foca o campo ao renderizar (use com moderação).' },\n { name: 'enableTabIndent', label: 'Tab: inserir indentação', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true, hint: 'Permite usar Tab para inserir espaços (modo código).' },\n { name: 'tabSize', label: 'Tamanho da indentação (espaços)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true, hint: 'Quantidade de espaços inseridos ao usar Tab.' },\n { name: 'maxLines', label: 'Máx. de linhas (bloqueia Enter)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true, hint: 'Impede novas quebras após atingir o limite.' },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n hint: 'Quando disparar validação: change, blur, submit ou imediato.',\n },\n { name: 'validators.validationDebounce', label: 'Debounce de validação (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true, hint: 'Atraso antes de validar (ex.: 300-500 ms).' },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra erros abaixo do campo em vez de tooltip.' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n hint: 'Posiciona a mensagem de erro (abaixo, acima ou tooltip).',\n },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige preenchimento do textarea.' },\n { name: 'minLength', label: 'Mínimo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax', hint: 'Comprimento mínimo aceito.' },\n { name: 'maxLength', label: 'Máximo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax', hint: 'Comprimento máximo (bloqueia ou mostra erro).' },\n { name: 'pattern', label: 'Pattern (regex)', editorType: 'text', hint: 'Regex de validação (ex.: /^foo.*/i).', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Texto exibido quando o campo é obrigatório e vazio.' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação', hint: 'Mensagem ao violar o mínimo de caracteres.' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação', hint: 'Mensagem ao violar o máximo de caracteres.' },\n { name: 'validators.patternMessage', label: 'Mensagem: padrão inválido', editorType: 'text', group: 'Validação', hint: 'Mensagem exibida quando a regex falha.' },\n\n // Ações (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Exibe botão de limpar o conteúdo.' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto do tooltip do botão clear.' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição de acessibilidade para o botão clear.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Mostra o botão clear apenas quando há texto.' },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n hint: 'Estilo do mat-form-field (fill ou outline).',\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n hint: 'Paleta de cor aplicada ao campo.',\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n hint: 'Quando o label flutua (auto ou sempre visível).',\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n hint: 'Altura fixa ou dinâmica para hints/erros.',\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência', hint: 'Remove o asterisco de obrigatório do label.' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n hint: 'Quando exibir erros: padrão, ao sujar, enviar ou imediato.',\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Descrição acessível quando o label não for suficiente.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos que descrevem o campo (separar por espaço).' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de labels associados ao campo.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade', hint: 'Ordem de tabulação; 0 segue fluxo, -1 remove do tab.' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', hint: '{ \\\"testId\\\": \\\"textarea-a\\\" }', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Editor de metadados para NUMBER (numericTextBox)\n// Paridade com INPUT, cobrindo grupos e propriedades canônicas\nexport const numberProperties: EditorProperty[] = [\n // 1) Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:calculate). Use o seletor ao lado para buscar.' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n\n // 3) Dados/Opções\n // (sem opções específicas)\n\n // 4) Formato/Comportamento\n { name: 'step', label: 'Step (incremento)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento em unidades; combine com min/max (ex.: 0.01).' },\n { name: 'numberFormat.decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true, hint: 'Precisão exibida/aceita (ex.: 2).' },\n { name: 'showGrouping', label: 'Agrupar milhares', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true, hint: 'Mostra separador de milhar sem alterar o valor salvo.' },\n {\n name: 'inputMode',\n label: 'Modo de entrada',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n ],\n },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles2', inline: true },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comp.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n { name: 'validators.validationDebounce', label: 'Debounce (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.validation', inline: true },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // 5) Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true, hint: 'Valor mínimo aceito; use com step.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true, hint: 'Valor máximo aceito.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // 6) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true, hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'acoes.inline2', hint: 'Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'acoes.inline2', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'acoes.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'acoes.inline2', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true, hint: 'Exibe o botão apenas quando há valor.' },\n\n // 7) Aparência\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // 8) Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando o label não estiver visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"number-a\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const dateProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'date', group: 'Geral', hint: 'Data (YYYY-MM-DD)' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_today). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minDate', label: 'Mínima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'maxDate', label: 'Máxima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: data mínima', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: data máxima', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'startView', label: 'Visão inicial', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'month', text: 'Mês' },\n { value: 'year', text: 'Ano' },\n { value: 'multi-year', text: 'Décadas' },\n ] },\n { name: 'startAt', label: 'Abrir em', editorType: 'date', group: 'Formato/Comportamento' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'closeOnSelect', label: 'Fechar ao selecionar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'clear.inline2', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const dateRangeProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral', hint: 'Título exibido no topo do campo.' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto auxiliar abaixo do campo (útil para instruções curtas).' },\n { name: 'startPlaceholder', label: 'Placeholder (início)', editorType: 'text', group: 'Geral', hint: 'Texto temporário no campo inicial (ex.: 01/01/2025).' },\n { name: 'endPlaceholder', label: 'Placeholder (fim)', editorType: 'text', group: 'Geral', hint: 'Texto temporário no campo final (ex.: 31/12/2025).' },\n { name: 'defaultValue.startDate', label: 'Valor padrão (início)', editorType: 'date', group: 'Geral', hint: 'Data inicial padrão no formato YYYY-MM-DD; usa fuso local.' },\n { name: 'defaultValue.endDate', label: 'Valor padrão (fim)', editorType: 'date', group: 'Geral', hint: 'Data final padrão no formato YYYY-MM-DD; usa fuso local.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:date_range). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', row: 'icon.colors', inline: true, hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', row: 'icon.colors', inline: true, hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n\n // Formato/Comportamento\n {\n name: 'startView', label: 'Visão inicial', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'month', text: 'Mês' },\n { value: 'year', text: 'Ano' },\n { value: 'multi-year', text: 'Décadas' },\n ], hint: 'Visão mostrada ao abrir o calendário (padrão: mês).'\n },\n { name: 'startAt', label: 'Abrir em', editorType: 'date', group: 'Formato/Comportamento', hint: 'Data inicial do calendário (YYYY-MM-DD) quando não há valor selecionado.' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true, hint: 'Abre o datepicker em modo tela cheia para toque.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige seleção de intervalo (início e fim).' },\n { name: 'minDate', label: 'Mínima', editorType: 'date', group: 'Validação', row: 'val.minmax', hint: 'Data mínima permitida (YYYY-MM-DD).' },\n { name: 'maxDate', label: 'Máxima', editorType: 'date', group: 'Validação', row: 'val.minmax', hint: 'Data máxima permitida (YYYY-MM-DD).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Texto de erro quando o intervalo é obrigatório e não preenchido.' },\n\n // Aparência (Renamed from Material Design)\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ], hint: 'Estilo do mat-form-field (fill ou outline).'\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Paleta aplicada ao campo e calendário.'\n },\n {\n name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ], hint: 'Quando o label flutua (auto ou sempre visível).'\n },\n {\n name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ], hint: 'Altura fixa ou dinâmica para hints/erros.'\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência', hint: 'Remove o asterisco de obrigatório do label.' },\n {\n name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Aparência', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ], hint: 'Quando exibir erros: padrão, ao sujar, ao enviar ou imediato.'\n },\n\n // Acessibilidade\n { name: 'startAriaLabel', label: 'ARIA (início)', editorType: 'text', group: 'Acessibilidade', hint: 'Descrição de acessibilidade para o campo inicial; use quando o label não for suficiente.' },\n { name: 'endAriaLabel', label: 'ARIA (fim)', editorType: 'text', group: 'Acessibilidade', hint: 'Descrição de acessibilidade para o campo final; use quando o label não for suficiente.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade', hint: 'Ordem de tabulação; 0 segue fluxo padrão, -1 remove do tab.' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: 'Mapa JSON de data-* (ex.: { \\\"testId\\\": \\\"date-range-a\\\" }).' },\n\n // Atalhos\n { name: 'showShortcuts', label: 'Habilitar atalhos', editorType: 'checkbox', group: 'Atalhos', hint: 'Exibe painel lateral com presets de datas.' },\n {\n name: 'shortcutsPosition', label: 'Posição do painel', editorType: 'select', group: 'Atalhos', options: [\n { value: 'left', text: 'Esquerda' },\n { value: 'right', text: 'Direita' },\n ], hint: 'Escolhe em qual lado o painel de atalhos abre.'\n },\n { name: 'applyOnShortcutClick', label: 'Aplicar ao clicar', editorType: 'checkbox', group: 'Atalhos', hint: 'Compatibilidade legada para atalhos do date-range base. No inlineDateRange, prefira inlineQuickPresetsApplyMode.' },\n {\n name: 'shortcuts', label: 'Atalhos visíveis', editorType: 'select', group: 'Atalhos', multiple: true, options: [\n { value: 'today', text: 'Hoje' },\n { value: 'yesterday', text: 'Ontem' },\n { value: 'thisWeek', text: 'Esta semana' },\n { value: 'lastWeek', text: 'Semana passada' },\n { value: 'thisMonth', text: 'Este mês' },\n { value: 'lastMonth', text: 'Mês passado' },\n { value: 'thisYear', text: 'Este ano' },\n { value: 'lastYear', text: 'Ano passado' },\n ], hint: 'Selecione quais presets mostrar no painel de atalhos.'\n },\n { name: 'inlineQuickPresets.enabled', label: 'Atalhos inline', editorType: 'checkbox', group: 'Atalhos', hint: 'Exibe chips rápidos ao lado do campo no modo inlineDateRange.' },\n { name: 'inlineQuickPresets.maxVisible', label: 'Qtd. chips inline', editorType: 'number', group: 'Atalhos', hint: 'Define o número máximo de atalhos inline visíveis (1 a 8).' },\n { name: 'inlineQuickPresetsAriaLabel', label: 'ARIA atalhos inline', editorType: 'text', group: 'Atalhos', hint: 'Rótulo de acessibilidade do grupo de atalhos rápidos inline.' },\n {\n name: 'inlineQuickPresetsApplyMode', label: 'Modo de aplicação', editorType: 'select', group: 'Atalhos', options: [\n { value: 'auto', text: 'Auto apply' },\n { value: 'confirm', text: 'Confirmar no rodapé' },\n ], hint: 'No inlineDateRange: auto aplica imediatamente; confirm mantém seleção em rascunho até clicar em Aplicar.'\n },\n { name: 'inlineQuickPresetsCancelLabel', label: 'Label botão cancelar', editorType: 'text', group: 'Atalhos', hint: 'Texto do botão de cancelamento no rodapé do overlay.' },\n { name: 'inlineQuickPresetsCancelAriaLabel', label: 'ARIA botão cancelar', editorType: 'text', group: 'Atalhos', hint: 'Descrição de acessibilidade para o botão cancelar no rodapé do overlay.' },\n { name: 'inlineQuickPresetsApplyLabel', label: 'Label botão aplicar', editorType: 'text', group: 'Atalhos', hint: 'Texto do botão de aplicar no rodapé do overlay.' },\n { name: 'inlineQuickPresetsApplyAriaLabel', label: 'ARIA botão aplicar', editorType: 'text', group: 'Atalhos', hint: 'Descrição de acessibilidade para o botão aplicar no rodapé do overlay.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const datetimeLocalProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:schedule). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada (mobile)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'text', text: 'Texto' },\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n { value: 'tel', text: 'Telefone' },\n { value: 'email', text: 'Email' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n ] },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações: Não expõe Clear (componente não implementa botão de limpar)\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Native <input type=\"date\"> editor properties\nexport const dateInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM-DD)', editorType: 'date', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:event). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínima (YYYY-MM-DD)', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máxima (YYYY-MM-DD)', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações: Não expõe Clear (componente não implementa botão de limpar)\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timeInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (HH:mm[:ss])', editorType: 'text', group: 'Geral', hint: 'Ex.: 08:30 ou 08:30:45. Formato 24h.' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:schedule).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb (ex.: #ff0000).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb (ex.: #ff0000).' },\n { name: 'panelToggleCloseIcon', label: 'Ícone toggle fechado', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está fechado (fallback: expand_more).' },\n { name: 'panelToggleOpenIcon', label: 'Ícone toggle aberto', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está aberto (fallback: expand_less).' },\n { name: 'panelToggleIconColor', label: 'Cor do toggle', editorType: 'color', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n { name: 'optionSelectedIcon', label: 'Ícone selecionado', editorType: 'text', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'Ícone da opção selecionada na lista (fallback: check).' },\n { name: 'optionSelectedIconColor', label: 'Cor selecionado', editorType: 'color', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento em segundos (ex.: 60 = 1 min).' },\n { name: 'interval', label: 'Intervalo (segundos ou 30m)', editorType: 'text', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: intervalo entre horários.' },\n { name: 'timeOptions', label: 'Opções de horário (uma por linha)', editorType: 'textarea', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: lista manual HH:mm ou HH:mm:ss.' },\n { name: 'stepMinute', label: 'Passo minuto (inline)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: incremento de minutos.' },\n { name: 'stepSecond', label: 'Passo segundo (inline)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: incremento de segundos.' },\n { name: 'showSeconds', label: 'Exibir segundos (inline)', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'inlineTimeMode', label: 'Modo inline', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto (recomendado)' },\n { value: 'columns', text: 'Colunas (hora/min/seg)' },\n { value: 'list', text: 'Lista única' },\n ]\n },\n { name: 'inlineListMaxOptions', label: 'Auto: máximo para lista', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.hourLabel', label: 'Inline: rótulo hora', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.minuteLabel', label: 'Inline: rótulo minuto', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.secondLabel', label: 'Inline: rótulo segundo', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.emptyStateLabel', label: 'Inline: vazio', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.openPanelAriaLabel', label: 'Inline: aria abrir', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.closePanelAriaLabel', label: 'Inline: aria fechar', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Atributo HTML autocomplete (ex.: off, on).' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento', hint: 'Dica para teclado virtual (ex.: numeric).' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário mínimo permitido (ex.: 08:00 ou 08:00:30).' },\n { name: 'max', label: 'Máximo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário máximo permitido (ex.: 18:00 ou 18:30:45).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n {\n name: 'materialDesign.density', label: 'Densidade', editorType: 'select', group: 'Aparência', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta o tamanho base do inline (compacta, confortável ou densa).',\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n {\n name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ]\n },\n {\n name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ]\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência' },\n {\n name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Aparência', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que descreve este campo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que rotula este campo.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: 'Objeto JSON com atributos data-*.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timePickerProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (exibição)', editorType: 'text', group: 'Geral', hint: 'Ex.: 08:30 ou 08:30:45 (HH:mm[:ss]).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:schedule).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (hex/rgb).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (hex/rgb).' },\n { name: 'panelToggleCloseIcon', label: 'Ícone toggle fechado', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está fechado (fallback: expand_more).' },\n { name: 'panelToggleOpenIcon', label: 'Ícone toggle aberto', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está aberto (fallback: expand_less).' },\n { name: 'panelToggleIconColor', label: 'Cor do toggle', editorType: 'color', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n { name: 'optionSelectedIcon', label: 'Ícone selecionado', editorType: 'text', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'Ícone da opção selecionada na lista (fallback: check).' },\n { name: 'optionSelectedIconColor', label: 'Cor selecionado', editorType: 'color', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n\n // Dados/Opções\n { name: 'timeOptions', label: 'Opções (uma por linha)', editorType: 'textarea', group: 'Dados/Opções', hint: 'Lista manual de horários (HH:mm ou HH:mm:ss), um por linha; use para presets.' },\n\n // Formato/Comportamento\n { name: 'interval', label: 'Intervalo (segundos ou 30m)', editorType: 'text', group: 'Formato/Comportamento', hint: 'Intervalo padrão (ex.: 900, 30m, 1h), respeitando min/max.' },\n {\n name: 'inlineTimeMode',\n label: 'Modo inline',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'auto', text: 'Auto (recomendado)' },\n { value: 'columns', text: 'Colunas (hora/min/seg)' },\n { value: 'list', text: 'Lista única' },\n ],\n hint: 'No filtro inline: define seletor por colunas independentes ou lista única.',\n },\n {\n name: 'inlineListMaxOptions',\n label: 'Auto: máximo para lista',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'No modo auto, até este limite usa lista única; acima usa colunas.',\n },\n { name: 'openOnClick', label: 'Abrir ao clicar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true, hint: 'Modo otimizado para toque (dialog fullscreen).' },\n {\n name: 'format', label: 'Formato', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: '24h', text: '24 horas' },\n { value: '12h', text: '12 horas' },\n ]\n },\n { name: 'showSeconds', label: 'Exibir segundos', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Habilita seleção HH:mm:ss.' },\n { name: 'stepMinute', label: 'Passo (min)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true, hint: 'Incremento de minutos.' },\n { name: 'stepSecond', label: 'Passo (seg)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true, hint: 'Incremento de segundos.' },\n { name: 'timeFilter', label: 'Filtro (id função)', editorType: 'text', group: 'Formato/Comportamento', hint: 'ID de função para filtrar horários.' },\n { name: 'inlineTexts.hourLabel', label: 'Inline: rótulo hora', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.minuteLabel', label: 'Inline: rótulo minuto', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.secondLabel', label: 'Inline: rótulo segundo', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.emptyStateLabel', label: 'Inline: vazio', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.openPanelAriaLabel', label: 'Inline: aria abrir', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.closePanelAriaLabel', label: 'Inline: aria fechar', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário mínimo permitido (HH:mm ou HH:mm:ss).' },\n { name: 'max', label: 'Máximo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário máximo permitido (HH:mm ou HH:mm:ss).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n {\n name: 'materialDesign.density', label: 'Densidade', editorType: 'select', group: 'Aparência', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta o tamanho base do inline (compacta, confortável ou densa).',\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela quando o label não estiver visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos que descrevem o campo/hint/erros.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timeRangeProperties: EditorProperty[] = [\n // Geral (defaultValue como objeto start/end)\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'inlinePanelTitle', label: 'Título do painel inline', editorType: 'text', group: 'Geral', hint: 'Título exibido no popover do range inline.' },\n { name: 'startLabel', label: 'Label (início)', editorType: 'text', group: 'Geral', row: 'geral.labels', inline: true, hint: 'Rótulo do campo inicial no painel inline.' },\n { name: 'endLabel', label: 'Label (fim)', editorType: 'text', group: 'Geral', row: 'geral.labels', inline: true, hint: 'Rótulo do campo final no painel inline.' },\n { name: 'defaultValue.start', label: 'Início (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true, hint: 'Valor inicial padrão no formato HH:mm (ex.: 08:00).' },\n { name: 'defaultValue.end', label: 'Fim (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true, hint: 'Valor final padrão no formato HH:mm (ex.: 18:00).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:schedule).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb.' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb.' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Granularidade em segundos (ex.: 300 = passos de 5 min).' },\n { name: 'stepMinute', label: 'Step (minutos)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Granularidade em minutos para o slider inline (ex.: 15).' },\n { name: 'minTime', label: 'Limite inicial inline (HH:mm)', editorType: 'text', group: 'Formato/Comportamento', row: 'comp.inline.bounds', inline: true, hint: 'Limite inferior usado pelo slider inline.' },\n { name: 'maxTime', label: 'Limite final inline (HH:mm)', editorType: 'text', group: 'Formato/Comportamento', row: 'comp.inline.bounds', inline: true, hint: 'Limite superior usado pelo slider inline.' },\n {\n name: 'showTicks',\n label: 'Exibir marcações (ticks)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: true, text: 'Sempre' },\n { value: false, text: 'Nunca' },\n ],\n hint: 'Controla as marcações visuais do slider inline.',\n },\n { name: 'inlineTimeQuickPresets', label: 'Atalhos rápidos (inline)', editorType: 'textarea', group: 'Formato/Comportamento', hint: 'JSON array (ex.: [\\\"manha\\\",\\\"comercial\\\"]) ou objetos de preset.' },\n {\n name: 'inlineTimeTrackShifts',\n label: 'Gradiente por turno (inline)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'JSON array com turnos para colorir a barra (ex.: [{\\\"id\\\":\\\"manha\\\",\\\"start\\\":\\\"06:00\\\",\\\"end\\\":\\\"12:00\\\",\\\"color\\\":\\\"#0a84ff\\\"}]).',\n },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Abre o seletor em modo tela cheia (UX mobile).' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Min (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite inicial no formato HH:mm; usado para ambos os campos.' },\n { name: 'max', label: 'Max (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite final no formato HH:mm.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const monthInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_view_month). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-MM)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-MM)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const weekInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-Www)', editorType: 'text', group: 'Geral', hint: 'Semana ISO, ex.: 2024-W05.' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:date_range). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Semana mínima no formato ISO (ex.: 2024-W01).' },\n { name: 'max', label: 'Máximo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Semana máxima no formato ISO (ex.: 2024-W52).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const emailInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:mail). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mín. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'maxLength', label: 'Máx. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: minLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: maxLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: regex', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const passwordInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:lock). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Sugestão: \"current-password\" ou \"new-password\".' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mín. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true, hint: 'Ex.: 8. Combina com contador.' },\n { name: 'maxLength', label: 'Máx. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true, hint: 'Evita senhas longas demais.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: minLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: maxLength', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const urlInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (URL)', editorType: 'text', group: 'Geral', hint: 'Inclua protocolo (ex.: https://dominio.com/caminho).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:link). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Atributo HTML autocomplete (ex.: url, off).' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação', hint: 'Regex para URL aceita (ex.: ^https?://).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n { name: 'validators.patternMessage', label: 'Mensagem: regex', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const searchInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:search). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Ex.: search ou off.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n // (herda aparência padrão do input base)\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const phoneInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:call). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Ex.: tel.' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento', hint: 'Sugestão de teclado (ex.: tel, numeric).' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n // (herda aparência padrão do input base)\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const colorInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: 'Ex.: #rrggbb, rgb()/rgba().' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n { name: 'palettePreset', label: 'Paleta (preset)', editorType: 'select', group: 'Dados/Opções', options: [\n { value: 'material', text: 'Material' },\n { value: 'office', text: 'Office' },\n { value: 'basic', text: 'Básico' },\n ] },\n { name: 'paletteColors', label: 'Paleta: cores (JSON ou linhas)', editorType: 'textarea', group: 'Dados/Opções', hint: \"JSON array ou uma cor por linha (#hex ou rgba/hsl).\" },\n { name: 'columns', label: 'Paleta: colunas', editorType: 'number', group: 'Dados/Opções', defaultValue: 8, hint: 'Quantidade de colunas exibidas.' },\n\n // Formato/Comportamento\n { name: 'popupWidth', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Formato/Comportamento', defaultValue: '320', hint: 'Ex.: 320 ou 20rem.' },\n { name: 'preview', label: 'Mostrar preview', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe cor selecionada.' },\n { name: 'showRecent', label: 'Mostrar recentes', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe cores usadas recentemente.' },\n { name: 'maxRecent', label: 'Qtd. de recentes', editorType: 'number', group: 'Formato/Comportamento', defaultValue: 12, hint: 'Limite de cores recentes.' },\n { name: 'showNativeOption', label: 'Mostrar seletor nativo', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Adiciona input color nativo como opção.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência/Material' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// ColorPicker v2 property editor (pdx-color-picker)\nexport const colorPickerProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: 'Ex.: #rrggbb, rgba(255,0,0,0.5) ou hsl().' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'icon', label: 'Ícone', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'svgIcon', label: 'SVG icon', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone SVG registrado.' },\n { name: 'iconClass', label: 'Icon class (JSON/string)', editorType: 'textarea', group: 'Ícones', hint: 'string | string[] | Record<string, boolean>.' },\n\n // Dados/Opções\n {\n name: 'paletteSettings.preset',\n label: 'Palette: preset',\n editorType: 'select',\n group: 'Dados/Opções',\n defaultValue: 'material',\n options: [\n { value: 'material', text: 'Material' },\n { value: 'office', text: 'Office' },\n { value: 'basic', text: 'Básico' },\n ],\n },\n {\n name: 'paletteSettings.colors',\n label: 'Palette: cores (JSON ou linhas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: \"JSON array ou uma cor por linha (#hex, rgb(), rgba(), hsl()).\",\n },\n { name: 'paletteSettings.columns', label: 'Palette: colunas', editorType: 'number', group: 'Dados/Opções', defaultValue: 8, hint: 'Quantidade de colunas exibidas na paleta.' },\n\n // Formato/Comportamento\n {\n name: 'format',\n label: 'Formato de saída',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'rgba',\n options: [\n { value: 'hex', text: 'HEX' },\n { value: 'rgb', text: 'RGB' },\n { value: 'rgba', text: 'RGBA' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n { name: 'adaptiveMode', label: 'Adaptive (BottomSheet/Drawer)', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Abre em modo adaptive em telas menores.' },\n { name: 'adaptiveTitle', label: 'Adaptive title', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'adaptiveSubtitle', label: 'Adaptive subtitle', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'popupSettings.width', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Formato/Comportamento', defaultValue: '340', hint: 'Ex.: 340 ou 20rem.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Exibe botão para limpar a cor selecionada.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Preencha quando o botão não tiver label visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Aparência/Material\n {\n name: 'fillMode',\n label: 'Fill mode',\n editorType: 'select',\n group: 'Aparência/Material',\n defaultValue: 'solid',\n options: [\n { value: 'solid', text: 'Solid' },\n { value: 'flat', text: 'Flat' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'rounded',\n label: 'Rounded',\n editorType: 'select',\n group: 'Aparência/Material',\n defaultValue: 'medium',\n options: [\n { value: 'none', text: 'None' },\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n { value: 'full', text: 'Full' },\n ],\n },\n {\n name: 'size',\n label: 'Size',\n editorType: 'select',\n group: 'Aparência/Material',\n defaultValue: 'medium',\n options: [\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n ],\n },\n\n // Acessibilidade\n { name: 'tabindex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n\n // Atalhos/Preview\n {\n name: 'views',\n label: \"Views (JSON: ['gradient','palette'])\",\n editorType: 'textarea',\n group: 'Atalhos/Preview',\n hint: \"JSON array. Ex.: ['gradient','palette']\",\n defaultValue: \"['gradient','palette']\",\n },\n {\n name: 'activeView',\n label: 'View ativa',\n editorType: 'select',\n group: 'Atalhos/Preview',\n options: [\n { value: 'gradient', text: 'Gradient' },\n { value: 'palette', text: 'Palette' },\n ],\n },\n { name: 'preview', label: 'Mostrar preview (pane)', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe área de preview da cor atual.' },\n { name: 'showRecent', label: 'Mostrar recentes', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe cores usadas recentemente.' },\n { name: 'maxRecent', label: 'Qtd. de recentes', editorType: 'number', group: 'Atalhos/Preview', defaultValue: 12, hint: 'Quantidade máxima de cores recentes.' },\n { name: 'showNativeOption', label: 'Mostrar seletor nativo', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe input color nativo como opção.' },\n {\n name: 'actionsLayout',\n label: 'Ações (layout)',\n editorType: 'select',\n group: 'Atalhos/Preview',\n defaultValue: 'end',\n options: [\n { value: 'start', text: 'Início' },\n { value: 'end', text: 'Fim' },\n ],\n },\n\n // Gradient\n { name: 'gradientSettings.showOpacity', label: 'Gradiente: transparência (alpha)', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe controle de alpha no gradient.' },\n {\n name: 'gradientSettings.channel',\n label: 'Gradiente: canal',\n editorType: 'select',\n group: 'Atalhos/Preview',\n defaultValue: 'hsv',\n options: [\n { value: 'hsv', text: 'HSV' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const ratingProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'icon', label: 'Ícone preenchido', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:star). Use o seletor ao lado para buscar.' },\n { name: 'emptyIcon', label: 'Ícone vazio', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:star_border). Use o seletor ao lado para buscar.' },\n { name: 'svgIcon', label: 'SVG (preenchido)', editorType: 'text', group: 'Ícones' },\n { name: 'svgIconOutline', label: 'SVG (vazio)', editorType: 'text', group: 'Ícones' },\n\n // Dados/Opções\n // (sem opções)\n\n // Formato/Comportamento\n { name: 'max', label: 'Quantidade de itens', editorType: 'number', group: 'Formato/Comportamento', hint: 'Quantidade de ícones (ex.: 5).' },\n { name: 'allowHalf', label: 'Ativar allowHalf', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Habilita seleção 0.5 (ex.: 3.5 estrelas).' },\n { name: 'selection', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'continuous', text: 'Contínuo' },\n { value: 'single', text: 'Único' },\n ] },\n { name: 'size', label: 'Tamanho', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'small', text: 'Pequeno' },\n { value: 'medium', text: 'Médio' },\n { value: 'large', text: 'Grande' },\n ] },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige ao menos uma seleção (note: ignora 0 quando obrigatório).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'ratingColor', label: 'Cor do preenchimento', editorType: 'color', group: 'Aparência', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'outlineColor', label: 'Cor do contorno', editorType: 'color', group: 'Aparência', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Acessibilidade\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const chipInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n // (sem ícones)\n\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções', hint: 'Ex.: [{\"value\":1,\"text\":\"Um\"}] ou \"1|Um\" em cada linha.' },\n { name: 'resourcePath', label: 'Resource Path (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true, hint: 'Endpoint para buscar opções.' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true }' },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo exibido ao carregar da API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo salvo como value.' },\n\n // Formato/Comportamento\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de chips (0 = sem limite).' },\n { name: 'removable', label: 'Removível', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true, hint: 'Permite remover chips usando ícone/backspace.' },\n { name: 'addOnBlur', label: 'Adicionar ao sair', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true, hint: 'Cria chip ao sair do campo (quando houver texto).' },\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Habilita autocomplete para sugestões.' },\n { name: 'minLength', label: 'Mín. caracteres busca', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true, hint: 'Quantos caracteres antes de buscar sugestões.' },\n { name: 'validationDebounce', label: 'Debounce busca (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true, hint: 'Tempo em ms para disparar busca/validação.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"chips-a\" }' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar chips.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver chips.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const checkboxGroupProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'description', label: 'Descrição', editorType: 'textarea', group: 'Geral', hint: 'Texto de apoio adicional para checkbox booleano/consent.' },\n\n // Ícones\n // (sem ícones)\n\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções', hint: 'Ex.: [{\"value\":1,\"text\":\"Um\",\"description\":\"Ajuda\",\"disabled\":false}] ou \"1|Um\" em cada linha.' },\n { name: 'resourcePath', label: 'Recurso (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true, hint: 'Endpoint para carregar opções.' },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true } — filtro inicial remoto.' },\n { name: 'optionLabelKey', label: 'Chave rótulo', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo exibido ao carregar da API.' },\n { name: 'optionValueKey', label: 'Chave valor', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo salvo como value.' },\n\n // Formato/Comportamento\n { name: 'selectionMode', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'boolean', text: 'Booleano simples' },\n { value: 'multiple', text: 'Múltipla seleção' },\n ], hint: 'Define a semântica do runtime. Sem valor, o legado infere pelo conjunto de opções.' },\n { name: 'variant', label: 'Variante', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'default', text: 'Default' },\n { value: 'consent', text: 'Consentimento' },\n { value: 'compact', text: 'Compacto' },\n { value: 'tiles', text: 'Tiles' },\n ] },\n { name: 'density', label: 'Densidade', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'spacious', text: 'Espaçosa' },\n ] },\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra campo de busca (em remoto, filtra na API).' },\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Inclui opção para marcar todos.' },\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de itens marcados (0 = sem limite).' },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'vertical', text: 'Vertical' },\n ] },\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'indeterminate', label: 'Indeterminado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra estado parcial (ex.: dependente de filhos).' },\n { name: 'links', label: 'Links ricos (JSON)', editorType: 'textarea', group: 'Formato/Comportamento', hint: 'Ex.: [{\"label\":\"Política\",\"href\":\"https://...\",\"target\":\"_blank\"}]. Usado em modo boolean/consent.' },\n { name: 'linkText', label: 'Texto do link', editorType: 'text', group: 'Formato/Comportamento', hint: 'Rótulo do link associado.' },\n { name: 'linkUrl', label: 'URL do link', editorType: 'text', group: 'Formato/Comportamento', hint: 'Ex.: https://dominio...' },\n { name: 'linkTarget', label: 'Alvo do link', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: '_self', text: 'Mesma janela' },\n { value: '_blank', text: 'Nova janela' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'requiredChecked', label: 'Exigir marcado', editorType: 'checkbox', group: 'Validação', hint: 'Para consentimentos e aceite obrigatório.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado aos checkboxes.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const toggleProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (boolean)', editorType: 'checkbox', group: 'Geral', hint: 'Estado inicial do toggle.' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Formato/Comportamento\n {\n name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ], hint: 'Posição do texto em relação ao switch.'\n },\n { name: 'inlineLabelVisible', label: 'Exibir label inline', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'No modo inline, mostra/oculta o texto ao lado do switch.' },\n { name: 'hideIcon', label: 'Ocultar ícone', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Remove o ícone de check/x dentro do switch.' },\n { name: 'disableRipple', label: 'Desabilitar ripple', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar o estado do toggle.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Use quando o botão não tiver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n\n // Validação\n { name: 'requiredTrue', label: 'Exigir verdadeiro', editorType: 'checkbox', group: 'Validação', hint: 'Valida se o toggle está marcado (ex.: termos de uso).' },\n { name: 'validators.requiredTrueMessage', label: 'Mensagem: exigir verdadeiro', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Cor do tema quando ativado.'\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const sliderProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n // (sem ícones)\n\n // Dados/Opções\n // (sem opções)\n\n // Formato/Comportamento\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento entre valores (ex.: 1, 0.5). Combine com min/max.' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe valor sobre o thumb ao arrastar.' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true, hint: 'Altera para eixo Y.' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true, hint: 'Inverte direção (direita→esquerda).' },\n { name: 'showTicks', label: 'Ticks', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: false, text: 'Sem ticks' },\n { value: true, text: 'Com ticks' },\n { value: 'auto', text: 'Auto' },\n ], hint: 'Marcas na trilha; auto calcula com base no step.' },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe ticks/labels fixos para valores discretos.' },\n\n // Validação\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado ao slider.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const rangeSliderProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:tune).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n\n // Dados/Opções\n // (sem opções)\n\n // Formato/Comportamento\n { name: 'mode', label: 'Modo', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'single', text: 'Único' },\n { value: 'range', text: 'Faixa' },\n ], hint: 'Escolha faixa para dois marcadores.' },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento entre valores (ex.: 1, 0.5). Combine com min/max.' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe o valor sobre o thumb ao arrastar.' },\n { name: 'showTicks', label: 'Ticks', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: false, text: 'Sem ticks' },\n { value: true, text: 'Com ticks' },\n { value: 'auto', text: 'Auto' },\n ], hint: 'Marcas na trilha; auto calcula com base no step.' },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra valor fixo por tick; use com showTicks.' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Inverte para eixo Y.' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Inverte a direção (direita→esquerda).' },\n { name: 'displayWith', label: 'DisplayWith (id função)', editorType: 'text', group: 'Formato/Comportamento', hint: 'Função para formatar valores (ex.: percentual).' },\n { name: 'showInputs', label: 'Mostrar inputs', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe campos numéricos para digitar valores.' },\n {\n name: 'quickPresets',\n label: 'Presets rápidos (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON. Ex.: [{\\\"label\\\":\\\"Até 5k\\\",\\\"end\\\":5000},{\\\"label\\\":\\\"5k-10k\\\",\\\"start\\\":5000,\\\"end\\\":10000}]',\n },\n {\n name: 'quickPresetsAuto',\n label: 'Presets automáticos',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Gera presets automaticamente com base em min/max quando quickPresets não for informado.',\n },\n {\n name: 'quickPresetsLabels',\n label: 'Rótulos presets auto (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Objeto JSON opcional. Ex.: {\\\"uptoMid\\\":\\\"Até mediana\\\",\\\"fromMid\\\":\\\"Da mediana em diante\\\",\\\"full\\\":\\\"Faixa total\\\"}',\n },\n {\n name: 'inlineTexts',\n label: 'Textos inline (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Objeto JSON opcional. Ex.: {\\\"minLabel\\\":\\\"Mín.\\\",\\\"maxLabel\\\":\\\"Máx.\\\",\\\"valueLabel\\\":\\\"Valor\\\",\\\"quickPresetsLabel\\\":\\\"Faixas\\\"}',\n },\n\n // Validação\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor mínimo permitido.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor máximo permitido.' },\n { name: 'minDistance', label: 'Distância mínima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true, hint: 'Mínimo entre os dois thumbs no modo faixa.' },\n { name: 'maxDistance', label: 'Distância máxima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true, hint: 'Máximo entre os thumbs.' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'validators.rangeMessage', label: 'Mensagem: ordem do range', editorType: 'text', group: 'Validação' },\n { name: 'validators.distanceMessage', label: 'Mensagem: distância', editorType: 'text', group: 'Validação' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor/faixa.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Use quando o botão não tiver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n\n // Aparência\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado ao slider.' },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'inlineAutoSize.panelMinWidth', label: 'Painel mínimo (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura mínima do painel inline em px.' },\n { name: 'inlineAutoSize.panelMaxWidth', label: 'Painel máximo (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura máxima do painel inline em px.' },\n { name: 'inlineAutoSize.panelMinWidthMobile', label: 'Painel mínimo (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelMobile', inline: true, hint: 'Largura mínima do painel inline em px no mobile.' },\n { name: 'inlineAutoSize.panelMaxWidthMobile', label: 'Painel máximo (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelMobile', inline: true, hint: 'Largura máxima do painel inline em px no mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const currencyInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral', hint: 'Rótulo visível do campo. Ex.: \"Preço\".' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', group: 'Geral', hint: 'Valor inicial ao abrir o formulário. Ex.: 199.9.' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral', hint: 'Texto quando estiver vazio. Ex.: \"Digite o valor\".' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Ajuda abaixo do campo. Ex.: \"Informe o total\".' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral', hint: 'Texto antes do valor. Ex.: \"R$\".' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral', hint: 'Texto depois do valor. Ex.: \"por mês\".' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Ícone antes do input. Ex.: \"mi:payments\".' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Cor do ícone. Ex.: primary ou #496ddb.' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Ícone depois do input. Ex.: \"mi:info\".' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Cor do ícone. Ex.: accent ou rgb(73,109,219).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n {\n name: 'currency',\n label: 'Moeda',\n editorType: 'select',\n group: 'Formato/Comportamento',\n hint: 'Ao escolher a moeda, sugerimos locale/casas/posição. Você pode ajustar manualmente depois.',\n defaultValue: 'BRL',\n options: [\n { value: 'BRL', text: 'BRL — Real brasileiro' },\n { value: 'USD', text: 'USD — Dólar americano' },\n { value: 'EUR', text: 'EUR — Euro' },\n { value: 'GBP', text: 'GBP — Libra esterlina' },\n { value: 'ARS', text: 'ARS — Peso argentino' },\n { value: 'CLP', text: 'CLP — Peso chileno' },\n { value: 'COP', text: 'COP — Peso colombiano' },\n { value: 'MXN', text: 'MXN — Peso mexicano' },\n { value: 'PEN', text: 'PEN — Sol peruano' },\n { value: 'UYU', text: 'UYU — Peso uruguaio' },\n { value: 'PYG', text: 'PYG — Guarani paraguaio' },\n { value: 'BOB', text: 'BOB — Boliviano' },\n { value: 'CRC', text: 'CRC — Colón costarriquenho' },\n { value: 'DOP', text: 'DOP — Peso dominicano' },\n { value: 'GTQ', text: 'GTQ — Quetzal guatemalteco' },\n { value: 'HNL', text: 'HNL — Lempira hondurenha' },\n { value: 'NIO', text: 'NIO — Córdoba nicaraguense' },\n { value: 'PAB', text: 'PAB — Balboa panamenho' },\n { value: 'VES', text: 'VES — Bolívar venezuelano' },\n { value: 'CAD', text: 'CAD — Dólar canadense' },\n { value: 'AUD', text: 'AUD — Dólar australiano' },\n { value: 'NZD', text: 'NZD — Dólar neozelandês' },\n { value: 'CHF', text: 'CHF — Franco suíço' },\n { value: 'JPY', text: 'JPY — Iene japonês' },\n { value: 'CNY', text: 'CNY — Yuan chinês' },\n { value: 'HKD', text: 'HKD — Dólar de Hong Kong' },\n { value: 'SGD', text: 'SGD — Dólar de Singapura' },\n { value: 'INR', text: 'INR — Rupia indiana' },\n { value: 'ZAR', text: 'ZAR — Rand sul-africano' }\n ],\n },\n { name: 'currencyPosition', label: 'Posição moeda', editorType: 'select', group: 'Formato/Comportamento', hint: 'Posição do símbolo. Ex.: \"R$ 10\" ou \"10 €\".', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', hint: 'Quantidade de casas. Ex.: 2 para centavos.' },\n { name: 'locale', label: 'Locale', editorType: 'text', group: 'Formato/Comportamento', hint: 'Define separadores e moeda. Ex.: pt-BR.' },\n { name: 'allowNegative', label: 'Permitir negativos', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Permite valores abaixo de zero. Ex.: -10.' },\n { name: 'thousandsSeparator', label: 'Separador de milhar', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \".\" em 1.000.' },\n { name: 'decimalSeparator', label: 'Separador decimal', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \",\" em 10,5.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra o valor sem edição. Ex.: visualização.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Desativa interação e foco. Ex.: campo bloqueado.' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Foca ao abrir o formulário. Ex.: fluxo de cadastro.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige preenchimento. Ex.: não pode vazio.' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor mínimo aceito. Ex.: 0 ou 10.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor máximo aceito. Ex.: 1000.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem quando vazio. Ex.: \"Campo obrigatório\".' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação', hint: 'Mensagem abaixo do mínimo. Ex.: \"Valor mínimo 10\".' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação', hint: 'Mensagem acima do máximo. Ex.: \"Valor máximo 1000\".' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', hint: 'Estilo do campo. Ex.: outline para borda.', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', hint: 'Cor do tema. Ex.: primary, accent, warn.', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto lido por leitores. Ex.: \"Valor em reais\".' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro. Ex.: \"hint-id error-id\".' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID do elemento que rotula. Ex.: \"label-id\".' },\n // Sem Clear: componente não implementa botão de limpar\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão de limpar. Ex.: ícone no final.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: 'Ícone do botão. Ex.: \"mi:clear\".' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Cor do ícone. Ex.: warn ou #ff5252.' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto ao passar o mouse. Ex.: \"Limpar\".' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição acessível. Ex.: \"Limpar valor\".' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Aparece só com valor. Ex.: evita botão vazio.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const priceRangeProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral', hint: 'Rótulo do grupo. Ex.: \"Faixa de preço\".' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Ajuda abaixo do campo. Ex.: \"Informe valores mínimos e máximos\".' },\n { name: 'tooltip', label: 'Tooltip', editorType: 'text', group: 'Geral', hint: 'Tooltip do grupo. Ex.: \"Faixa permitida\".' },\n { name: 'inlinePanelTitle', label: 'Título do painel inline', editorType: 'text', group: 'Geral', hint: 'Título exibido no popover do range inline.' },\n { name: 'startLabel', label: 'Label (início)', editorType: 'text', group: 'Geral', hint: 'Rótulo do subcampo inicial. Ex.: \"De\".' },\n { name: 'endLabel', label: 'Label (fim)', editorType: 'text', group: 'Geral', hint: 'Rótulo do subcampo final. Ex.: \"Até\".' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:attach_money).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'startPlaceholder', label: 'Placeholder (início)', editorType: 'text', group: 'Geral', hint: 'Texto vazio no início. Ex.: \"Mínimo\".' },\n { name: 'endPlaceholder', label: 'Placeholder (fim)', editorType: 'text', group: 'Geral', hint: 'Texto vazio no fim. Ex.: \"Máximo\".' },\n { name: 'defaultValue.minPrice', label: 'Valor padrão (início)', editorType: 'number', group: 'Geral', hint: 'Valor inicial do campo \"início\". Ex.: 10.' },\n { name: 'defaultValue.maxPrice', label: 'Valor padrão (fim)', editorType: 'number', group: 'Geral', hint: 'Valor inicial do campo \"fim\". Ex.: 100.' },\n { name: 'hideSubLabels', label: 'Ocultar labels dos subinputs', editorType: 'checkbox', group: 'Geral', hint: 'Esconde os rótulos \"início\" e \"fim\".' },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Geral', hint: 'Define a disposição dos dois campos.', options: [\n { value: 'row', text: 'Lado a lado' },\n { value: 'column', text: 'Em linhas' },\n ] },\n { name: 'gap', label: 'Espaçamento', editorType: 'text', group: 'Geral', hint: 'Distância entre inputs. Ex.: 8, 12px, 0.5rem.' },\n { name: 'clearButtonPlacement', label: 'Clear: posição', editorType: 'select', group: 'Ações', hint: 'Onde o botão de limpar aparece.', options: [\n { value: 'group', text: 'No grupo' },\n { value: 'subinputs', text: 'Em cada input' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige preenchimento dos dois valores.' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra o valor sem edição.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Desativa interação e foco.' },\n { name: 'hidden', label: 'Ocultar campo', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Esconde o componente na tela.' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Formato/Comportamento', row: 'range', inline: true, hint: 'Limite mínimo global. Ex.: 0.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Formato/Comportamento', row: 'range', inline: true, hint: 'Limite máximo global. Ex.: 1000.' },\n { name: 'startMin', label: 'Mínimo (início)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeStart', inline: true, hint: 'Min do campo início. Ex.: 0.' },\n { name: 'startMax', label: 'Máximo (início)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeStart', inline: true, hint: 'Max do campo início. Ex.: 500.' },\n { name: 'startMinMessage', label: 'Mensagem min (início)', editorType: 'text', group: 'Validação', hint: 'Mensagem abaixo do mínimo. Ex.: \"Mínimo 0\".' },\n { name: 'startMaxMessage', label: 'Mensagem max (início)', editorType: 'text', group: 'Validação', hint: 'Mensagem acima do máximo. Ex.: \"Máximo 500\".' },\n { name: 'endMin', label: 'Mínimo (fim)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeEnd', inline: true, hint: 'Min do campo fim. Ex.: 10.' },\n { name: 'endMax', label: 'Máximo (fim)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeEnd', inline: true, hint: 'Max do campo fim. Ex.: 1000.' },\n { name: 'endMinMessage', label: 'Mensagem min (fim)', editorType: 'text', group: 'Validação', hint: 'Mensagem abaixo do mínimo. Ex.: \"Mínimo 10\".' },\n { name: 'endMaxMessage', label: 'Mensagem max (fim)', editorType: 'text', group: 'Validação', hint: 'Mensagem acima do máximo. Ex.: \"Máximo 1000\".' },\n { name: 'endMinOffset', label: 'Offset mínimo (fim >= início +)', editorType: 'number', group: 'Validação', hint: 'Diferença mínima entre fim e início. Ex.: 5.' },\n { name: 'endMinOffsetMessage', label: 'Mensagem offset (fim)', editorType: 'text', group: 'Validação', hint: 'Mensagem quando o offset mínimo não é atendido.' },\n { name: 'startMaxOffset', label: 'Offset máximo (início <= fim -)', editorType: 'number', group: 'Validação', hint: 'Diferença máxima permitida. Ex.: 200.' },\n { name: 'startMaxOffsetMessage', label: 'Mensagem offset (início)', editorType: 'text', group: 'Validação', hint: 'Mensagem quando o offset máximo não é atendido.' },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento entre valores. Ex.: 5.' },\n {\n name: 'showTicks',\n label: 'Exibir marcações (ticks)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: true, text: 'Sempre' },\n { value: false, text: 'Nunca' },\n ],\n hint: 'Controla a exibição das marcações no slider inline.',\n },\n {\n name: 'currency',\n label: 'Moeda',\n editorType: 'select',\n group: 'Formato/Comportamento',\n hint: 'Aplica aos dois subcampos e sugere locale/casas/posição.',\n defaultValue: 'BRL',\n options: [\n { value: 'BRL', text: 'BRL — Real brasileiro' },\n { value: 'USD', text: 'USD — Dólar americano' },\n { value: 'EUR', text: 'EUR — Euro' },\n { value: 'GBP', text: 'GBP — Libra esterlina' },\n { value: 'ARS', text: 'ARS — Peso argentino' },\n { value: 'CLP', text: 'CLP — Peso chileno' },\n { value: 'COP', text: 'COP — Peso colombiano' },\n { value: 'MXN', text: 'MXN — Peso mexicano' },\n { value: 'PEN', text: 'PEN — Sol peruano' },\n { value: 'UYU', text: 'UYU — Peso uruguaio' },\n { value: 'PYG', text: 'PYG — Guarani paraguaio' },\n { value: 'BOB', text: 'BOB — Boliviano' },\n { value: 'CRC', text: 'CRC — Colón costarriquenho' },\n { value: 'DOP', text: 'DOP — Peso dominicano' },\n { value: 'GTQ', text: 'GTQ — Quetzal guatemalteco' },\n { value: 'HNL', text: 'HNL — Lempira hondurenha' },\n { value: 'NIO', text: 'NIO — Córdoba nicaraguense' },\n { value: 'PAB', text: 'PAB — Balboa panamenho' },\n { value: 'VES', text: 'VES — Bolívar venezuelano' },\n { value: 'CAD', text: 'CAD — Dólar canadense' },\n { value: 'AUD', text: 'AUD — Dólar australiano' },\n { value: 'NZD', text: 'NZD — Dólar neozelandês' },\n { value: 'CHF', text: 'CHF — Franco suíço' },\n { value: 'JPY', text: 'JPY — Iene japonês' },\n { value: 'CNY', text: 'CNY — Yuan chinês' },\n { value: 'HKD', text: 'HKD — Dólar de Hong Kong' },\n { value: 'SGD', text: 'SGD — Dólar de Singapura' },\n { value: 'INR', text: 'INR — Rupia indiana' },\n { value: 'ZAR', text: 'ZAR — Rand sul-africano' }\n ],\n },\n { name: 'currencyPosition', label: 'Posição moeda', editorType: 'select', group: 'Formato/Comportamento', hint: 'Posição do símbolo. Ex.: \"R$ 10\" ou \"10 €\".', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', hint: 'Quantidade de casas. Ex.: 2 para centavos.' },\n { name: 'locale', label: 'Locale', editorType: 'text', group: 'Formato/Comportamento', hint: 'Define separadores. Ex.: pt-BR.' },\n { name: 'thousandsSeparator', label: 'Separador de milhar', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \".\" em 1.000.' },\n { name: 'decimalSeparator', label: 'Separador decimal', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \",\" em 10,5.' },\n { name: 'allowNegative', label: 'Permitir negativo', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Permite valores abaixo de zero. Ex.: -10.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão de limpar. Ex.: ícone no final.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: 'Ícone do botão. Ex.: \"mi:clear\".' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Cor do ícone. Ex.: warn ou #ff5252.' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto ao passar o mouse. Ex.: \"Limpar\".' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição acessível. Ex.: \"Limpar valores\".' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Aparece só com valor. Ex.: evita botão vazio.' },\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', hint: 'Estilo do campo. Ex.: outline para borda.', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', hint: 'Cor do tema. Ex.: primary, accent, warn.', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'inlineAutoSize.panelMinWidth', label: 'Painel mínimo (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura mínima do painel inline em px.' },\n { name: 'inlineAutoSize.panelMaxWidth', label: 'Painel máximo (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura máxima do painel inline em px.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto lido por leitores. Ex.: \"Faixa de preço\".' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro. Ex.: \"hint-id error-id\".' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID do elemento que rotula. Ex.: \"label-id\".' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const cpfCnpjProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:badge). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'documentType', label: 'Tipo de documento', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'cpf', text: 'CPF' },\n { value: 'cnpj', text: 'CNPJ' },\n ] },\n { name: 'version', label: 'Versão (parsing)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'legacy', text: 'Legacy (numérico)' },\n { value: 'alpha', text: 'Alpha (alfa-numérico para CNPJ)' },\n ] },\n { name: 'allowFormattedInput', label: 'Permitir entrada formatada', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Aceita CPF/CNPJ com pontuação.' },\n { name: 'unmaskOnSubmit', label: 'Enviar sem máscara (modelo)', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Remove pontuação ao enviar.' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: formato inválido', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência/Material' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const fileUploadProperties: EditorProperty[] = [\n // Dados/Opções\n { name: 'accept', label: 'Tipos aceitos (mimes/ext.)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'multiple', label: 'Múltiplos arquivos', editorType: 'checkbox', group: 'Dados/Opções' },\n { name: 'maxSizeMB', label: 'Tamanho máx (MB)', editorType: 'number', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Recurso', editorType: 'text', group: 'Dados/Opções' },\n { name: 'uploadUrl', label: 'Upload URL', editorType: 'text', group: 'Dados/Opções' },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções' },\n\n // Geral/Validação\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const yearInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY)', editorType: 'number', group: 'Geral', hint: 'Ano no formato YYYY (ex.: 2025).' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:calendar_month). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Passo em anos (ex.: 1 para consecutivos, 5 para intervalos de 5 em 5).' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minYear', label: 'Ano mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite inferior (YYYY).' },\n { name: 'maxYear', label: 'Ano máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite superior (YYYY).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const avatarProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'extra.icon', label: 'Ícone (ligature ou mi:*)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:person). Use o seletor ao lado para buscar.\" },\n { name: 'extra.defaultIcon', label: 'Ícone padrão (fallback)', editorType: 'text', group: 'Ícones', hint: 'Usado quando imagem/iniciais não estiverem presentes.' },\n\n // Dados/Opções (conteúdo)\n { name: 'extra.imageSrc', label: 'Imagem (URL)', editorType: 'text', group: 'Dados/Opções', row: 'conteudo.imagem', hint: 'URL completa da imagem (http/https). Suporta metadata legado em imageSrc.' },\n { name: 'extra.imageAlt', label: 'Imagem: alt', editorType: 'text', group: 'Dados/Opções', row: 'conteudo.imagem', hint: 'Texto alternativo da imagem.' },\n { name: 'extra.name', label: 'Nome (gera iniciais)', editorType: 'text', group: 'Dados/Opções', hint: 'Usado para gerar iniciais quando o campo Iniciais está vazio.' },\n { name: 'extra.initials', label: 'Iniciais', editorType: 'text', group: 'Dados/Opções', hint: 'Ex.: MB. Exibidas quando não houver imagem.' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Bloqueia interação/edição.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Desativa o campo e remove foco.' },\n { name: 'hidden', label: 'Oculto', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Não renderiza o avatar.' },\n\n // Validação\n // (sem campos)\n\n // Ações\n // (sem campos)\n\n // Aparência (extras)\n { name: 'extra.class', label: 'CSS classes', editorType: 'text', group: 'Aparência', hint: 'Classes CSS adicionais (separadas por espaço).' },\n { name: 'extra.style', label: 'Estilo (JSON)', editorType: 'textarea', group: 'Aparência', hint: 'Objeto JSON de estilos (ex.: { \"border\": \"1px solid #ccc\" }).' },\n {\n name: 'extra.themeColor', label: 'Tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'secondary', text: 'Secundária' },\n { value: 'tertiary', text: 'Terciária' },\n { value: 'base', text: 'Base' },\n { value: 'info', text: 'Info' },\n { value: 'success', text: 'Sucesso' },\n { value: 'warning', text: 'Atenção' },\n { value: 'error', text: 'Erro' },\n { value: 'dark', text: 'Escuro' },\n { value: 'light', text: 'Claro' },\n { value: 'inverse', text: 'Inverso' },\n { value: 'none', text: 'Herdar (nenhum)' },\n ]\n },\n {\n name: 'extra.size', label: 'Tamanho', editorType: 'select', group: 'Aparência', row: 'aparencia.size', inline: true, options: [\n { value: 'xsmall', text: 'Extra pequeno' },\n { value: 'small', text: 'Pequeno' },\n { value: 'medium', text: 'Médio' },\n { value: 'large', text: 'Grande' },\n { value: 'xlarge', text: 'Extra grande' },\n { value: 'xxlarge', text: 'Muito grande' },\n { value: 'none', text: 'Nenhum (auto)' },\n ]\n },\n {\n name: 'extra.rounded', label: 'Arredondamento', editorType: 'select', group: 'Aparência', options: [\n { value: 'full', text: 'Total' },\n { value: 'large', text: 'Grande' },\n { value: 'medium', text: 'Médio' },\n { value: 'small', text: 'Pequeno' },\n { value: 'none', text: 'Sem raio' },\n ]\n },\n {\n name: 'extra.fillMode', label: 'Preenchimento', editorType: 'select', group: 'Aparência', options: [\n { value: 'solid', text: 'Sólido' },\n { value: 'outline', text: 'Contorno' },\n { value: 'none', text: 'Nenhum (herdar)' },\n ]\n },\n { name: 'extra.sizePx', label: 'Tamanho (px)', editorType: 'number', group: 'Aparência', hint: 'Sobrescreve o tamanho por token (ex.: 48).', row: 'aparencia.size', inline: true },\n { name: 'extra.sizeCss', label: 'Tamanho (CSS)', editorType: 'text', group: 'Aparência', hint: 'Aceita %, px, rem, em, vw, vh (ex.: 100% ou 3rem). Prioriza sobre sizePx.', row: 'aparencia.size', inline: true },\n { name: 'extra.border', label: 'Borda', editorType: 'checkbox', group: 'Aparência', row: 'aparencia.inline1', inline: true },\n\n // Acessibilidade / UX\n { name: 'extra.tooltip', label: 'Tooltip', editorType: 'text', group: 'Acessibilidade', hint: 'Texto exibido ao passar o mouse.' },\n { name: 'extra.ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n];\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\n/** Garante que minLength <= maxLength quando ambos definidos. */\nexport function minLenLeMaxLen(group: AbstractControl): ValidationErrors | null {\n const v = group.value || {};\n const min = v?.minLength;\n const max = v?.maxLength;\n if (min != null && max != null && Number(min) > Number(max)) {\n return { minLengthGtMaxLength: true };\n }\n return null;\n}\n","import type { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\ninterface GradientCompareTarget {\n field: string;\n label: string;\n}\n\ninterface GradientColorStopValidatorOptions {\n label: string;\n compareWith?: GradientCompareTarget[];\n minContrastRatio?: number;\n}\n\nconst HEX_PATTERN = /^#([\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$/i;\n\nfunction clampChannel(value: number): number {\n return Math.max(0, Math.min(255, Math.round(value)));\n}\n\nfunction parseHexColor(raw: string): RgbColor | null {\n const normalized = raw.trim();\n if (!HEX_PATTERN.test(normalized)) {\n return null;\n }\n\n const hex = normalized.slice(1);\n if (hex.length === 3 || hex.length === 4) {\n return {\n r: Number.parseInt(hex[0] + hex[0], 16),\n g: Number.parseInt(hex[1] + hex[1], 16),\n b: Number.parseInt(hex[2] + hex[2], 16),\n };\n }\n\n return {\n r: Number.parseInt(hex.slice(0, 2), 16),\n g: Number.parseInt(hex.slice(2, 4), 16),\n b: Number.parseInt(hex.slice(4, 6), 16),\n };\n}\n\nfunction parseRgbChannel(token: string): number | null {\n const value = token.trim();\n if (!value.length) return null;\n if (value.endsWith('%')) {\n const pct = Number.parseFloat(value.slice(0, -1));\n if (!Number.isFinite(pct)) return null;\n return clampChannel((pct / 100) * 255);\n }\n const numeric = Number.parseFloat(value);\n if (!Number.isFinite(numeric)) return null;\n return clampChannel(numeric);\n}\n\nfunction parseRgbColor(raw: string): RgbColor | null {\n const normalized = raw.trim().toLowerCase();\n if (!normalized.startsWith('rgb')) {\n return null;\n }\n const parts = normalized.match(/[\\d.]+%?/g) ?? [];\n if (parts.length < 3) {\n return null;\n }\n\n const [rRaw, gRaw, bRaw] = parts;\n if (rRaw === undefined || gRaw === undefined || bRaw === undefined) {\n return null;\n }\n\n const r = parseRgbChannel(rRaw);\n const g = parseRgbChannel(gRaw);\n const b = parseRgbChannel(bRaw);\n if (r === null || g === null || b === null) {\n return null;\n }\n return { r, g, b };\n}\n\nfunction parseComputedRgbColor(raw: string): RgbColor | null {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const probe = document.createElement('span');\n probe.style.color = '';\n probe.style.color = raw;\n if (!probe.style.color) {\n return null;\n }\n\n const host = document.body ?? document.documentElement;\n let computed = probe.style.color;\n if (host) {\n host.appendChild(probe);\n try {\n computed = getComputedStyle(probe).color || computed;\n } finally {\n probe.remove();\n }\n }\n\n return parseRgbColor(computed) ?? parseHexColor(computed);\n}\n\nexport function normalizeCssColorToRgb(value: unknown): RgbColor | null {\n const raw = String(value ?? '').trim();\n if (!raw.length) {\n return null;\n }\n return parseHexColor(raw) ?? parseRgbColor(raw) ?? parseComputedRgbColor(raw);\n}\n\nfunction relativeLuminance({ r, g, b }: RgbColor): number {\n const normalize = (channel: number) => {\n const value = channel / 255;\n return value <= 0.03928 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4;\n };\n return 0.2126 * normalize(r) + 0.7152 * normalize(g) + 0.0722 * normalize(b);\n}\n\nfunction contrastRatio(a: RgbColor, b: RgbColor): number {\n const lumA = relativeLuminance(a);\n const lumB = relativeLuminance(b);\n const lighter = Math.max(lumA, lumB);\n const darker = Math.min(lumA, lumB);\n return (lighter + 0.05) / (darker + 0.05);\n}\n\nexport function gradientColorStopValidator(\n options: GradientColorStopValidatorOptions,\n): ValidatorFn {\n const label = String(options.label || 'Cor').trim() || 'Cor';\n const compareWith = options.compareWith ?? [];\n const minContrastRatio = Math.max(1, Number(options.minContrastRatio ?? 1.4));\n\n return (control: AbstractControl): ValidationErrors | null => {\n const rawValue = String(control.value ?? '').trim();\n if (!rawValue.length) {\n return null;\n }\n\n const currentColor = normalizeCssColorToRgb(rawValue);\n if (!currentColor) {\n return {\n invalidColor: {\n message: `${label}: informe uma cor CSS valida (ex.: #22c55e).`,\n },\n };\n }\n\n const parent = control.parent;\n if (!parent || !compareWith.length) {\n return null;\n }\n\n for (const target of compareWith) {\n const siblingRaw = String(parent.get(target.field)?.value ?? '').trim();\n if (!siblingRaw.length) {\n continue;\n }\n\n const siblingColor = normalizeCssColorToRgb(siblingRaw);\n if (!siblingColor) {\n continue;\n }\n\n const ratio = contrastRatio(currentColor, siblingColor);\n if (ratio < minContrastRatio) {\n return {\n gradientContrast: {\n message:\n `${label}: contraste baixo com ${target.label} ` +\n `(${ratio.toFixed(2)}:1). Use ao menos ${minContrastRatio.toFixed(1)}:1.`,\n ratio,\n minContrastRatio,\n comparedField: target.field,\n },\n };\n }\n }\n\n return null;\n };\n}\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineDistanceRadiusProperties: EditorProperty[] = [\n ...rangeSliderProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'distanceIcon',\n label: 'Icone do chip (legado)',\n editorType: 'text',\n group: 'Compatibilidade',\n hint: 'Alias legado de prefixIcon para o icone do chip (ex.: place, my_location).',\n },\n {\n name: 'distanceSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Subtitulo exibido abaixo do titulo no popover.',\n },\n {\n name: 'distanceUnit',\n label: 'Unidade inicial',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'km', text: 'KM' },\n { value: 'mi', text: 'MI' },\n ],\n hint: 'Unidade visual inicial do controle.',\n },\n {\n name: 'distanceBaseUnit',\n label: 'Unidade base',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'km', text: 'KM' },\n { value: 'mi', text: 'MI' },\n ],\n hint: 'Unidade canonica persistida no valor do campo.',\n },\n {\n name: 'distanceAllowUnitToggle',\n label: 'Permitir alternar KM/MI',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Quando ativo, mostra os botoes para alternar unidade no popover.',\n },\n {\n name: 'distanceUnits',\n label: 'Unidades disponiveis (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON opcional. Ex.: [\"km\",\"mi\"].',\n },\n {\n name: 'distanceUnitLabels.km',\n label: 'Label unidade KM',\n editorType: 'text',\n group: 'Formato/Comportamento',\n row: 'distance-unit-labels',\n inline: true,\n },\n {\n name: 'distanceUnitLabels.mi',\n label: 'Label unidade MI',\n editorType: 'text',\n group: 'Formato/Comportamento',\n row: 'distance-unit-labels',\n inline: true,\n },\n {\n name: 'distanceDisplayDecimals',\n label: 'Casas decimais (display)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Define casas decimais para exibicao visual (valor vazio usa automatico).',\n },\n {\n name: 'distancePresets',\n label: 'Presets de distancia (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON. Ex.: [5,10,25,50], [{\"label\":\"25 km\",\"value\":25}] ou [{\"label\":\"10-30 km\",\"start\":10,\"end\":30}] para modo faixa.',\n },\n {\n name: 'distanceRadialRings',\n label: 'Qtd. aneis radiais',\n editorType: 'number',\n group: 'Aparencia',\n hint: 'Quantidade de aneis no radar visual (3 a 8).',\n },\n {\n name: 'distanceAccentColor',\n label: 'Cor principal',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor principal aplicada ao valor central e estados ativos.',\n },\n {\n name: 'distanceRingColor',\n label: 'Cor dos aneis',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor base dos aneis circulares do radar.',\n },\n {\n name: 'distanceTrackColor',\n label: 'Cor trilha slider',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor da trilha inativa do slider.',\n },\n {\n name: 'distanceGlowColor',\n label: 'Cor brilho radial',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor do glow ao redor do centro radial.',\n },\n {\n name: 'distanceGradientLowColor',\n label: 'Gradiente baixo',\n editorType: 'color',\n group: 'Aparencia',\n row: 'distance-gradient-colors',\n inline: true,\n hint: 'Cor para valores baixos (fallback padrao: verde).',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente baixo',\n compareWith: [{ field: 'distanceGradientMidColor', label: 'Gradiente medio' }],\n }),\n ],\n },\n {\n name: 'distanceGradientMidColor',\n label: 'Gradiente medio',\n editorType: 'color',\n group: 'Aparencia',\n row: 'distance-gradient-colors',\n inline: true,\n hint: 'Cor para valores medios (fallback padrao: amarelo/ambar).',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente medio',\n compareWith: [\n { field: 'distanceGradientLowColor', label: 'Gradiente baixo' },\n { field: 'distanceGradientHighColor', label: 'Gradiente alto' },\n ],\n }),\n ],\n },\n {\n name: 'distanceGradientHighColor',\n label: 'Gradiente alto',\n editorType: 'color',\n group: 'Aparencia',\n row: 'distance-gradient-colors',\n inline: true,\n hint: 'Cor para valores altos (fallback padrao: vermelho).',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente alto',\n compareWith: [{ field: 'distanceGradientMidColor', label: 'Gradiente medio' }],\n }),\n ],\n },\n {\n name: 'distanceRangeBandOpacity',\n label: 'Opacidade da faixa (0-1)',\n editorType: 'number',\n group: 'Aparencia',\n hint: 'Opcional. Sobrescreve a opacidade automatica da faixa radial no modo range.',\n },\n {\n name: 'materialDesign.density',\n label: 'Densidade',\n editorType: 'select',\n group: 'Aparencia',\n options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'default', text: 'Padrao' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta dimensoes base do chip e painel inline.',\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineRelativePeriodProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'relativePeriodSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'relativePeriodOptions',\n label: 'Presets de periodo (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON. Ex.: [{\"label\":\"Hoje\",\"value\":\"today\",\"icon\":\"calendar_today\"}]',\n },\n {\n name: 'relativePeriodPresets',\n label: 'Presets (alias legado JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n hint: 'Alias legado de relativePeriodOptions.',\n },\n {\n name: 'relativePeriodShowProgress',\n label: 'Mostrar barra de progresso',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'relativePeriodProgressGradientLowColor',\n label: 'Gradiente progresso (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial da barra de progresso relativa.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente progresso (inicio)',\n compareWith: [{ field: 'relativePeriodProgressGradientMidColor', label: 'Gradiente progresso (meio)' }],\n }),\n ],\n },\n {\n name: 'relativePeriodProgressGradientMidColor',\n label: 'Gradiente progresso (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria da barra de progresso relativa.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente progresso (meio)',\n compareWith: [\n { field: 'relativePeriodProgressGradientLowColor', label: 'Gradiente progresso (inicio)' },\n { field: 'relativePeriodProgressGradientHighColor', label: 'Gradiente progresso (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'relativePeriodProgressGradientHighColor',\n label: 'Gradiente progresso (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final da barra de progresso relativa.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente progresso (fim)',\n compareWith: [{ field: 'relativePeriodProgressGradientMidColor', label: 'Gradiente progresso (meio)' }],\n }),\n ],\n },\n {\n name: 'relativePeriodColumns',\n label: 'Colunas do grid',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Quantidade de colunas para os cards de presets (1 a 4).',\n },\n {\n name: 'relativePeriodCloseOnSelect',\n label: 'Fechar ao selecionar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Em modo single, fecha o popover apos selecionar um preset.',\n },\n {\n name: 'relativePeriodMultiple',\n label: 'Permitir multipla selecao',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Quando ativo, o valor do campo passa a ser uma lista de presets.',\n },\n {\n name: 'relativePeriodSearchable',\n label: 'Habilitar busca',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'relativePeriodIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone Material Symbols usado no chip/trigger.',\n },\n {\n name: 'relativePeriodIconKey',\n label: 'Chave icon da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para resolver icon por opcao.',\n },\n {\n name: 'relativePeriodSubtitleKey',\n label: 'Chave subtitle da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para subtitulo por opcao.',\n },\n {\n name: 'relativePeriodOptionsAriaLabel',\n label: 'ARIA grupo de opcoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'relativePeriodProgressEmptyLabel',\n label: 'Texto progresso sem selecao',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'relativePeriodEmptyStateText',\n label: 'Texto estado vazio',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'relativePeriodTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional de textos/aria. Ex.: {\"panelSubtitle\":\"Periodo rapido\"}',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineSentimentProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'sentimentSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'sentimentOptions',\n label: 'Opcoes de sentimento (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON. Ex.: [{\"label\":\"Bom\",\"value\":\"good\",\"emoji\":\"🙂\",\"color\":\"#34d399\"}]',\n },\n {\n name: 'sentimentPalette',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n hint: 'Cores fallback usadas quando a opcao nao informar color.',\n },\n {\n name: 'sentimentGradientLowColor',\n label: 'Gradiente sentimento (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial do gradiente fallback de sentimento.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente sentimento (inicio)',\n compareWith: [{ field: 'sentimentGradientMidColor', label: 'Gradiente sentimento (meio)' }],\n }),\n ],\n },\n {\n name: 'sentimentGradientMidColor',\n label: 'Gradiente sentimento (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria do gradiente fallback de sentimento.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente sentimento (meio)',\n compareWith: [\n { field: 'sentimentGradientLowColor', label: 'Gradiente sentimento (inicio)' },\n { field: 'sentimentGradientHighColor', label: 'Gradiente sentimento (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'sentimentGradientHighColor',\n label: 'Gradiente sentimento (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final do gradiente fallback de sentimento.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente sentimento (fim)',\n compareWith: [{ field: 'sentimentGradientMidColor', label: 'Gradiente sentimento (meio)' }],\n }),\n ],\n },\n {\n name: 'sentimentShowBar',\n label: 'Mostrar barra de sentimento',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentAnimatedEmoji',\n label: 'Animar emoji',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentCloseOnSelect',\n label: 'Fechar ao selecionar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Em modo single, fecha o popover apos selecionar uma opcao.',\n },\n {\n name: 'sentimentMultiple',\n label: 'Permitir multipla selecao',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentShowSelectionPills',\n label: 'Mostrar pills selecionados',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n },\n {\n name: 'sentimentColorKey',\n label: 'Chave color da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n },\n {\n name: 'sentimentEmojiKey',\n label: 'Chave emoji da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n },\n {\n name: 'sentimentOptionsAriaLabel',\n label: 'ARIA grupo de opcoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'sentimentSelectionPillsAriaLabel',\n label: 'ARIA pills selecionados',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'sentimentEmptyStateText',\n label: 'Texto estado vazio',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'sentimentTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional de textos/aria. Ex.: {\"panelSubtitle\":\"Satisfacao\"}',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineColorLabelProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'colorLabelSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'colorLabelOptions',\n label: 'Opcoes de cor (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON. Ex.: [{\"label\":\"Azul\",\"value\":\"blue\",\"color\":\"#0ea5e9\"}]',\n },\n {\n name: 'colorLabelPalette',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n },\n {\n name: 'colorLabelMultiple',\n label: 'Permitir multipla selecao',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'colorLabelColumns',\n label: 'Colunas do grid',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Quantidade de colunas para os cards de cor (1 a 6).',\n },\n {\n name: 'colorLabelShowSelectedBadges',\n label: 'Mostrar badges selecionados',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'colorLabelCloseOnSelect',\n label: 'Fechar ao selecionar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Em modo single, fecha o popover apos selecionar uma opcao.',\n },\n {\n name: 'colorLabelSelectionTitle',\n label: 'Titulo dos badges',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'colorLabelIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n },\n {\n name: 'colorLabelBadgeRemoveIcon',\n label: 'Icone remover badge',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone usado para remover item selecionado nos badges (fallback: close).',\n },\n {\n name: 'colorLabelBadgeRemoveIconColor',\n label: 'Cor remover badge',\n editorType: 'color',\n group: 'Icones',\n hint: 'primary/accent/warn ou cor CSS.',\n },\n {\n name: 'colorLabelColorKey',\n label: 'Chave color da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n },\n {\n name: 'colorLabelOptionsAriaLabel',\n label: 'ARIA grupo de opcoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'colorLabelSelectionBadgesAriaLabel',\n label: 'ARIA badges selecionados',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'colorLabelRemoveSelectionAriaLabel',\n label: 'ARIA remover badge',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta template {label}. Ex.: \"Remover {label}\".',\n },\n {\n name: 'colorLabelEmptyStateText',\n label: 'Texto estado vazio',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'colorLabelTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional de textos/aria. Ex.: {\"selectionTitle\":\"Selecionados:\"}',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlinePipelineStatusProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'pipelineSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'pipelineOptions',\n label: 'Pipeline options (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON com campos livres. Ex.: [{\"label\":\"Rascunho\",\"value\":\"draft\",\"color\":\"#64748b\",\"count\":12,\"weight\":12}]',\n },\n {\n name: 'pipelineSearchable',\n label: 'Busca no painel',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Habilita campo de pesquisa no popover.',\n },\n {\n name: 'pipelineSearchPlaceholder',\n label: 'Placeholder da busca',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineOptionSubtitleKey',\n label: 'Chave subtitle opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para subtitulo das opcoes (ex.: total, descricao).',\n },\n {\n name: 'pipelineOptionWeightKey',\n label: 'Chave peso opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para largura relativa da barra segmentada.',\n },\n {\n name: 'pipelineOptionColorKey',\n label: 'Chave cor opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para cor de cada opcao (ex.: tone, tagColor).',\n },\n {\n name: 'pipelineShowBar',\n label: 'Mostrar barra segmentada',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineShowSelectionPills',\n label: 'Mostrar pills selecionados',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineShowSelectAll',\n label: 'Mostrar acao selecionar todos',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineSelectAllText',\n label: 'Texto selecionar todos',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineShowClearAction',\n label: 'Mostrar acao limpar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineClearActionText',\n label: 'Texto acao limpar',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineChipMaxVisible',\n label: 'Max labels no chip',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Quantidade maxima de labels exibidos no trigger antes de usar +N.',\n },\n {\n name: 'pipelineColors',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n hint: 'Cores fallback quando a opcao nao informar color.',\n },\n {\n name: 'pipelineGradientLowColor',\n label: 'Gradiente pipeline (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial do gradiente fallback da barra/segmentos.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente pipeline (inicio)',\n compareWith: [{ field: 'pipelineGradientMidColor', label: 'Gradiente pipeline (meio)' }],\n }),\n ],\n },\n {\n name: 'pipelineGradientMidColor',\n label: 'Gradiente pipeline (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria do gradiente fallback da barra/segmentos.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente pipeline (meio)',\n compareWith: [\n { field: 'pipelineGradientLowColor', label: 'Gradiente pipeline (inicio)' },\n { field: 'pipelineGradientHighColor', label: 'Gradiente pipeline (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'pipelineGradientHighColor',\n label: 'Gradiente pipeline (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final do gradiente fallback da barra/segmentos.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente pipeline (fim)',\n compareWith: [{ field: 'pipelineGradientMidColor', label: 'Gradiente pipeline (meio)' }],\n }),\n ],\n },\n {\n name: 'pipelineEmptyStateText',\n label: 'Texto de estado vazio',\n editorType: 'text',\n group: 'Aparencia',\n },\n {\n name: 'pipelineSelectionActionsAriaLabel',\n label: 'ARIA grupo de acoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineOptionsGroupAriaLabelMultiple',\n label: 'ARIA opcoes multiplas',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineOptionsGroupAriaLabelSingle',\n label: 'ARIA opcoes unicas',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineSelectionPillsAriaLabel',\n label: 'ARIA pills selecionados',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineBarAriaLabelEmpty',\n label: 'ARIA barra sem selecao',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta template com {label}.',\n },\n {\n name: 'pipelineBarAriaLabelSelected',\n label: 'ARIA barra com selecao',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta templates {label} e {count}.',\n },\n {\n name: 'pipelineTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional para textos/aria customizados. Ex.: {\"selectAllActionLabel\":\"Selecionar tudo\"}',\n },\n {\n name: 'pipelineIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone Material Symbols para o chip/trigger.',\n },\n {\n name: 'pipelineSearchIcon',\n label: 'Icone da busca',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone do campo de busca no painel (fallback: panelSearchIcon/search).',\n },\n {\n name: 'pipelineSearchIconColor',\n label: 'Cor icone da busca',\n editorType: 'color',\n group: 'Icones',\n hint: 'primary/accent/warn ou cor CSS.',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineRatingProperties: EditorProperty[] = [\n ...rangeSliderProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'ratingIcon',\n label: 'Ícone do chip (legado)',\n editorType: 'text',\n group: 'Compatibilidade',\n hint: 'Alias legado de prefixIcon.',\n },\n {\n name: 'allowHalf',\n label: 'Permitir meia estrela',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Quando ativo e sem step explícito, usa incrementos de 0.5 no range.',\n },\n {\n name: 'ratingAllowHalf',\n label: 'Permitir meia estrela (legado)',\n editorType: 'checkbox',\n group: 'Compatibilidade',\n hint: 'Alias legado de allowHalf para payloads antigos.',\n },\n {\n name: 'ratingPrecision',\n label: 'Precisão (legado)',\n editorType: 'select',\n group: 'Compatibilidade',\n options: [\n { value: 1, text: 'Inteira (1)' },\n { value: 0.5, text: 'Meia estrela (0.5)' },\n ],\n hint: 'Alias legado de precisão. Prefira allowHalf/step em novos metadados.',\n },\n {\n name: 'precision',\n label: 'Precisão textual (legado)',\n editorType: 'select',\n group: 'Compatibilidade',\n options: [\n { value: 'whole', text: 'Inteira (whole)' },\n { value: 'half', text: 'Meia estrela (half)' },\n ],\n hint: 'Alias legado textual. O valor \"half\" habilita meia estrela.',\n },\n {\n name: 'ratingToneLowColor',\n label: 'Cor estrelas (baixo)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor para estrelas de notas baixas (fallback: vermelho).',\n },\n {\n name: 'ratingToneMidColor',\n label: 'Cor estrelas (médio)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor para estrelas de notas médias (fallback: âmbar).',\n },\n {\n name: 'ratingToneHighColor',\n label: 'Cor estrelas (alto)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor para estrelas de notas altas (fallback: verde).',\n },\n {\n name: 'ratingGradientLowColor',\n label: 'Gradiente estrelas (inicio)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor inicial do gradiente aplicado na escala de estrelas.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente estrelas (inicio)',\n compareWith: [{ field: 'ratingGradientMidColor', label: 'Gradiente estrelas (meio)' }],\n }),\n ],\n },\n {\n name: 'ratingGradientMidColor',\n label: 'Gradiente estrelas (meio)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor intermediaria do gradiente aplicado na escala de estrelas.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente estrelas (meio)',\n compareWith: [\n { field: 'ratingGradientLowColor', label: 'Gradiente estrelas (inicio)' },\n { field: 'ratingGradientHighColor', label: 'Gradiente estrelas (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'ratingGradientHighColor',\n label: 'Gradiente estrelas (fim)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor final do gradiente aplicado na escala de estrelas.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente estrelas (fim)',\n compareWith: [{ field: 'ratingGradientMidColor', label: 'Gradiente estrelas (meio)' }],\n }),\n ],\n },\n {\n name: 'ratingBadgeColor',\n label: 'Cor ícone badges',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor do ícone de estrela nos badges de início/fim do range.',\n },\n {\n name: 'ratingBadgeIcon',\n label: 'Ícone dos badges',\n editorType: 'text',\n group: 'Ícones',\n hint: 'Ícone exibido nos badges de início/fim do range (fallback: star).',\n },\n {\n name: 'ratingBadgeIconColor',\n label: 'Cor ícone badges',\n editorType: 'color',\n group: 'Ícones',\n hint: 'Cor específica do ícone de badge (sobrescreve ratingBadgeColor quando informado).',\n },\n {\n name: 'ratingActiveIcon',\n label: 'Ícone estrela ativa',\n editorType: 'text',\n group: 'Ícones',\n hint: 'Ícone das posições dentro da faixa selecionada (fallback: star).',\n },\n {\n name: 'ratingInactiveIcon',\n label: 'Ícone estrela inativa',\n editorType: 'text',\n group: 'Ícones',\n hint: 'Ícone das posições fora da faixa selecionada (fallback: star_outline).',\n },\n {\n name: 'ratingToneColors',\n label: 'Paleta por tom (JSON)',\n editorType: 'textarea',\n group: 'Aparência',\n hint: 'JSON opcional. Ex.: {\"low\":\"#ef4444\",\"mid\":\"#f59e0b\",\"high\":\"#22a45d\",\"badge\":\"#f59e0b\"}',\n },\n {\n name: 'ratingColors',\n label: 'Paleta rating (legado JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n hint: 'Alias legado de paleta. Ex.: {\"low\":\"#ef4444\",\"mid\":\"#f59e0b\",\"high\":\"#22a45d\"}',\n },\n {\n name: 'starColors',\n label: 'Paleta starColors (legado JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n hint: 'Alias legado adicional para paleta de estrelas.',\n },\n {\n name: 'ratingLowColor',\n label: 'Cor baixa (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingToneLowColor.',\n },\n {\n name: 'ratingMidColor',\n label: 'Cor média (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingToneMidColor.',\n },\n {\n name: 'ratingHighColor',\n label: 'Cor alta (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingToneHighColor.',\n },\n {\n name: 'ratingIndicatorColor',\n label: 'Cor indicador/badge (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingBadgeColor.',\n },\n {\n name: 'ratingMin',\n label: 'Mínimo (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de min.',\n },\n {\n name: 'ratingMax',\n label: 'Máximo (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de max.',\n },\n {\n name: 'itemsCount',\n label: 'Qtde estrelas (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n hint: 'Alias legado para limite superior quando max não estiver definido.',\n },\n {\n name: 'ratingStep',\n label: 'Step (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n hint: 'Alias legado de step.',\n },\n {\n name: 'materialDesign.density',\n label: 'Densidade',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'default', text: 'Padrão' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta dimensões base do chip e painel inline.',\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineScorePriorityProperties: EditorProperty[] = [\n ...rangeSliderProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'scoreSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'scoreBands',\n label: 'Faixas de score (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON. Ex.: [{\"label\":\"Baixo\",\"color\":\"#16a34a\",\"start\":0,\"end\":2.5}]',\n },\n {\n name: 'scoreUnit',\n label: 'Unidade de score',\n editorType: 'text',\n group: 'Formato/Comportamento',\n hint: 'Sufixo opcional para o valor exibido (ex.: pts).',\n },\n {\n name: 'scoreDisplayDecimals',\n label: 'Casas decimais (display)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n },\n {\n name: 'scoreShowScaleLabels',\n label: 'Mostrar labels da escala',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'scoreShowBandChips',\n label: 'Mostrar chips de faixa',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'scoreRangeSeparator',\n label: 'Separador de faixa',\n editorType: 'text',\n group: 'Formato/Comportamento',\n hint: 'Separador visual entre inicio e fim (ex.: -, —, ate).',\n },\n {\n name: 'scorePalette',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n hint: 'Cores usadas quando uma faixa nao informa color.',\n },\n {\n name: 'scoreGradientLowColor',\n label: 'Gradiente score (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial do gradiente fallback da trilha.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente score (inicio)',\n compareWith: [{ field: 'scoreGradientMidColor', label: 'Gradiente score (meio)' }],\n }),\n ],\n },\n {\n name: 'scoreGradientMidColor',\n label: 'Gradiente score (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria do gradiente fallback da trilha.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente score (meio)',\n compareWith: [\n { field: 'scoreGradientLowColor', label: 'Gradiente score (inicio)' },\n { field: 'scoreGradientHighColor', label: 'Gradiente score (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'scoreGradientHighColor',\n label: 'Gradiente score (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final do gradiente fallback da trilha.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente score (fim)',\n compareWith: [{ field: 'scoreGradientMidColor', label: 'Gradiente score (meio)' }],\n }),\n ],\n },\n {\n name: 'scoreValueFallbackColor',\n label: 'Cor fallback valor',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor aplicada ao valor quando nenhuma faixa casar.',\n },\n {\n name: 'scoreEmptyGradient',\n label: 'Gradiente vazio',\n editorType: 'text',\n group: 'Aparencia',\n hint: 'CSS gradient usado quando nao houver faixas.',\n },\n {\n name: 'scoreIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n },\n {\n name: 'scoreBandsAriaLabel',\n label: 'ARIA grupo de faixas',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'scoreBandAriaLabelTemplate',\n label: 'Template ARIA faixa',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta {label}, {start} e {end}.',\n },\n {\n name: 'scoreTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional para textos/aria. Ex.: {\"rangeSeparator\":\"ate\",\"bandsAriaLabel\":\"Severidade\"}',\n },\n {\n name: 'scoreMin',\n label: 'Minimo (alias)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de min.',\n },\n {\n name: 'scoreMax',\n label: 'Maximo (alias)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de max.',\n },\n {\n name: 'scoreStep',\n label: 'Step (alias)',\n editorType: 'number',\n group: 'Compatibilidade',\n hint: 'Alias legado de step.',\n },\n {\n name: 'priorityBands',\n label: 'priorityBands (alias JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n },\n {\n name: 'severityBands',\n label: 'severityBands (alias JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n },\n {\n name: 'materialDesign.density',\n label: 'Densidade',\n editorType: 'select',\n group: 'Aparencia',\n options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'default', text: 'Padrao' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta dimensoes base do chip e painel inline.',\n },\n];\n","import {\n INLINE_FILTER_CONTROL_TYPES,\n type InlineFilterControlType,\n resolveInlineFilterControlType,\n} from '@praxisui/core';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport { dateProperties } from './date.config';\nimport { dateRangeProperties } from './date-range.config';\nimport { inlineDistanceRadiusProperties } from './inline-distance-radius.config';\nimport { inlineRelativePeriodProperties } from './inline-relative-period.config';\nimport { inlineSentimentProperties } from './inline-sentiment.config';\nimport { inlineColorLabelProperties } from './inline-color-label.config';\nimport { inlinePipelineStatusProperties } from './inline-pipeline-status.config';\nimport { inlineRatingProperties } from './inline-rating.config';\nimport { inlineScorePriorityProperties } from './inline-score-priority.config';\nimport { inputProperties } from './input.config';\nimport { numberProperties } from './number.config';\nimport { priceRangeProperties } from './price-range.config';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { selectProperties } from './select.config';\nimport { timePickerProperties } from './time-picker.config';\nimport { timeRangeProperties } from './time-range.config';\nimport { toggleProperties } from './toggle.config';\nimport { treeSelectProperties } from './tree-select.config';\nimport { currencyInputProperties } from './currency.config';\n\nexport const INLINE_FILTER_EDITOR_PROPERTIES_BY_CONTROL_TYPE: Readonly<\n Record<InlineFilterControlType, EditorProperty[]>\n> = Object.freeze({\n [INLINE_FILTER_CONTROL_TYPES.SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.SEARCHABLE_SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.ASYNC_SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.ENTITY_LOOKUP]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.AUTOCOMPLETE]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.MULTI_SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.INPUT]: inputProperties,\n [INLINE_FILTER_CONTROL_TYPES.TOGGLE]: toggleProperties,\n [INLINE_FILTER_CONTROL_TYPES.RANGE]: rangeSliderProperties,\n [INLINE_FILTER_CONTROL_TYPES.DATE]: dateProperties,\n [INLINE_FILTER_CONTROL_TYPES.DATE_RANGE]: dateRangeProperties,\n [INLINE_FILTER_CONTROL_TYPES.TIME]: timePickerProperties,\n [INLINE_FILTER_CONTROL_TYPES.TIME_RANGE]: timeRangeProperties,\n [INLINE_FILTER_CONTROL_TYPES.TREE_SELECT]: treeSelectProperties,\n [INLINE_FILTER_CONTROL_TYPES.NUMBER]: numberProperties,\n [INLINE_FILTER_CONTROL_TYPES.CURRENCY]: currencyInputProperties,\n [INLINE_FILTER_CONTROL_TYPES.CURRENCY_RANGE]: priceRangeProperties,\n [INLINE_FILTER_CONTROL_TYPES.RATING]: inlineRatingProperties,\n [INLINE_FILTER_CONTROL_TYPES.DISTANCE_RADIUS]:\n inlineDistanceRadiusProperties,\n [INLINE_FILTER_CONTROL_TYPES.PIPELINE_STATUS]:\n inlinePipelineStatusProperties,\n [INLINE_FILTER_CONTROL_TYPES.SCORE_PRIORITY]:\n inlineScorePriorityProperties,\n [INLINE_FILTER_CONTROL_TYPES.RELATIVE_PERIOD]:\n inlineRelativePeriodProperties,\n [INLINE_FILTER_CONTROL_TYPES.SENTIMENT]:\n inlineSentimentProperties,\n [INLINE_FILTER_CONTROL_TYPES.COLOR_LABEL]:\n inlineColorLabelProperties,\n});\n\nexport function resolveInlineFilterEditorProperties(\n controlType: unknown,\n): EditorProperty[] | undefined {\n const inlineType = resolveInlineFilterControlType(controlType);\n if (!inlineType) return undefined;\n return INLINE_FILTER_EDITOR_PROPERTIES_BY_CONTROL_TYPE[inlineType];\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\nimport { ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport {\n FieldControlType as FCT,\n type FieldControlType,\n type FieldDefinition,\n normalizeControlTypeToken,\n} from '@praxisui/core';\nimport { ConfigRegistryService } from '../../registry/config-registry.service';\nimport { SchemaNormalizerService } from '../../services/schema-normalizer.service';\nimport { DynamicFormFactoryService } from '../../services/dynamic-form-factory.service';\nimport { DynamicEditorRendererComponent } from '../dynamic-editor-renderer/dynamic-editor-renderer.component';\nimport { inputProperties } from '../../config/input.config';\nimport { selectProperties } from '../../config/select.config';\nimport { transferListProperties } from '../../config/transfer-list.config';\nimport { radioProperties } from '../../config/radio.config';\nimport { buttonToggleProperties } from '../../config/button-toggle.config';\nimport { treeSelectProperties } from '../../config/tree-select.config';\nimport { textareaProperties } from '../../config/textarea.config';\nimport { numberProperties } from '../../config/number.config';\nimport { dateProperties } from '../../config/date.config';\nimport { dateRangeProperties } from '../../config/date-range.config';\nimport { datetimeLocalProperties } from '../../config/datetime-local.config';\nimport { dateInputProperties } from '../../config/date-input.config';\nimport { timeInputProperties } from '../../config/time-input.config';\nimport { timePickerProperties } from '../../config/time-picker.config';\nimport { timeRangeProperties } from '../../config/time-range.config';\nimport { monthInputProperties } from '../../config/month.config';\nimport { weekInputProperties } from '../../config/week.config';\nimport { emailInputProperties } from '../../config/email.config';\nimport { passwordInputProperties } from '../../config/password.config';\nimport { urlInputProperties } from '../../config/url.config';\nimport { searchInputProperties } from '../../config/search.config';\nimport { phoneInputProperties } from '../../config/phone.config';\nimport { colorInputProperties } from '../../config/color.config';\nimport { colorPickerProperties } from '../../config/color-picker.config';\nimport { ratingProperties } from '../../config/rating.config';\nimport { chipInputProperties } from '../../config/chip-input.config';\nimport { checkboxGroupProperties } from '../../config/checkbox-group.config';\nimport { toggleProperties } from '../../config/toggle.config';\nimport { sliderProperties } from '../../config/slider.config';\nimport { rangeSliderProperties } from '../../config/range-slider.config';\nimport { currencyInputProperties } from '../../config/currency.config';\nimport { priceRangeProperties } from '../../config/price-range.config';\nimport { cpfCnpjProperties } from '../../config/cpf-cnpj.config';\nimport { fileUploadProperties } from '../../config/file-upload.config';\nimport { yearInputProperties } from '../../config/year.config';\nimport { avatarProperties } from '../../config/avatar.config';\nimport { SETTINGS_PANEL_DATA } from '@praxisui/settings-panel';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContextValidatorRegistryService } from '../../registry/context-validator-registry.service';\nimport { minLenLeMaxLen } from '../../validators/context-validators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { resolveInlineFilterEditorProperties } from '../../config/inline-filter-control-properties.map';\n\n@Component({\n selector: 'praxis-field-metadata-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, DynamicEditorRendererComponent],\n template: `\n <div class=\"p-3\" *ngIf=\"form\">\n <praxis-dynamic-editor-renderer\n [properties]=\"normalizedProps\"\n [form]=\"form\"\n ></praxis-dynamic-editor-renderer>\n </div>\n `,\n})\nexport class FieldMetadataEditorComponent implements OnInit {\n @Input() controlType!: FieldControlType;\n @Input() seed?: Partial<FieldDefinition>;\n @Output() applied = new EventEmitter<Partial<FieldDefinition>>();\n @Output() cancel = new EventEmitter<void>();\n\n form!: FormGroup;\n normalizedProps: any[] = [];\n private initialSnapshot: any | null = null;\n private baselineReady = false;\n // Lista de tipos suportados no editor (curada para os tipos com config disponível)\n typeOptions: Array<{ value: FieldControlType; label: string }> = [\n { value: (FCT as any).INPUT, label: 'Texto (Input)' },\n { value: (FCT as any).TEXTAREA, label: 'Texto longo (Textarea)' },\n { value: (FCT as any).NUMERIC_TEXT_BOX, label: 'Número' },\n { value: (FCT as any).CURRENCY_INPUT, label: 'Moeda' },\n { value: (FCT as any).PRICE_RANGE, label: 'Faixa de preço' },\n { value: (FCT as any).EMAIL_INPUT, label: 'E-mail' },\n { value: (FCT as any).PASSWORD, label: 'Senha' },\n { value: (FCT as any).URL_INPUT, label: 'URL' },\n { value: (FCT as any).SEARCH_INPUT, label: 'Busca' },\n { value: (FCT as any).PHONE, label: 'Telefone' },\n { value: (FCT as any).SELECT, label: 'Seleção (Select)' },\n { value: (FCT as any).MULTI_SELECT, label: 'Seleção múltipla' },\n { value: (FCT as any).SEARCHABLE_SELECT, label: 'Seleção buscável' },\n { value: (FCT as any).ASYNC_SELECT, label: 'Seleção assíncrona' },\n { value: (FCT as any).AUTO_COMPLETE, label: 'Auto-completar' },\n { value: (FCT as any).SELECTION_LIST, label: 'Lista de seleção' },\n { value: (FCT as any).TREE_SELECT, label: 'Árvore (Tree Select)' },\n { value: (FCT as any).MULTI_SELECT_TREE, label: 'Árvore múltipla' },\n { value: (FCT as any).RADIO, label: 'Opções (Radio)' },\n { value: (FCT as any).BUTTON_TOGGLE, label: 'Alternador (Button Toggle)' },\n { value: (FCT as any).CHECKBOX, label: 'Caixa de seleção' },\n { value: (FCT as any).TOGGLE, label: 'Liga/Desliga (Toggle)' },\n { value: (FCT as any).SLIDER, label: 'Slider' },\n { value: (FCT as any).RANGE_SLIDER, label: 'Slider (intervalo)' },\n { value: (FCT as any).DATE_INPUT, label: 'Data (Input)' },\n { value: (FCT as any).DATE_PICKER, label: 'Data (Datepicker)' },\n { value: (FCT as any).DATE_RANGE, label: 'Intervalo de data' },\n { value: (FCT as any).DATETIME_LOCAL_INPUT, label: 'Data e Hora (local)' },\n { value: (FCT as any).TIME_INPUT, label: 'Hora (Input)' },\n { value: (FCT as any).TIME_PICKER, label: 'Hora (Picker)' },\n { value: (FCT as any).TIME_RANGE, label: 'Intervalo de hora' },\n { value: (FCT as any).MONTH_INPUT, label: 'Mês' },\n { value: (FCT as any).WEEK_INPUT, label: 'Semana' },\n { value: (FCT as any).YEAR_INPUT, label: 'Ano' },\n { value: (FCT as any).COLOR_INPUT, label: 'Cor (Input)' },\n { value: (FCT as any).COLOR_PICKER, label: 'Cor (Picker)' },\n { value: (FCT as any).RATING, label: 'Avaliação (Rating)' },\n { value: (FCT as any).CHIP_INPUT, label: 'Chips' },\n { value: (FCT as any).TRANSFER_LIST, label: 'Transferência de itens' },\n { value: (FCT as any).CPF_CNPJ_INPUT, label: 'CPF/CNPJ' },\n { value: (FCT as any).FILE_UPLOAD, label: 'Upload de Arquivo' },\n { value: (FCT as any).AVATAR, label: 'Avatar' },\n ];\n\n // Settings Panel integration (contract: isDirty$, isValid$, isBusy$)\n isDirty$ = new BehaviorSubject<boolean>(false);\n isValid$ = new BehaviorSubject<boolean>(true);\n isBusy$ = new BehaviorSubject<boolean>(false);\n private readonly destroyRef = inject(DestroyRef);\n private lastCurrencyPreset: { locale?: string; decimalPlaces?: number; currencyPosition?: string } | null = null;\n\n constructor(\n private registry: ConfigRegistryService,\n private normalizer: SchemaNormalizerService,\n private factory: DynamicFormFactoryService,\n private ctxValidators: ContextValidatorRegistryService,\n ) {\n // Support SETTINGS_PANEL_DATA injection as input fallback\n const data = inject(SETTINGS_PANEL_DATA, { optional: true }) as\n | { controlType?: FieldControlType; seed?: Partial<FieldDefinition>; hostBridge?: { applyPatch?: (p: any) => void } }\n | undefined;\n if (data) {\n if (data.controlType) this.controlType = data.controlType;\n if (data.seed) this.seed = data.seed;\n // Bridge: allow host to receive patches even if saved$/applied$ are missed\n try { (this as any).__hostApplyPatch = data.hostBridge?.applyPatch; } catch {}\n }\n // Normalize legacy avatar seed (root imageSrc/imageAlt -> extra.* for editor binding)\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).AVATAR)) {\n const seedAny: any = this.seed || {};\n const extra = seedAny.extra || {};\n if (seedAny.imageSrc !== undefined && extra.imageSrc === undefined) {\n extra.imageSrc = seedAny.imageSrc;\n }\n if (seedAny.imageAlt !== undefined && extra.imageAlt === undefined) {\n extra.imageAlt = seedAny.imageAlt;\n }\n if (extra !== seedAny.extra) {\n seedAny.extra = extra;\n this.seed = seedAny;\n }\n }\n } catch {}\n }\n\n ngOnInit(): void {\n try {\n const hasBridge = typeof (this as any).__hostApplyPatch === 'function';\n (console.log || console.debug)('[FieldMetadataEditor] ngOnInit', { controlType: this.controlType, hasHostBridge: hasBridge });\n } catch {}\n this.rebuildEditorForType(this.controlType);\n }\n\n private rebuildEditorForType(ct: FieldControlType): void {\n this.controlType = ct;\n let props = this.registry.getProperties(this.controlType);\n try {\n (console.log || console.debug)('[FieldMetadataEditor] init', {\n controlType: this.controlType,\n seedPreview: {\n resourcePath: (this.seed as any)?.resourcePath,\n optionLabelKey: (this.seed as any)?.optionLabelKey,\n optionValueKey: (this.seed as any)?.optionValueKey,\n filterCriteria:\n typeof (this.seed as any)?.filterCriteria === 'string'\n ? (this.seed as any)?.filterCriteria\n : (this.seed as any)?.filterCriteria != null\n ? JSON.stringify((this.seed as any)?.filterCriteria)\n : undefined,\n },\n propsBefore: props.map((p) => p.name),\n });\n } catch {}\n // Fallback de registro mínimo para facilitar execução inicial\n if (!props.length) {\n const controlTypeToken = normalizeControlTypeToken(this.controlType);\n const inlineProps = resolveInlineFilterEditorProperties(controlTypeToken);\n if (inlineProps) {\n this.registry.register(this.controlType, inlineProps);\n props = inlineProps;\n } else if (this.controlType === (FCT as any).INPUT) {\n this.registry.register(this.controlType, inputProperties);\n props = inputProperties;\n } else if (\n // Aliases for select-like\n controlTypeToken === 'searchableselect' ||\n controlTypeToken === 'asyncselect' ||\n controlTypeToken === 'entitylookup'\n ) {\n this.registry.register(this.controlType, selectProperties);\n props = selectProperties;\n } else if (this.controlType === (FCT as any).NUMERIC_TEXT_BOX) {\n this.registry.register(this.controlType, numberProperties);\n props = numberProperties;\n } else if (this.controlType === (FCT as any).DATE_PICKER) {\n this.registry.register(this.controlType, dateProperties);\n props = dateProperties;\n } else if (this.controlType === (FCT as any).DATE_INPUT) {\n this.registry.register(this.controlType, dateInputProperties);\n props = dateInputProperties;\n } else if (this.controlType === (FCT as any).DATE_RANGE) {\n this.registry.register(this.controlType, dateRangeProperties);\n props = dateRangeProperties;\n } else if (this.controlType === (FCT as any).DATETIME_LOCAL_INPUT) {\n this.registry.register(this.controlType, datetimeLocalProperties);\n props = datetimeLocalProperties;\n } else if (this.controlType === (FCT as any).TIME_INPUT) {\n this.registry.register(this.controlType, timeInputProperties);\n props = timeInputProperties;\n } else if (this.controlType === (FCT as any).TIME_PICKER) {\n this.registry.register(this.controlType, timePickerProperties);\n props = timePickerProperties;\n } else if (this.controlType === (FCT as any).TIME_RANGE) {\n this.registry.register(this.controlType, timeRangeProperties);\n props = timeRangeProperties;\n } else if (this.controlType === (FCT as any).MONTH_INPUT) {\n this.registry.register(this.controlType, monthInputProperties);\n props = monthInputProperties;\n } else if (this.controlType === (FCT as any).WEEK_INPUT) {\n this.registry.register(this.controlType, weekInputProperties);\n props = weekInputProperties;\n } else if (this.controlType === (FCT as any).EMAIL_INPUT) {\n this.registry.register(this.controlType, emailInputProperties);\n props = emailInputProperties;\n } else if (this.controlType === (FCT as any).PASSWORD) {\n this.registry.register(this.controlType, passwordInputProperties);\n props = passwordInputProperties;\n } else if (this.controlType === (FCT as any).URL_INPUT) {\n this.registry.register(this.controlType, urlInputProperties);\n props = urlInputProperties;\n } else if (this.controlType === (FCT as any).SEARCH_INPUT) {\n this.registry.register(this.controlType, searchInputProperties);\n props = searchInputProperties;\n } else if (this.controlType === (FCT as any).PHONE) {\n this.registry.register(this.controlType, phoneInputProperties);\n props = phoneInputProperties;\n } else if (this.controlType === (FCT as any).COLOR_INPUT) {\n this.registry.register(this.controlType, colorInputProperties);\n props = colorInputProperties;\n } else if (this.controlType === (FCT as any).COLOR_PICKER) {\n this.registry.register(this.controlType, colorPickerProperties);\n props = colorPickerProperties;\n } else if (this.controlType === (FCT as any).RATING) {\n this.registry.register(this.controlType, ratingProperties);\n props = ratingProperties;\n } else if (\n this.controlType === (FCT as any).SELECT ||\n this.controlType === (FCT as any).MULTI_SELECT ||\n this.controlType === (FCT as any).SEARCHABLE_SELECT ||\n this.controlType === (FCT as any).ASYNC_SELECT ||\n this.controlType === (FCT as any).AUTO_COMPLETE ||\n this.controlType === (FCT as any).SELECTION_LIST\n ) {\n this.registry.register(this.controlType, selectProperties);\n props = selectProperties;\n } else if (this.controlType === (FCT as any).TEXTAREA) {\n this.registry.register(this.controlType, textareaProperties);\n props = textareaProperties;\n } else if (this.controlType === (FCT as any).TRANSFER_LIST) {\n this.registry.register(this.controlType, transferListProperties);\n props = transferListProperties;\n } else if (this.controlType === (FCT as any).RADIO) {\n this.registry.register(this.controlType, radioProperties);\n props = radioProperties;\n } else if (this.controlType === (FCT as any).BUTTON_TOGGLE) {\n this.registry.register(this.controlType, buttonToggleProperties);\n props = buttonToggleProperties;\n } else if (this.controlType === (FCT as any).CHIP_INPUT) {\n this.registry.register(this.controlType, chipInputProperties);\n props = chipInputProperties;\n } else if (this.controlType === (FCT as any).CHECKBOX) {\n this.registry.register(this.controlType, checkboxGroupProperties);\n props = checkboxGroupProperties;\n } else if (this.controlType === (FCT as any).TOGGLE) {\n this.registry.register(this.controlType, toggleProperties);\n props = toggleProperties;\n } else if (this.controlType === (FCT as any).SLIDER) {\n this.registry.register(this.controlType, sliderProperties);\n props = sliderProperties;\n } else if (this.controlType === (FCT as any).RANGE_SLIDER) {\n this.registry.register(this.controlType, rangeSliderProperties);\n props = rangeSliderProperties;\n } else if (this.controlType === (FCT as any).CURRENCY_INPUT) {\n this.registry.register(this.controlType, currencyInputProperties);\n props = currencyInputProperties;\n } else if (this.controlType === (FCT as any).PRICE_RANGE) {\n this.registry.register(this.controlType, priceRangeProperties);\n props = priceRangeProperties;\n } else if (this.controlType === (FCT as any).CPF_CNPJ_INPUT) {\n this.registry.register(this.controlType, cpfCnpjProperties);\n props = cpfCnpjProperties;\n } else if (this.controlType === (FCT as any).FILE_UPLOAD) {\n this.registry.register(this.controlType, fileUploadProperties);\n props = fileUploadProperties;\n } else if (this.controlType === (FCT as any).YEAR_INPUT) {\n this.registry.register(this.controlType, yearInputProperties);\n props = yearInputProperties;\n } else if (this.controlType === (FCT as any).AVATAR) {\n this.registry.register(this.controlType, avatarProperties);\n props = avatarProperties;\n } else if (\n this.controlType === (FCT as any).TREE_SELECT ||\n this.controlType === (FCT as any).MULTI_SELECT_TREE\n ) {\n this.registry.register(this.controlType, treeSelectProperties);\n props = treeSelectProperties;\n }\n }\n try {\n (console.log || console.debug)('[FieldMetadataEditor] props after registry resolution', {\n resolvedProps: props.map((p) => p.name),\n });\n } catch {}\n // Inject controlType selector into 'Geral' group so users can change field type\n try {\n const typeProp = {\n name: 'controlType',\n label: 'Tipo de campo',\n editorType: 'select',\n group: 'Geral',\n // Destaque visual e aviso claro sobre risco\n prefixIcon: 'warning',\n hint:\n '⚠️ Alterar o tipo de campo NÃO altera o tipo de dado na API. ' +\n 'Isso pode causar erro ao salvar se o formato esperado for diferente.',\n options: this.typeOptions.map((o) => ({ value: o.value, text: o.label })),\n defaultValue: this.controlType,\n } as any;\n props = [typeProp, ...props];\n } catch {}\n\n this.normalizedProps = this.normalizer.normalize(props, this.seed);\n try {\n console.debug('[FieldMetadataEditor] normalized props', {\n propNames: this.normalizedProps.map((p: any) => p.name),\n defaults: this.normalizedProps\n .filter((p: any) =>\n ['resourcePath', 'filterCriteria', 'optionLabelKey', 'optionValueKey'].includes(p.name),\n )\n .map((p: any) => ({ name: p.name, defaultValue: p.defaultValue })),\n optionsDefault: (() => {\n const opt = (this.normalizedProps as any[]).find((p) => p.name === 'options');\n if (!opt) return undefined;\n const v: any = opt.defaultValue;\n return {\n type: v == null ? 'null' : typeof v,\n preview: typeof v === 'string' ? String(v).slice(0, 80) : undefined,\n lengthOrCount: Array.isArray(v)\n ? v.length\n : (typeof v === 'string' ? (v as string).length : undefined),\n };\n })(),\n });\n } catch {}\n // Backward-compatible bridge: if a config still uses providerOptions, hydrate from seed.options.\n try {\n const hasProviderOptions = this.normalizedProps.some((p: any) => p.name === 'providerOptions');\n const seedOptions = (this.seed as any)?.options;\n if (hasProviderOptions && seedOptions !== undefined) {\n const v = typeof seedOptions === 'string' ? seedOptions : (() => { try { return JSON.stringify(seedOptions, null, 2); } catch { return String(seedOptions); } })();\n this.normalizedProps = this.normalizedProps.map((p: any) =>\n p.name === 'providerOptions' && p.defaultValue === undefined ? { ...p, defaultValue: v } : p,\n );\n (console.log || console.debug)('[FieldMetadataEditor] providerOptions default injected from seed.options', {\n type: typeof seedOptions,\n lengthOrCount: Array.isArray(seedOptions) ? seedOptions.length : (typeof seedOptions === 'string' ? seedOptions.length : undefined),\n });\n }\n } catch {}\n // Register contextual validators for INPUT/TEXTAREA (minLength <= maxLength)\n if (\n this.controlType === (FCT as any).INPUT ||\n this.controlType === (FCT as any).TEXTAREA\n ) {\n const existing = this.ctxValidators.get(this.controlType);\n if (!existing.includes(minLenLeMaxLen)) {\n this.ctxValidators.register(this.controlType, minLenLeMaxLen);\n }\n }\n this.form = this.factory.createEditorForm(\n this.controlType,\n this.normalizedProps,\n this.seed,\n );\n // Apply seed values into the form controls (only non-null/undefined)\n try {\n const getByPath = (obj: any, path: string) => {\n if (!obj || typeof obj !== 'object') return undefined;\n if (!path || typeof path !== 'string') return undefined;\n const parts = path.split('.');\n let curr: any = obj;\n for (const k of parts) {\n if (curr == null) return undefined;\n curr = curr[k];\n }\n return curr;\n };\n const subset: Record<string, any> = {};\n for (const p of this.normalizedProps || []) {\n const name = p?.name as string;\n if (!name) continue;\n const val = getByPath(this.seed, name);\n // Preserve false/0; skip only null/undefined\n if (val !== undefined && val !== null) {\n this.factory.setValueByPath(this.form, name, val);\n subset[name] = val;\n }\n }\n // Also patch the form in a single call to ensure UI reflects values immediately\n try { this.form.patchValue(subset, { emitEvent: false }); } catch {}\n // Diagnostics for Rating seeding after applying seed → form\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).RATING)) {\n const pick = (k: string) => this.form.get(k)?.value;\n console.debug('[FieldMetadataEditor][RATING] seeded form values', {\n max: pick('max'),\n allowHalf: pick('allowHalf'),\n selection: pick('selection'),\n size: pick('size'),\n icon: pick('icon'),\n emptyIcon: pick('emptyIcon'),\n svgIcon: pick('svgIcon'),\n svgIconOutline: pick('svgIconOutline'),\n ratingColor: pick('ratingColor'),\n outlineColor: pick('outlineColor'),\n readonly: pick('readonly'),\n tabIndex: pick('tabIndex'),\n ariaLabel: pick('ariaLabel'),\n });\n }\n } catch {}\n } catch {}\n // Diagnostics: dump initial values for Rating editor\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).RATING)) {\n const pick = (k: string) => this.form.get(k)?.value;\n console.debug('[FieldMetadataEditor][RATING] initial form values', {\n max: pick('max'),\n allowHalf: pick('allowHalf'),\n selection: pick('selection'),\n size: pick('size'),\n icon: pick('icon'),\n emptyIcon: pick('emptyIcon'),\n svgIcon: pick('svgIcon'),\n svgIconOutline: pick('svgIconOutline'),\n ratingColor: pick('ratingColor'),\n outlineColor: pick('outlineColor'),\n readonly: pick('readonly'),\n tabIndex: pick('tabIndex'),\n ariaLabel: pick('ariaLabel'),\n });\n }\n } catch {}\n // Capture baseline after seed is applied to avoid missing first user change\n try {\n this.initialSnapshot = this.form.getRawValue();\n this.baselineReady = true;\n if (this.isDirty$.value) this.isDirty$.next(false);\n (console.log || console.debug)('[FieldMetadataEditor] baseline captured (immediate)');\n } catch {\n this.baselineReady = true;\n }\n // track validity/dirty with snapshot-based detection (avoid false dirty on init)\n this.isValid$.next(this.form.valid);\n this.form.statusChanges.subscribe(() => this.isValid$.next(this.form.valid));\n this.setupCurrencyPresetSync();\n this.form.valueChanges.subscribe((val) => {\n if (!this.baselineReady) {\n // Ignore initial churn until baseline is captured\n return;\n }\n if (this.initialSnapshot == null) {\n this.initialSnapshot = val;\n if (this.isDirty$.value) this.isDirty$.next(false);\n try { (console.log || console.debug)('[FieldMetadataEditor] baseline set from first stable value'); } catch {}\n return;\n }\n let same = false;\n try { same = JSON.stringify(val) === JSON.stringify(this.initialSnapshot); } catch { same = false; }\n const dirty = !same;\n if (dirty !== this.isDirty$.value) {\n try { (console.log || console.debug)('[FieldMetadataEditor] dirty ->', dirty); } catch {}\n this.isDirty$.next(dirty);\n }\n });\n }\n\n private setupCurrencyPresetSync(): void {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU !== String((FCT as any).CURRENCY_INPUT) && ctU !== 'CURRENCY' && ctU !== String((FCT as any).PRICE_RANGE) && ctU !== 'PRICERANGE') {\n return;\n }\n const currencyControl = this.form.get('currency');\n if (!currencyControl) return;\n\n const presets: Record<string, { locale: string; decimalPlaces: number; currencyPosition: 'before' | 'after' }> = {\n BRL: { locale: 'pt-BR', decimalPlaces: 2, currencyPosition: 'before' },\n USD: { locale: 'en-US', decimalPlaces: 2, currencyPosition: 'before' },\n EUR: { locale: 'de-DE', decimalPlaces: 2, currencyPosition: 'after' },\n GBP: { locale: 'en-GB', decimalPlaces: 2, currencyPosition: 'before' },\n JPY: { locale: 'ja-JP', decimalPlaces: 0, currencyPosition: 'before' },\n CLP: { locale: 'es-CL', decimalPlaces: 0, currencyPosition: 'before' },\n ARS: { locale: 'es-AR', decimalPlaces: 2, currencyPosition: 'before' },\n MXN: { locale: 'es-MX', decimalPlaces: 2, currencyPosition: 'before' },\n COP: { locale: 'es-CO', decimalPlaces: 2, currencyPosition: 'before' },\n PEN: { locale: 'es-PE', decimalPlaces: 2, currencyPosition: 'before' },\n UYU: { locale: 'es-UY', decimalPlaces: 2, currencyPosition: 'before' },\n PYG: { locale: 'es-PY', decimalPlaces: 0, currencyPosition: 'before' },\n BOB: { locale: 'es-BO', decimalPlaces: 2, currencyPosition: 'before' },\n CAD: { locale: 'en-CA', decimalPlaces: 2, currencyPosition: 'before' },\n AUD: { locale: 'en-AU', decimalPlaces: 2, currencyPosition: 'before' },\n NZD: { locale: 'en-NZ', decimalPlaces: 2, currencyPosition: 'before' },\n CHF: { locale: 'de-CH', decimalPlaces: 2, currencyPosition: 'before' },\n CNY: { locale: 'zh-CN', decimalPlaces: 2, currencyPosition: 'before' },\n HKD: { locale: 'zh-HK', decimalPlaces: 2, currencyPosition: 'before' },\n SGD: { locale: 'en-SG', decimalPlaces: 2, currencyPosition: 'before' },\n INR: { locale: 'en-IN', decimalPlaces: 2, currencyPosition: 'before' },\n ZAR: { locale: 'en-ZA', decimalPlaces: 2, currencyPosition: 'before' },\n DOP: { locale: 'es-DO', decimalPlaces: 2, currencyPosition: 'before' },\n CRC: { locale: 'es-CR', decimalPlaces: 2, currencyPosition: 'before' },\n GTQ: { locale: 'es-GT', decimalPlaces: 2, currencyPosition: 'before' },\n HNL: { locale: 'es-HN', decimalPlaces: 2, currencyPosition: 'before' },\n NIO: { locale: 'es-NI', decimalPlaces: 2, currencyPosition: 'before' },\n PAB: { locale: 'es-PA', decimalPlaces: 2, currencyPosition: 'before' },\n VES: { locale: 'es-VE', decimalPlaces: 2, currencyPosition: 'before' },\n };\n\n currencyControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value: any) => {\n const code = String(value || '').toUpperCase();\n const preset = presets[code];\n if (!preset) return;\n\n const localeCtrl = this.form.get('locale');\n const decimalsCtrl = this.form.get('decimalPlaces');\n const positionCtrl = this.form.get('currencyPosition');\n\n const nextPatch: Record<string, any> = {};\n const shouldApply = (ctrl: any, key: 'locale' | 'decimalPlaces' | 'currencyPosition') => {\n if (!ctrl) return false;\n const current = ctrl.value;\n if (current === null || current === undefined || current === '') return true;\n if (this.lastCurrencyPreset && current === (this.lastCurrencyPreset as any)[key]) return true;\n return false;\n };\n\n if (shouldApply(localeCtrl, 'locale')) nextPatch.locale = preset.locale;\n if (shouldApply(decimalsCtrl, 'decimalPlaces')) nextPatch.decimalPlaces = preset.decimalPlaces;\n if (shouldApply(positionCtrl, 'currencyPosition')) nextPatch.currencyPosition = preset.currencyPosition;\n\n if (Object.keys(nextPatch).length) {\n this.form.patchValue(nextPatch, { emitEvent: false });\n }\n this.lastCurrencyPreset = {\n locale: preset.locale,\n decimalPlaces: preset.decimalPlaces,\n currencyPosition: preset.currencyPosition,\n };\n });\n }\n\n apply(): void {\n const raw = this.factory.extractPatch(this.form) as any;\n const patch = this.buildDeltaPatch(raw, this.initialSnapshot) as any;\n this.normalizeKnownTextareaPatchValues(patch);\n // Map editor-friendly 'providerOptions' back to canonical 'options'\n if (patch && patch.providerOptions !== undefined && patch.options === undefined) {\n patch.options = patch.providerOptions;\n delete patch.providerOptions;\n }\n // Sempre incluir controlType no patch quando presente\n (patch as any).controlType = this.controlType as any;\n try { console.debug('[FieldMetadataEditor] apply() patch', patch); } catch {}\n try { const fn = (this as any).__hostApplyPatch; if (typeof fn === 'function') fn(patch); } catch {}\n this.applied.emit(patch);\n }\n\n onSave(): Partial<FieldDefinition> | undefined {\n return this.getSettingsValue();\n }\n\n // Settings Panel value provider API\n getSettingsValue(): Partial<FieldDefinition> {\n const raw = this.factory.extractPatch(this.form) as any;\n const patch = this.buildDeltaPatch(raw, this.initialSnapshot) as any;\n this.normalizeKnownTextareaPatchValues(patch);\n if (patch && patch.providerOptions !== undefined && patch.options === undefined) {\n patch.options = patch.providerOptions;\n delete patch.providerOptions;\n }\n (patch as any).controlType = this.controlType as any;\n try { console.debug('[FieldMetadataEditor] getSettingsValue() patch', patch); } catch {}\n return patch;\n }\n\n /**\n * Constrói um patch delta a partir do valor atual do form, removendo\n * chaves não alteradas.\n * Semântica de patch: `null` representa remoção da propriedade (JSON Merge Patch).\n */\n private buildDeltaPatch(current: any, baseline: any): any {\n try {\n const isObject = (v: any) => v != null && typeof v === 'object' && !Array.isArray(v);\n const isEmptyLike = (v: any) =>\n v === null ||\n v === undefined ||\n (typeof v === 'string' && v.trim() === '');\n const areEqual = (a: any, b: any) => {\n if (a === b) return true;\n try {\n return JSON.stringify(a) === JSON.stringify(b);\n } catch {\n return false;\n }\n };\n const changed: any = {};\n const keys = Object.keys(current || {});\n for (const k of keys) {\n const cv = (current as any)[k];\n const bv = baseline ? (baseline as any)[k] : undefined;\n\n // Campos limpos explicitamente removem a propriedade quando antes havia valor.\n if (isEmptyLike(cv)) {\n if (!isEmptyLike(bv)) {\n changed[k] = null;\n }\n continue;\n }\n\n if (isObject(cv)) {\n const nested = this.buildDeltaPatch(cv, isObject(bv) ? bv : undefined);\n if (nested && Object.keys(nested).length) {\n changed[k] = nested;\n }\n } else {\n // Incluir apenas se mudou em relação ao baseline.\n if (baseline === null || baseline === undefined || !areEqual(cv, bv)) {\n changed[k] = cv;\n }\n }\n }\n return changed;\n } catch {\n // Fallback: retornar current quando algo falhar (melhor do que perder patch)\n return current;\n }\n }\n\n /**\n * Converte campos de textarea conhecidos para o tipo esperado em runtime.\n * Evita persistir strings cruas quando o componente espera arrays.\n */\n private normalizeKnownTextareaPatchValues(patch: any): void {\n if (!patch || typeof patch !== 'object') {\n return;\n }\n\n if (typeof patch.timeOptions === 'string') {\n const parsedTimeOptions = this.parseStringListTextarea(patch.timeOptions);\n if (parsedTimeOptions) {\n patch.timeOptions = parsedTimeOptions;\n }\n }\n\n if (typeof patch.inlineTimeQuickPresets === 'string') {\n const parsedQuickPresets = this.parseArrayTextarea(\n patch.inlineTimeQuickPresets,\n );\n if (parsedQuickPresets) {\n patch.inlineTimeQuickPresets = parsedQuickPresets;\n }\n }\n\n if (typeof patch.inlineTimeTrackShifts === 'string') {\n const parsedTrackShifts = this.parseArrayTextarea(\n patch.inlineTimeTrackShifts,\n );\n if (parsedTrackShifts) {\n patch.inlineTimeTrackShifts = parsedTrackShifts;\n }\n }\n\n if (typeof patch.links === 'string') {\n const parsedLinks = this.parseArrayTextarea(patch.links);\n if (parsedLinks) {\n patch.links = parsedLinks;\n }\n }\n }\n\n /**\n * Interpreta textarea como lista simples de strings:\n * - JSON array de strings\n * - fallback linha a linha (um valor por linha)\n */\n private parseStringListTextarea(value: string): string[] | null {\n const raw = String(value || '').trim();\n if (!raw) {\n return null;\n }\n\n const parsedJson = this.tryParseJson(raw);\n if (Array.isArray(parsedJson)) {\n const normalized = parsedJson\n .map((entry) => String(entry ?? '').trim())\n .filter((entry) => entry.length > 0);\n return normalized.length ? normalized : null;\n }\n\n const byLine = raw\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0);\n return byLine.length ? byLine : null;\n }\n\n /**\n * Interpreta textarea como array:\n * - JSON array (preferencial)\n * - fallback linha a linha para array de strings\n */\n private parseArrayTextarea(value: string): unknown[] | null {\n const raw = String(value || '').trim();\n if (!raw) {\n return null;\n }\n\n const parsedJson = this.tryParseJson(raw);\n if (Array.isArray(parsedJson)) {\n return parsedJson;\n }\n\n const byLine = raw\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0);\n return byLine.length ? byLine : null;\n }\n\n private tryParseJson(raw: string): unknown {\n try {\n return JSON.parse(raw);\n } catch {\n return null;\n }\n }\n\n reset(): void {\n this.form.reset(this.factory.extractPatch(this.form));\n this.isDirty$.next(false);\n }\n\n onControlTypeChange(next: FieldControlType): void {\n this.rebuildEditorForType(next);\n this.isDirty$.next(true);\n }\n\n // Template-safe change handler (avoid TS casts in template)\n onControlTypeChangeEvent(event: Event): void {\n const value = (event.target as HTMLSelectElement | null)?.value as any;\n if (value != null) this.onControlTypeChange(value as FieldControlType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { FieldDefinition, FieldMetadata } from '@praxisui/core';\n\nexport interface CascadeRuleViewModel {\n targetField: string;\n dependencyFields: string[];\n enableDependencyCascade: boolean;\n resetOnDependentChange: boolean;\n dependencyFilterMap?: Record<string, any> | null;\n dependencyValuePath?: string | Record<string, string> | null;\n dependencyMergeStrategy?: 'merge' | 'replace';\n dependencyDebounceMs?: number | null;\n dependencyLoadOnChange?: 'respectLoadOn' | 'immediate' | 'manual';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CascadeRulesService {\n getFieldLabelMap(fields: Array<FieldDefinition | FieldMetadata>): Map<string, string> {\n const map = new Map<string, string>();\n fields.forEach((f) => map.set(f.name, f.label || f.name));\n return map;\n }\n\n hydrateRule(field: FieldDefinition | FieldMetadata): CascadeRuleViewModel | null {\n const deps = (field as any).dependencyFields as string[] | undefined;\n if (!deps || deps.length === 0) return null;\n const vm: CascadeRuleViewModel = {\n targetField: field.name,\n dependencyFields: [...deps],\n enableDependencyCascade:\n (field as any).enableDependencyCascade === false ? false : true,\n resetOnDependentChange: !!(field as any).resetOnDependentChange,\n dependencyFilterMap: (field as any).dependencyFilterMap || null,\n dependencyValuePath: (field as any).dependencyValuePath || null,\n dependencyMergeStrategy: (field as any).dependencyMergeStrategy || 'merge',\n dependencyDebounceMs:\n (field as any).dependencyDebounceMs != null\n ? Number((field as any).dependencyDebounceMs)\n : 150,\n dependencyLoadOnChange:\n (field as any).dependencyLoadOnChange || 'respectLoadOn',\n };\n return vm;\n }\n\n dehydratePatch(rule: CascadeRuleViewModel): Partial<FieldDefinition> {\n const patch: any = {\n dependencyFields: rule.dependencyFields,\n enableDependencyCascade: rule.enableDependencyCascade,\n resetOnDependentChange: rule.resetOnDependentChange,\n dependencyMergeStrategy: rule.dependencyMergeStrategy || 'merge',\n dependencyLoadOnChange: rule.dependencyLoadOnChange || 'respectLoadOn',\n };\n if (rule.dependencyFilterMap != null) patch.dependencyFilterMap = rule.dependencyFilterMap;\n if (rule.dependencyValuePath != null) patch.dependencyValuePath = rule.dependencyValuePath as any;\n if (rule.dependencyDebounceMs != null)\n patch.dependencyDebounceMs = Number(rule.dependencyDebounceMs);\n return patch as Partial<FieldDefinition>;\n }\n\n /** Suggest a basic mapping dep->dep and a default valuePath */\n suggest(rule: CascadeRuleViewModel, inferredValueKey?: string): CascadeRuleViewModel {\n const map: Record<string, any> = {};\n (rule.dependencyFields || []).forEach((dep) => (map[dep] = dep));\n return {\n ...rule,\n dependencyFilterMap: Object.keys(map).length ? map : rule.dependencyFilterMap,\n dependencyValuePath: rule.dependencyValuePath || inferredValueKey || 'id',\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, OnChanges, SimpleChanges, signal } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport type { FieldDefinition, FieldMetadata } from '@praxisui/core';\nimport { CascadeRulesService, CascadeRuleViewModel } from './cascade-rules.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { PraxisIconDirective } from '@praxisui/core';\n\n@Component({\n selector: 'praxis-cascade-manager-tab',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatInputModule,\n MatChipsModule,\n MatListModule,\n MatDividerModule,\n MatSelectModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatMenuModule,\n MatAutocompleteModule,\n ScrollingModule,\n PraxisIconDirective,\n ],\n styles: [\n `\n :host { display: block; }\n .cm-root { display: grid; grid-template-columns: 320px 1fr; gap: 16px; min-height: 420px; }\n .cm-left { border-right: 1px solid var(--md-sys-color-outline-variant); padding-right: 8px; }\n .cm-search { width: 100%; margin-bottom: 8px; }\n .cm-right { padding-left: 8px; }\n .field-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 6px; cursor: pointer; border-radius: 10px; transition: background 120ms ease, border 120ms ease; border: 1px solid transparent; }\n .field-item:hover { background: var(--md-sys-color-surface-container-high); }\n .field-item.selected { background: var(--md-sys-color-surface-container-highest); border-color: var(--md-sys-color-outline-variant); }\n .rule-badges { display: inline-flex; gap: 6px; }\n .rule-badge { font-size: 11px; padding: 2px 8px; border-radius: 999px; font-weight: 600; }\n .b-active { background: var(--md-sys-color-primary-container); color: var(--md-sys-color-on-primary-container); }\n .b-manual { background: var(--md-sys-color-surface-container-high); color: var(--md-sys-color-on-surface-variant); }\n .b-immediate { background: var(--md-sys-color-secondary-container); color: var(--md-sys-color-on-secondary-container); }\n .b-conflict { background: var(--md-sys-color-error-container); color: var(--md-sys-color-on-error-container); }\n .cm-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }\n .rules-empty { opacity: .8; font-style: italic; padding: 8px 0; color: var(--md-sys-color-on-surface-variant); }\n .rule-row { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--md-sys-color-outline-variant); }\n .rule-actions button { margin-left: 4px; }\n .banner { background: var(--md-sys-color-tertiary-container); color: var(--md-sys-color-on-tertiary-container); padding: 10px 12px; border: 1px solid var(--md-sys-color-outline-variant); border-radius: 8px; margin-bottom: 10px; display: flex; gap: 8px; align-items: center; }\n .import-panel { background: var(--md-sys-color-surface-container-high); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 8px; padding: 10px; margin-bottom: 10px; }\n .full { width: 100%; }\n .form-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }\n .form-grid { display: grid; gap: 12px; padding: 8px 0; }\n .map-table { width: 100%; border-collapse: collapse; }\n .map-table th, .map-table td { padding: 8px 8px; border-bottom: 1px dashed var(--md-sys-color-outline-variant); }\n .kbd { font-family: monospace; background: var(--md-sys-color-surface-container-highest); padding: 0 6px; border-radius: 4px; color: var(--md-sys-color-on-surface-variant); }\n .panel-surface { background: var(--md-sys-color-surface-container-high); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 10px; box-shadow: var(--md-sys-elevation-level1, none); margin-bottom: 12px; }\n .panel-stack { display: grid; gap: 12px; margin: 12px 0; }\n .stack-panel { background: var(--md-sys-color-surface-container-high); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 10px; box-shadow: var(--md-sys-elevation-level1, none); }\n .stack-panel .mat-expansion-panel-content { padding: 0 16px 12px; }\n .panel-header { display: flex; align-items: center; gap: 8px; }\n .preview-box { background: var(--md-sys-color-surface-container-low); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 8px; padding: 8px; color: var(--md-sys-color-on-surface); }\n .help-icon-button {\n --mdc-icon-button-state-layer-size: 28px;\n --mdc-icon-button-icon-size: 18px;\n width: 28px;\n height: 28px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-right: -4px;\n }\n .help-icon-button mat-icon { font-size: 18px; width: 18px; height: 18px; }\n .mat-mdc-form-field-icon-suffix { align-self: center; }\n `\n ],\n template: `\n <div class=\"cm-root\">\n <!-- Left: Fields list -->\n <div class=\"cm-left\">\n <mat-form-field appearance=\"outline\" class=\"cm-search\" subscriptSizing=\"dynamic\">\n <mat-label>Buscar campos</mat-label>\n <input matInput [ngModel]=\"searchTerm\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n <ng-container *ngIf=\"fields.length <= 50; else vscroll\">\n <div>\n <div *ngFor=\"let f of filteredFields()\" (click)=\"selectField(f.name)\" class=\"field-item\" [class.selected]=\"f.name===selectedField()\" tabindex=\"0\" (keydown)=\"onFieldKeydown($event, f.name)\">\n <div>\n <div>{{ labelFor(f.name) }}</div>\n <small style=\"opacity:.7\">{{ f.name }}</small>\n </div>\n <div class=\"rule-badges\" *ngIf=\"hasRule(f.name)\">\n <span class=\"rule-badge b-active\" *ngIf=\"isCascadeEnabled(f.name)\">Ativo</span>\n <span class=\"rule-badge b-manual\" *ngIf=\"loadOnChange(f.name)==='manual'\">Manual</span>\n <span class=\"rule-badge b-immediate\" *ngIf=\"loadOnChange(f.name)==='immediate'\">Immediate</span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #vscroll>\n <cdk-virtual-scroll-viewport itemSize=\"44\" style=\"height: calc(100vh - 240px)\">\n <div *cdkVirtualFor=\"let f of filteredFields()\" (click)=\"selectField(f.name)\" class=\"field-item\" [class.selected]=\"f.name===selectedField()\" tabindex=\"0\" (keydown)=\"onFieldKeydown($event, f.name)\">\n <div>\n <div>{{ labelFor(f.name) }}</div>\n <small style=\"opacity:.7\">{{ f.name }}</small>\n </div>\n <div class=\"rule-badges\" *ngIf=\"hasRule(f.name)\">\n <span class=\"rule-badge b-active\" *ngIf=\"isCascadeEnabled(f.name)\">Ativo</span>\n <span class=\"rule-badge b-manual\" *ngIf=\"loadOnChange(f.name)==='manual'\">Manual</span>\n <span class=\"rule-badge b-immediate\" *ngIf=\"loadOnChange(f.name)==='immediate'\">Immediate</span>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n\n <!-- Right: Rules for selected field -->\n <div class=\"cm-right\" *ngIf=\"selectedField() as sel\">\n <div class=\"cm-header\">\n <div>\n <h3 style=\"margin:0\">{{ labelFor(sel) }}</h3>\n <div style=\"opacity:.7\">{{ sel }}</div>\n </div>\n <div>\n <button mat-stroked-button color=\"primary\" (click)=\"exportRules()\" style=\"margin-right:8px\">Exportar</button>\n <button mat-stroked-button (click)=\"toggleImport()\" style=\"margin-right:8px\">Importar</button>\n <button mat-flat-button color=\"primary\" [matMenuTriggerFor]=\"addMenu\" [disabled]=\"editing()\">Adicionar</button>\n <mat-menu #addMenu=\"matMenu\">\n <button mat-menu-item (click)=\"startEdit(sel)\"><mat-icon [praxisIcon]=\"'add'\"></mat-icon><span>Em branco</span></button>\n <button mat-menu-item (click)=\"startTemplate(sel, 'rota-destino')\" [disabled]=\"!hasField('rotaId') || !hasField('destinoReqId')\"><mat-icon [praxisIcon]=\"'bolt'\"></mat-icon><span>Rota → Destino (id)</span></button>\n <button mat-menu-item (click)=\"startTemplate(sel, 'rota-destino-propriedade')\" [disabled]=\"!hasField('rotaId') || !hasField('destinoReqId')\"><mat-icon [praxisIcon]=\"'bolt'\"></mat-icon><span>Rota + Destino → Propriedade (ids)</span></button>\n </mat-menu>\n </div>\n </div>\n\n <!-- Conflict banner (connections) -->\n <div class=\"banner\" *ngIf=\"hasConflict(sel)\">\n <mat-icon [praxisIcon]=\"'link_off'\"></mat-icon>\n <div>\n Connections atualizam este campo (filterCriteria). Considere desativar a cascata nativa ou usar ‘manual’.\n </div>\n <span class=\"spacer\"></span>\n <button mat-stroked-button color=\"primary\" (click)=\"quickSet(sel,'disable')\">Desativar</button>\n <button mat-stroked-button color=\"accent\" (click)=\"quickSet(sel,'manual')\">Definir manual</button>\n </div>\n\n <div *ngIf=\"importMode\" class=\"import-panel\">\n <div style=\"display:flex; gap:8px; align-items:center; margin-bottom:8px\"><mat-icon [praxisIcon]=\"'upload'\"></mat-icon><strong>Importar regras (JSON)</strong></div>\n <textarea matInput rows=\"6\" class=\"full\" [(ngModel)]=\"importJson\" placeholder='{ \"campo\": { \"dependencyFields\": [\"dep\"], ... } }'></textarea>\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding-top:8px\">\n <button mat-stroked-button (click)=\"toggleImport()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"applyImport()\">Aplicar</button>\n </div>\n </div>\n\n <div *ngIf=\"!ruleFor(sel)\">\n <div class=\"rules-empty\">Nenhuma cascata configurada. Clique em “Adicionar” para montar a dependência.</div>\n </div>\n <div *ngIf=\"ruleFor(sel) as rule\">\n <div class=\"rule-row\">\n <div>\n <div><strong>Dependentes:</strong> {{ rule.dependencyFields.join(', ') || '—' }}</div>\n <div style=\"opacity:.7\">Load on change: {{ rule.dependencyLoadOnChange || 'respectLoadOn' }} | Merge: {{ rule.dependencyMergeStrategy || 'merge' }}</div>\n </div>\n <div class=\"rule-actions\">\n <button mat-icon-button matTooltip=\"Editar\" (click)=\"startEdit(sel)\"><mat-icon [praxisIcon]=\"'edit'\"></mat-icon></button>\n <button mat-icon-button matTooltip=\"Duplicar\" disabled><mat-icon [praxisIcon]=\"'content_copy'\"></mat-icon></button>\n <button mat-icon-button matTooltip=\"Remover\" (click)=\"remove(sel)\"><mat-icon [praxisIcon]=\"'delete'\"></mat-icon></button>\n </div>\n </div>\n </div>\n\n <!-- Editor com seções (sem acordeão duplo) -->\n <div class=\"panel-surface\">\n <div class=\"panel-header\" style=\"padding: 12px 16px; border-bottom: 1px solid var(--md-sys-color-outline-variant);\">\n <mat-icon [praxisIcon]=\"'rule'\"></mat-icon>\n <div>\n <div>Cascata do campo</div>\n <small style=\"color: var(--md-sys-color-on-surface-variant);\">Defina dependentes, quando recarregar e como mapear filtros</small>\n </div>\n </div>\n\n <div class=\"panel-stack\">\n <!-- Básico -->\n <mat-expansion-panel [expanded]=\"true\" class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'tune'\"></mat-icon> Básico</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-grid\">\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>Campos dependentes</mat-label>\n <mat-select multiple [(ngModel)]=\"editDepList\" (ngModelChange)=\"onDepListChange()\">\n <mat-option *ngFor=\"let f of availableDependencyFields()\" [value]=\"f.name\">\n {{ labelFor(f.name) }} ({{ f.name }})\n </mat-option>\n </mat-select>\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Selecione os campos que controlam este valor'\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div class=\"form-row\">\n <mat-checkbox [(ngModel)]=\"editEnable\">Ativar cascata nativa</mat-checkbox>\n <mat-checkbox [(ngModel)]=\"editReset\">Resetar ao mudar</mat-checkbox>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Execução -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'schedule'\"></mat-icon> Execução</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Carregar ao mudar</mat-label>\n <mat-select [(ngModel)]=\"editLoadOn\">\n <mat-option value=\"respectLoadOn\">Respeitar loadOn</mat-option>\n <mat-option value=\"immediate\">Imediato</mat-option>\n <mat-option value=\"manual\">Manual</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>Merge de filtros</mat-label>\n <mat-select [(ngModel)]=\"editMerge\">\n <mat-option value=\"merge\">merge (padrão)</mat-option>\n <mat-option value=\"replace\">replace</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>Atraso (ms)</mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"editDebounce\">\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Extração de valor -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'call_split'\"></mat-icon> Extração de valor</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>ValuePath padrão</mat-label>\n <input matInput [(ngModel)]=\"editValuePath\" placeholder=\"id\">\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Preenchido automaticamente a partir de optionValueKey() ou \\\\'id\\\\''\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Mapeamento de filtros (tabela) -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'filter_alt'\"></mat-icon> Mapeamento de filtros</mat-panel-title>\n </mat-expansion-panel-header>\n <table class=\"map-table\" *ngIf=\"editMapRows.length; else noMap\">\n <thead>\n <tr>\n <th>Dependente</th>\n <th>Chave (dot‑path)</th>\n <th>ValuePath (opcional)</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of editMapRows; let i = index\">\n <td>{{ row.dep }}</td>\n <td>\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>Chave</mat-label>\n <input matInput [(ngModel)]=\"row.key\" [matAutocomplete]=\"autoKey\" [placeholder]=\"row.dep\">\n <mat-autocomplete #autoKey=\"matAutocomplete\">\n <mat-option *ngFor=\"let opt of getKeySuggestions(row.dep)\" [value]=\"opt\">{{ opt }}</mat-option>\n </mat-autocomplete>\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Use dot-notation (e.g. ' + row.dep + '.id) for nested objects'\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </td>\n <td>\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>ValuePath</mat-label>\n <input matInput [(ngModel)]=\"row.valuePath\" [matAutocomplete]=\"autoValue\" [placeholder]=\"editValuePath||'id'\">\n <mat-autocomplete #autoValue=\"matAutocomplete\">\n <mat-option *ngFor=\"let opt of getValuePathSuggestions(row.dep)\" [value]=\"opt\">{{ opt }}</mat-option>\n </mat-autocomplete>\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Opcional'\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noMap>\n <div class=\"rules-empty\">Defina dependentes para sugerir o mapeamento.</div>\n </ng-template>\n </mat-expansion-panel>\n\n <!-- Preview -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'visibility'\"></mat-icon> Preview</mat-panel-title>\n </mat-expansion-panel-header>\n <pre class=\"preview-box\">{{ buildPreview() }}</pre>\n <div style=\"display:flex; justify-content:flex-end; padding-top:6px\">\n <button mat-stroked-button (click)=\"copyPreview()\">Copiar</button>\n </div>\n </mat-expansion-panel>\n </div>\n\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding:8px 12px;\">\n <button mat-stroked-button (click)=\"cancelEdit()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"saveEdit(sel)\">Salvar</button>\n </div>\n </div>\n </div>\n </div>\n `,\n})\nexport class CascadeManagerTabComponent implements OnChanges {\n @Input() fields: Array<FieldDefinition | FieldMetadata> = [];\n @Input() connections?: Array<{ toFieldName: string; toInputPath: string }>; // optional signal for conflicts\n @Output() apply = new EventEmitter<Record<string, Partial<FieldDefinition>>>();\n @Output() cancel = new EventEmitter<void>();\n\n searchTerm = '';\n private searchTimer: any = null;\n private searchValue = '';\n private readonly rules = signal<Map<string, CascadeRuleViewModel>>(new Map());\n private readonly selectedFieldSig = signal<string | null>(null);\n // Inline editor state (MVP)\n readonly editing = signal(false);\n editDepList: string[] = [];\n editEnable = true;\n editReset = false;\n editMerge: 'merge' | 'replace' = 'merge';\n editLoadOn: 'respectLoadOn' | 'immediate' | 'manual' = 'respectLoadOn';\n editDebounce: number | null = 150;\n editValuePath = '';\n editFilterMapJson = '';\n importMode = false;\n importJson = '';\n editMapRows: Array<{ dep: string; key: string; valuePath?: string }> = [];\n\n constructor(private readonly svc: CascadeRulesService) { }\n\n ngOnInit(): void {\n console.log('CascadeManagerTabComponent ngOnInit', this.fields);\n // hydrate from input fields\n const map = new Map<string, CascadeRuleViewModel>();\n for (const f of this.fields) {\n const vm = this.svc.hydrateRule(f);\n if (vm) map.set(f.name, vm);\n }\n this.rules.set(map);\n if (!this.selectedFieldSig() && this.fields.length) {\n this.selectedFieldSig.set(this.fields[0].name);\n this.startEdit(this.fields[0].name);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('CascadeManagerTabComponent ngOnChanges', changes);\n if (changes['fields'] && !changes['fields'].firstChange) {\n // Re-hydrate rules from incoming fields while preserving existing ones when possible\n const incoming = this.fields || [];\n const next = new Map<string, CascadeRuleViewModel>();\n // keep existing for fields still present\n for (const f of incoming) {\n const existing = this.rules().get(f.name);\n const hydrated = this.svc.hydrateRule(f);\n if (hydrated) next.set(f.name, hydrated);\n else if (existing) next.set(f.name, existing);\n }\n this.rules.set(next);\n // preserve selection if still valid\n const sel = this.selectedField();\n if (sel && !incoming.some((f) => f.name === sel)) {\n this.selectedFieldSig.set(incoming[0]?.name ?? null);\n }\n }\n }\n\n private _logCount = 0;\n filteredFields(): Array<FieldDefinition | FieldMetadata> {\n const q = (this.searchValue || '').toLowerCase();\n const labelMap = this.svc.getFieldLabelMap(this.fields);\n const result = this.fields\n .filter((f) => !q || f.name.toLowerCase().includes(q) || (labelMap.get(f.name) || '').toLowerCase().includes(q))\n .sort((a, b) => (labelMap.get(a.name) || a.name).localeCompare(labelMap.get(b.name) || b.name));\n return result;\n }\n\n labelFor(name: string): string {\n return this.svc.getFieldLabelMap(this.fields).get(name) || name;\n }\n\n selectedField(): string | null {\n return this.selectedFieldSig();\n }\n\n selectField(name: string): void {\n this.selectedFieldSig.set(name);\n this.startEdit(name);\n }\n\n hasRule(name: string): boolean {\n return this.rules().has(name);\n }\n ruleFor(name: string): CascadeRuleViewModel | null {\n return this.rules().get(name) || null;\n }\n isCascadeEnabled(name: string): boolean {\n return (this.ruleFor(name)?.enableDependencyCascade ?? true) === true;\n }\n loadOnChange(name: string): 'respectLoadOn' | 'immediate' | 'manual' {\n return this.ruleFor(name)?.dependencyLoadOnChange || 'respectLoadOn';\n }\n hasConflict(name: string): boolean {\n if (!this.connections) return false;\n return this.connections.some((c) => c.toFieldName === name && (c.toInputPath || '').includes('filterCriteria'));\n }\n\n startEdit(name: string): void {\n const existing = this.ruleFor(name);\n const base: CascadeRuleViewModel = existing || {\n targetField: name,\n dependencyFields: [],\n enableDependencyCascade: true,\n resetOnDependentChange: false,\n dependencyFilterMap: {},\n dependencyValuePath: 'id',\n dependencyMergeStrategy: 'merge',\n dependencyDebounceMs: 150,\n dependencyLoadOnChange: 'respectLoadOn',\n };\n const suggested = this.svc.suggest(base, 'id');\n // Bind to inline editor\n this.editDepList = [...(suggested.dependencyFields || [])];\n this.editEnable = suggested.enableDependencyCascade;\n this.editReset = suggested.resetOnDependentChange;\n this.editMerge = suggested.dependencyMergeStrategy || 'merge';\n this.editLoadOn = suggested.dependencyLoadOnChange || 'respectLoadOn';\n this.editDebounce = suggested.dependencyDebounceMs ?? 150;\n this.editValuePath = (typeof suggested.dependencyValuePath === 'string' ? suggested.dependencyValuePath : 'id') || '';\n try { this.editFilterMapJson = suggested.dependencyFilterMap ? JSON.stringify(suggested.dependencyFilterMap, null, 2) : ''; } catch { this.editFilterMapJson = ''; }\n // Build mapping rows from dependencies\n this.buildMapRowsFromDeps();\n this.editing.set(true);\n }\n edit(name: string): void { this.startEdit(name); }\n cancelEdit(): void { this.editing.set(false); }\n\n saveEdit(name: string): void {\n // Build rule from editor\n const deps = this.editDepList.filter((s) => !!s && s !== name);\n // Build map from rows; fallback to JSON when provided\n let map: any = {};\n this.editMapRows.forEach((r) => { if (!r.key && r.dep) r.key = r.dep; if (r.dep) map[r.dep] = r.valuePath ? { key: r.key || r.dep, valuePath: r.valuePath } : (r.key || r.dep); });\n const raw = (this.editFilterMapJson || '').trim();\n if (raw) {\n try { const fromJson = JSON.parse(raw); map = { ...map, ...fromJson }; } catch { alert('Mapeamento de filtros inválido (JSON)'); return; }\n }\n const rule: CascadeRuleViewModel = {\n targetField: name,\n dependencyFields: deps,\n enableDependencyCascade: this.editEnable,\n resetOnDependentChange: this.editReset,\n dependencyFilterMap: map,\n dependencyValuePath: this.buildValuePathOverrides(deps),\n dependencyMergeStrategy: this.editMerge,\n dependencyDebounceMs: this.editDebounce ?? 150,\n dependencyLoadOnChange: this.editLoadOn,\n };\n const next = new Map(this.rules());\n next.set(name, rule);\n this.rules.set(next);\n this.emitPatch();\n this.editing.set(false);\n }\n\n remove(name: string): void {\n const next = new Map(this.rules());\n next.delete(name);\n this.rules.set(next);\n // Removing means clearing the cascade-related keys; send empty patch\n const patch: any = {\n [name]: {\n dependencyFields: [],\n enableDependencyCascade: false,\n resetOnDependentChange: false,\n dependencyFilterMap: undefined,\n dependencyValuePath: undefined,\n dependencyMergeStrategy: undefined,\n dependencyDebounceMs: undefined,\n dependencyLoadOnChange: undefined,\n },\n };\n this.apply.emit(patch);\n }\n\n quickSet(name: string, action: 'disable' | 'manual'): void {\n const current = this.ruleFor(name);\n if (!current) return;\n const next = { ...current };\n if (action === 'disable') next.enableDependencyCascade = false;\n if (action === 'manual') next.dependencyLoadOnChange = 'manual';\n const map = new Map(this.rules()); map.set(name, next); this.rules.set(map);\n this.emitPatch();\n }\n\n private emitPatch(): void {\n const out: Record<string, Partial<FieldDefinition>> = {};\n for (const [name, rule] of this.rules()) {\n out[name] = this.svc.dehydratePatch(rule);\n }\n this.apply.emit(out);\n }\n\n // Phase 2 helpers\n onSearchChange(val: string): void {\n this.searchTerm = val;\n if (this.searchTimer) clearTimeout(this.searchTimer);\n this.searchTimer = setTimeout(() => (this.searchValue = this.searchTerm), 150);\n }\n onFieldKeydown(event: KeyboardEvent, name: string): void {\n if (event.key === 'Enter') { this.edit(name); event.preventDefault(); }\n if (event.key.toLowerCase() === 'd' && (event.ctrlKey || event.metaKey)) { /* duplicate placeholder */ event.preventDefault(); }\n if (event.key === 'Delete') { this.remove(name); event.preventDefault(); }\n }\n hasField(name: string): boolean { return this.fields.some((f) => f.name === name); }\n toggleImport(): void { this.importMode = !this.importMode; this.importJson = ''; }\n exportRules(): void {\n const out: Record<string, Partial<FieldDefinition>> = {};\n for (const [name, rule] of this.rules()) out[name] = this.svc.dehydratePatch(rule);\n const json = JSON.stringify(out, null, 2);\n try { navigator.clipboard?.writeText(json); } catch { }\n alert('Regras exportadas para a área de transferência.');\n }\n applyImport(): void {\n let obj: any;\n try { obj = JSON.parse(this.importJson || '{}'); } catch { alert('JSON inválido'); return; }\n const next = new Map(this.rules());\n Object.keys(obj || {}).forEach((field) => {\n const patch = obj[field] || {};\n const vm: CascadeRuleViewModel = this.svc.hydrateRule({ ...(patch as any), name: field } as any) || ({\n targetField: field,\n dependencyFields: patch.dependencyFields || [],\n enableDependencyCascade: patch.enableDependencyCascade !== false,\n resetOnDependentChange: !!patch.resetOnDependentChange,\n dependencyFilterMap: patch.dependencyFilterMap || {},\n dependencyValuePath: patch.dependencyValuePath || 'id',\n dependencyMergeStrategy: patch.dependencyMergeStrategy || 'merge',\n dependencyDebounceMs: patch.dependencyDebounceMs ?? 150,\n dependencyLoadOnChange: patch.dependencyLoadOnChange || 'respectLoadOn',\n } as CascadeRuleViewModel);\n next.set(field, vm);\n });\n this.rules.set(next);\n this.emitPatch();\n this.importMode = false;\n }\n startTemplate(name: string, tpl: 'rota-destino' | 'rota-destino-propriedade'): void {\n const hasR = this.hasField('rotaId'); const hasD = this.hasField('destinoReqId');\n const deps = tpl === 'rota-destino' ? (hasR ? ['rotaId'] : []) : (hasR && hasD ? ['rotaId', 'destinoReqId'] : []);\n this.editDepList = [...deps];\n this.editEnable = true; this.editReset = true; this.editMerge = 'merge'; this.editLoadOn = 'respectLoadOn'; this.editDebounce = 150; this.editValuePath = 'id';\n this.buildMapRowsFromDeps();\n this.editing.set(true);\n }\n buildMapRowsFromDeps(): void {\n const deps = this.editDepList;\n const existing: any = (() => { try { return JSON.parse(this.editFilterMapJson || '{}'); } catch { return {}; } })();\n this.editMapRows = deps.map((dep) => {\n const entry = existing[dep];\n if (!entry) return { dep, key: dep };\n if (typeof entry === 'string') return { dep, key: entry };\n return { dep, key: entry.key || dep, valuePath: entry.valuePath };\n });\n }\n buildValuePathOverrides(deps: string[]): string | Record<string, string> {\n // If any row defines a valuePath, return a record; else return default string\n const record: Record<string, string> = {};\n this.editMapRows.forEach((r) => { if (r.valuePath) record[r.dep] = r.valuePath; });\n const hasAny = Object.keys(record).length > 0;\n return hasAny ? record : (this.editValuePath || 'id');\n }\n buildPreview(): string {\n try {\n const deps = this.editDepList;\n const frag: any = {};\n this.editMapRows.forEach((r) => {\n const example = r.valuePath ? 123 : 123; // simple placeholder id\n const parts = (r.key || r.dep).split('.'); let ref = frag;\n for (let i = 0; i < parts.length - 1; i++) { const p = parts[i]; ref[p] = ref[p] || {}; ref = ref[p]; }\n ref[parts[parts.length - 1]] = example;\n });\n return JSON.stringify(frag, null, 2);\n } catch { return '{}'; }\n }\n copyPreview(): void { try { navigator.clipboard?.writeText(this.buildPreview()); } catch { } }\n\n availableDependencyFields(): Array<FieldDefinition | FieldMetadata> {\n const current = this.selectedField();\n const labelMap = this.svc.getFieldLabelMap(this.fields);\n return this.fields\n .filter((f) => f.name !== current)\n .sort((a, b) => (labelMap.get(a.name) || a.name).localeCompare(labelMap.get(b.name) || b.name));\n }\n\n onDepListChange(): void {\n this.buildMapRowsFromDeps();\n }\n\n getKeySuggestions(dep: string): string[] {\n const suggestions = [dep, `${dep}.id`, `${dep}.value`];\n return [...new Set(suggestions)];\n }\n\n getValuePathSuggestions(dep: string): string[] {\n const field = this.fields.find(f => f.name === dep);\n const suggestions = ['id'];\n if (field) {\n // Cast to any to access potential metadata properties safely\n const f = field as any;\n if (f.optionValueKey) suggestions.push(f.optionValueKey);\n if (f.optionLabelKey) suggestions.push(f.optionLabelKey);\n }\n return [...new Set(suggestions)];\n }\n}\n","/**\n * Catálogo inicial de capacidades do editor de metadados (praxis-metadata-editor) para uso pela IA.\n * Estrutura básica com Alvo e propriedades placeholder; expandir conforme implementação evoluir.\n */\n\nimport type { AiCapability, AiCapabilityCatalog } from '@praxisui/core';\n\ninterface AiComponentProperty {\n name: string;\n type: string;\n description: string;\n intentExamples?: string[];\n safetyNotes?: string;\n}\n\ninterface AiComponentCapabilities {\n componentId: string;\n description: string;\n targets: string[];\n properties: AiComponentProperty[];\n}\n\nexport const METADATA_EDITOR_AI_CAPABILITIES: AiComponentCapabilities = {\n componentId: 'metadata-editor',\n description: 'Capacidades específicas para edição de FieldMetadata e auxiliares (regex/cascade).',\n targets: ['praxis-metadata-editor', 'praxis-field-editor', 'praxis-schema-viewer'],\n properties: [\n { name: 'schema', type: 'object', description: 'Schema de metadados disponível para edição.', intentExamples: ['editar schema de metadata', 'estrutura do campo', 'configurações do json'], safetyNotes: 'Validar contra FieldMetadata interface.' },\n { name: 'fieldDefinitions', type: 'object[]', description: 'Definições dos campos e tipos suportados.', intentExamples: ['tipos de campos disponíveis', 'definições de input', 'suporte a select e date'] },\n { name: 'validationHelpers', type: 'object', description: 'Configurações/ajuda de validação (regex, máscaras).', intentExamples: ['ajuda com regex', 'validar máscara', 'testar padrão de validação'] },\n { name: 'cascades', type: 'object[]', description: 'Configurações de cascata/dependências entre campos.', intentExamples: ['dependência entre campos', 'cascade estado cidade', 'configurar trigger de cascata'] },\n { name: 'preview', type: 'object', description: 'Preview/renderização do campo conforme as configurações.', intentExamples: ['pré-visualizar campo', 'ver como fica o input', 'renderizar exemplo'] },\n { name: 'permissions', type: 'object', description: 'Regras de acesso/edição por role ou contexto.', intentExamples: ['permissões de edição', 'quem pode ver este campo', 'bloquear por role'], safetyNotes: 'Não sobrescrever permissões críticas.' },\n ],\n};\n\nconst BASE_CAPABILITIES: AiCapability[] = [\n {\n path: 'config',\n category: 'misc',\n valueKind: 'object',\n description: 'Root configuration payload for the metadata editor.',\n },\n];\n\nexport const METADATA_EDITOR_AI_CAPABILITY_CATALOG: AiCapabilityCatalog = {\n version: '1.0.0',\n capabilities: BASE_CAPABILITIES,\n notes: [],\n enums: {},\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ContextValidatorRegistryService","FCT","i2","i3","i4","i7","cloneProperty","i1.ConfigRegistryService","i2.SchemaNormalizerService","i3.DynamicFormFactoryService","i4.ContextValidatorRegistryService","i5","i1.CascadeRulesService","i6","i8","i10"],"mappings":"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"}
1
+ {"version":3,"file":"praxisui-metadata-editor.mjs","sources":["../../../projects/praxis-metadata-editor/src/lib/registry/config-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/registry/context-validator-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/schema-normalizer.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/dynamic-form-factory.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/editor-component-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/components/regex-help-dialog/regex-help-dialog.component.ts","../../../projects/praxis-metadata-editor/src/lib/components/dynamic-editor-renderer/dynamic-editor-renderer.component.ts","../../../projects/praxis-metadata-editor/src/lib/config/input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/select.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/transfer-list.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/radio.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/button-toggle.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/tree-select.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/textarea.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/number.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/datetime-local.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-picker.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/month.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/week.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/email.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/password.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/url.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/search.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/phone.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/color.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/color-picker.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/rating.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/chip-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/checkbox-group.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/toggle.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/slider.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/range-slider.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/currency.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/price-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/cpf-cnpj.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/file-upload.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/year.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/avatar.config.ts","../../../projects/praxis-metadata-editor/src/lib/validators/context-validators.ts","../../../projects/praxis-metadata-editor/src/lib/validators/gradient-color.validators.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-distance-radius.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-relative-period.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-sentiment.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-color-label.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-pipeline-status.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-rating.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-score-priority.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/inline-filter-control-properties.map.ts","../../../projects/praxis-metadata-editor/src/lib/components/field-metadata-editor/field-metadata-editor.component.ts","../../../projects/praxis-metadata-editor/src/lib/tabs/cascade-manager/cascade-rules.service.ts","../../../projects/praxis-metadata-editor/src/lib/tabs/cascade-manager/cascade-manager-tab.component.ts","../../../projects/praxis-metadata-editor/src/lib/ai/metadata-editor-ai-capabilities.ts","../../../projects/praxis-metadata-editor/src/praxisui-metadata-editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport type { FieldControlType } from '@praxisui/core';\nimport type { EditorProperty } from '../types/editor-property.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfigRegistryService {\n private readonly map = new Map<FieldControlType, EditorProperty[]>();\n\n register(controlType: FieldControlType, props: EditorProperty[]): void {\n this.map.set(controlType, props);\n }\n\n getProperties(controlType: FieldControlType): EditorProperty[] {\n return this.map.get(controlType) ?? [];\n }\n\n list(): Array<{ controlType: FieldControlType; count: number }> {\n return Array.from(this.map.entries()).map(([ct, props]) => ({\n controlType: ct,\n count: props.length,\n }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { FieldControlType } from '@praxisui/core';\nimport type { ValidatorFn } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class ContextValidatorRegistryService {\n private readonly map = new Map<FieldControlType, ValidatorFn[]>();\n\n register(controlType: FieldControlType, validator: ValidatorFn): void {\n const list = this.map.get(controlType) ?? [];\n list.push(validator);\n this.map.set(controlType, list);\n }\n\n get(controlType: FieldControlType): ValidatorFn[] {\n return this.map.get(controlType) ?? [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport type { FieldDefinition } from '@praxisui/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SchemaNormalizerService {\n /** Normaliza propriedades e aplica defaultValue resolvendo do seed por dot-path. */\n normalize(properties: EditorProperty[], seed?: Partial<FieldDefinition>): EditorProperty[] {\n const out = properties.map((p) => {\n const clone: EditorProperty = { ...p };\n // normalizar options se for string simples\n if (Array.isArray(clone.options)) {\n clone.options = clone.options.map((opt: any) =>\n typeof opt === 'string' ? { value: opt, text: opt } : opt,\n );\n }\n // pattern/regex\n if ((clone as any).pattern && typeof (clone as any).pattern === 'string') {\n const str = String((clone as any).pattern);\n const match = /^\\/(.*)\\/([gimsuy]*)$/.exec(str);\n if (match) {\n try {\n (clone as any).pattern = new RegExp(match[1], match[2]);\n } catch {}\n }\n }\n // aplicar defaultValue do seed se existir\n if (seed && clone.defaultValue === undefined) {\n const val = this.getByPath(seed as any, clone.name);\n if (val !== undefined) {\n // Stringify complex defaults for textarea-friendly editors\n const needsJson = (\n clone.editorType === 'textarea' &&\n (\n clone.name === 'options' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'paletteSettings.colors' ||\n clone.name === 'views' ||\n clone.name === 'adaptiveSubtitle'\n )\n );\n clone.defaultValue = needsJson && typeof val !== 'string' ? JSON.stringify(val, null, 2) : val;\n try {\n if (\n clone.name === 'resourcePath' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'optionLabelKey' ||\n clone.name === 'optionValueKey' ||\n clone.name === 'options' ||\n clone.name === 'paletteSettings.colors' ||\n clone.name === 'views'\n ) {\n console.debug('[SchemaNormalizer] default from seed', {\n name: clone.name,\n value: needsJson && typeof val !== 'string' ? JSON.stringify(val) : val,\n });\n }\n // Extra diagnostics for Rating editor fields\n if ([\n 'max',\n 'allowHalf',\n 'precision',\n 'selection',\n 'size',\n 'icon',\n 'emptyIcon',\n 'svgIcon',\n 'svgIconOutline',\n 'ratingColor',\n 'outlineColor',\n 'readonly',\n 'tabIndex',\n 'ariaLabel',\n ].includes(clone.name)) {\n console.debug('[SchemaNormalizer][RATING] default from seed', {\n name: clone.name,\n value: val,\n });\n }\n } catch {}\n }\n } else if (seed && clone.defaultValue !== undefined) {\n // Log when a property defines its own defaultValue and thus does not read from seed\n try {\n if (\n clone.name === 'resourcePath' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'optionLabelKey' ||\n clone.name === 'optionValueKey' ||\n clone.name === 'options'\n ) {\n const val = this.getByPath(seed as any, clone.name);\n console.debug('[SchemaNormalizer] default preserved (property default overrides seed)', {\n name: clone.name,\n propertyDefault: clone.defaultValue,\n seedValue: val,\n });\n }\n } catch {}\n }\n return clone;\n });\n try {\n const names = out.map((p) => p.name);\n const defPreview = out\n .filter((p) =>\n ['resourcePath', 'filterCriteria', 'optionLabelKey', 'optionValueKey'].includes(p.name),\n )\n .map((p) => ({ name: p.name, defaultValue: (p as any).defaultValue }));\n console.debug('[SchemaNormalizer] normalize summary', { names, defPreview });\n } catch {}\n return out;\n }\n\n /** Lê valor por dot-path */\n private getByPath(obj: any, path: string): any {\n return path.split('.').reduce((acc, key) => (acc == null ? acc : acc[key]), obj);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport type { FieldDefinition } from '@praxisui/core';\nimport { ContextValidatorRegistryService } from '../registry/context-validator-registry.service';\nimport type { FieldControlType } from '@praxisui/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicFormFactoryService {\n constructor(\n private fb: FormBuilder,\n private ctxValidators: ContextValidatorRegistryService,\n ) {}\n\n createEditorForm(\n controlType: FieldControlType,\n props: EditorProperty[],\n seed?: Partial<FieldDefinition>,\n ): FormGroup {\n const group = this.fb.group({});\n\n for (const p of props) {\n const ctrl = new FormControl(\n p.defaultValue ?? null,\n { validators: p.validators ?? [] },\n );\n this.assignControlByPath(group, p.name, ctrl);\n try {\n if (\n p.name === 'resourcePath' ||\n p.name === 'filterCriteria' ||\n p.name === 'optionLabelKey' ||\n p.name === 'optionValueKey'\n ) {\n console.debug('[EditorForm] control init', {\n name: p.name,\n defaultValue: p.defaultValue ?? null,\n });\n }\n } catch {}\n }\n\n const formValidators = this.ctxValidators.get(controlType);\n if (formValidators.length) {\n group.addValidators(formValidators);\n }\n return group;\n }\n\n getControlByPath(form: FormGroup, path: string): AbstractControl | null {\n return form.get(path);\n }\n\n setValueByPath(form: FormGroup, path: string, value: any): void {\n form.get(path)?.setValue(value);\n }\n\n extractPatch(form: FormGroup): Partial<FieldDefinition> {\n const patch = form.getRawValue() as any;\n try { console.debug('[EditorForm] extractPatch', patch); } catch {}\n return patch;\n }\n\n mergeIntoFieldDefinition(\n base: FieldDefinition,\n patch: Partial<FieldDefinition>,\n ): FieldDefinition {\n return this.deepMerge(base, patch);\n }\n\n private assignControlByPath(group: FormGroup, path: string, ctrl: FormControl) {\n const parts = path.split('.');\n let current: FormGroup = group;\n for (let i = 0; i < parts.length - 1; i++) {\n const key = parts[i];\n const next = current.get(key);\n if (!next) {\n const child = this.fb.group({});\n current.addControl(key, child);\n current = child;\n } else if (next instanceof FormGroup) {\n current = next;\n } else {\n // Overwrite non-group path with group to respect dot-notation\n const child = this.fb.group({});\n current.removeControl(key);\n current.addControl(key, child);\n current = child;\n }\n }\n current.addControl(parts[parts.length - 1], ctrl);\n }\n\n private deepMerge<T>(target: T, source: Partial<T>): T {\n if (source == null || typeof source !== 'object') return target;\n const result: any = Array.isArray(target) ? [...(target as any)] : { ...(target as any) };\n for (const [k, v] of Object.entries(source as any)) {\n if (v && typeof v === 'object' && !Array.isArray(v)) {\n result[k] = this.deepMerge(result[k] ?? {}, v as any);\n } else {\n result[k] = v;\n }\n }\n return result as T;\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EditorComponentRegistryService {\n private readonly registry = new Map<string, () => Promise<Type<any>>>();\n private readonly cache = new Map<string, Type<any>>();\n\n register(editorType: string, loader: () => Promise<Type<any>>): void {\n this.registry.set(editorType, loader);\n }\n\n async get(editorType: string): Promise<Type<any> | null> {\n if (this.cache.has(editorType)) {\n return this.cache.get(editorType)!;\n }\n const loader = this.registry.get(editorType);\n if (!loader) return null;\n const type = await loader();\n if (type) this.cache.set(editorType, type);\n return type ?? null;\n }\n\n isRegistered(editorType: string): boolean {\n return this.registry.has(editorType);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'praxis-regex-help-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatListModule, MatButtonModule],\n template: `\n <h2 mat-dialog-title>Modelos de Expressões Regulares</h2>\n <div mat-dialog-content>\n <p>Selecione um dos modelos abaixo para preencher o campo ou use como base:</p>\n <mat-nav-list dense>\n @for (r of presets; track r.pattern) {\n <a mat-list-item (click)=\"choose(r.pattern)\" style=\"cursor: pointer;\">\n <span matListItemTitle><code>{{ r.pattern }}</code></span>\n <span matListItemLine>{{ r.label }}</span>\n </a>\n }\n </mat-nav-list>\n <p style=\"margin-top: 12px;\">Recursos úteis:</p>\n <ul>\n <li><a href=\"https://regex101.com/\" target=\"_blank\" rel=\"noreferrer noopener\">regex101.com</a> — Teste e depure regex</li>\n <li><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions\" target=\"_blank\" rel=\"noreferrer noopener\">MDN: Regular expressions</a></li>\n </ul>\n </div>\n <div mat-dialog-actions>\n <button class=\"mat-mdc-button mdc-button\" mat-dialog-close>Fechar</button>\n </div>\n `,\n})\nexport class RegexHelpDialogComponent {\n private dialogRef = inject(MatDialogRef<RegexHelpDialogComponent>);\n\n readonly presets: { label: string; pattern: string }[] = [\n { label: 'Apenas letras (ASCII)', pattern: '/^[a-zA-Z]+$/' },\n { label: 'Apenas dígitos', pattern: '/^\\\\d+$/' },\n { label: 'Email simples', pattern: '/^\\\\w+@[\\\\w.-]+\\\\.[A-Za-z]&#123;2,&#125;$/' },\n { label: 'URL básica (http/https)', pattern: '/^(https?:\\\\/\\\\/)?[\\\\w.-]+(\\\\\\\\.[\\\\w.-]+)+[\\\\w\\\\-._~:?#@!$&\\'()*+,;=\\\\/]*$/' },\n { label: 'Pelo menos 8 caracteres', pattern: '/^.&#123;8,&#125;$/' },\n { label: 'CEP brasileiro (#####-###)', pattern: '/^\\\\d{5}-\\\\d{3}$/' },\n { label: 'CPF (###.###.###-##)', pattern: '/^\\\\d{3}\\\\.\\\\d{3}\\\\.\\\\d{3}-\\\\d{2}$/' },\n { label: 'CNPJ (##.###.###/####-##)', pattern: '/^\\\\d{2}\\\\.\\\\d{3}\\\\.\\\\d{3}\\\\/\\\\d{4}-\\\\d{2}$/' },\n { label: 'Telefone (Brasil) com DDD', pattern: '/^\\\\(\\\\d{2}\\\\) \\\\d{4,5}-\\\\d{4}$/' },\n { label: 'Somente hex (0-9 A-F)', pattern: '/^[0-9A-Fa-f]+$/' },\n { label: 'Código postal (US ZIP)', pattern: '/^\\\\d{5}(-\\\\d{4})?$/' },\n { label: 'Data (YYYY-MM-DD)', pattern: '/^\\\\d{4}-\\\\d{2}-\\\\d{2}$/' },\n { label: 'Hora (HH:MM 24h)', pattern: '/^([01]\\\\d|2[0-3]):[0-5]\\\\d$/' },\n { label: 'Slug (letras, dígitos, hífen)', pattern: '/^[a-z0-9-]+$/' },\n { label: 'Username (3-16, alfanum., _ -)', pattern: '/^[a-zA-Z0-9_-]{3,16}$/' },\n { label: 'Senha forte (8+, maiúsc., minúsc., dígito)', pattern: '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d).&#123;8,&#125;$/' },\n { label: 'IPv4', pattern: '/^(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d))&#123;3&#125;$/' },\n { label: 'MAC address', pattern: '/^([0-9A-Fa-f]{2}:)&#123;5&#125;[0-9A-Fa-f]{2}$/' },\n { label: 'Hashtag (#palavra)', pattern: '/^#\\\\w+$/' },\n { label: 'Menção (@usuario)', pattern: '/^@\\\\w+$/' },\n { label: 'Palavra específica (foo)', pattern: '/\\\\bfoo\\\\b/' },\n { label: 'Não conter espaços', pattern: '/^\\\\S+$/' },\n { label: 'Início com letra', pattern: '/^[A-Za-z].*$/' },\n { label: 'Termina com ponto final', pattern: '/.*\\\\.$/' },\n { label: 'Número com 2 casas decimais', pattern: '/^\\\\d+(,\\\\d{2}|\\\\.\\\\d{2})$/' },\n { label: 'Hex color (#RRGGBB)', pattern: '/^#?[A-Fa-f0-9]{6}$/' },\n { label: 'UUID v4', pattern: '/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i' },\n { label: 'DOM id (letra inicial)', pattern: '/^[A-Za-z][-A-Za-z0-9_:.]*$/' },\n { label: 'Base64', pattern: '/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/' },\n ];\n\n choose(pattern: string): void {\n this.dialogRef.close(pattern);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport type { EditorProperty } from '../../types/editor-property.types';\nimport type { FieldMetadata, FieldControlType } from '@praxisui/core';\nimport { DynamicFieldLoaderDirective } from '@praxisui/dynamic-fields';\nimport { FieldControlType as FCT } from '@praxisui/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { PraxisIconDirective } from '@praxisui/core';\nimport { RegexHelpDialogComponent } from '../regex-help-dialog/regex-help-dialog.component';\nimport { IconPickerService } from '@praxisui/core';\n\n@Component({\n selector: 'praxis-dynamic-editor-renderer',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DynamicFieldLoaderDirective,\n MatExpansionModule,\n MatIconModule,\n MatButtonModule,\n MatDialogModule,\n MatTooltipModule,\n PraxisIconDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-template #item let-field=\"field\" let-index=\"index\" let-content=\"content\">\n <div class=\"editor-item\" [attr.data-control-type]=\"field.controlType\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n \n <div class=\"actions-container\">\n <!-- Botão de ajuda para regex -->\n <button\n *ngIf=\"field.name === 'pattern'\"\n type=\"button\"\n mat-icon-button\n class=\"regex-help-btn decorator-btn\"\n (click)=\"openRegexHelp()\"\n aria-label=\"Exemplos de regex\"\n matTooltip=\"Exemplos de regex\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n <!-- Botão para escolher ícone (prefix/suffix) -->\n <button\n *ngIf=\"isIconField(field.name)\"\n type=\"button\"\n mat-icon-button\n class=\"icon-picker-btn decorator-btn\"\n (click)=\"openIconPicker(field.name)\"\n aria-label=\"Escolher ícone\"\n matTooltip=\"Escolher ícone\"\n >\n <mat-icon [praxisIcon]=\"'apps'\"></mat-icon>\n </button>\n <!-- Botão de ajuda (fallback quando suffix não é aplicado) -->\n <button\n *ngIf=\"field.hint && !useHelpSuffix(field)\"\n type=\"button\"\n mat-icon-button\n class=\"hint-btn decorator-btn\"\n [class.has-icon-picker]=\"isIconField(field.name)\"\n [matTooltip]=\"field.hint\"\n aria-label=\"Ajuda\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </div>\n </div>\n </ng-template>\n\n <div class=\"editor-surface\">\n <mat-accordion class=\"section-accordion\" multi>\n <mat-expansion-panel class=\"section-card\" *ngFor=\"let g of groupOrder\">\n <mat-expansion-panel-header class=\"section-header\">\n <mat-panel-title>\n <span class=\"section-title\">\n <mat-icon class=\"section-icon\" [praxisIcon]=\"groupIcon(g)\"></mat-icon>\n {{ g }}\n </span>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div *ngFor=\"let row of groupRows[g]\" class=\"editor-row\" [ngClass]=\"rowClass(row)\">\n <ng-container *ngIf=\"ready\"\n dynamicFieldLoader\n [fields]=\"row\"\n [formGroup]=\"form\"\n [itemTemplate]=\"item\">\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n </div>\n `,\n styles: [\n `\n :host { display: block; }\n .editor-surface {\n /* Remove lateral padding here; the settings panel body already provides horizontal spacing */\n padding: 8px 0 2px;\n border-radius: 12px;\n background: transparent; /* gradiente movido para o settings-panel */\n }\n /* --- Seções (cards colapsáveis) --- */\n .section-accordion {\n display: block;\n }\n .section-card {\n margin: 6px 0 8px; /* reduced vertical spacing between panels */\n border-radius: 12px;\n border: 1px solid var(--md-sys-color-outline-variant);\n overflow: hidden;\n }\n .section-card.mat-expanded {\n border-color: var(--md-sys-color-primary);\n box-shadow: 0 2px 10px rgba(0,0,0,0.05);\n }\n /* Expansion body padding normalized in settings panel styles; avoid styling deep children here */\n .section-card .mat-expansion-panel-body {\n background: var(--md-sys-color-surface-container-low);\n }\n .section-header {\n /* Use host theme tokens with dark-friendly fallbacks */\n background: var(--md-sys-color-surface-container-low);\n border-bottom: 1px solid var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));\n padding: 2px 8px; /* extra compact header */\n min-height: 32px; /* extra compact height */\n display: flex;\n align-items: center; /* vertically center header content */\n color: var(--md-sys-color-on-surface);\n }\n /* Ensure Material header title area centers content vertically */\n .section-header .mat-expansion-panel-header-title,\n .section-header .mat-expansion-panel-header-description {\n display: flex;\n align-items: center;\n color: var(--md-sys-color-on-surface);\n }\n .section-title {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n letter-spacing: 0.2px;\n /* Use theme on-surface color for title text (dark-safe) */\n color: var(--md-sys-color-on-surface);\n font-size: 0.9rem; /* smaller to match extra compact header */\n line-height: 1.2;\n }\n .section-icon {\n /* Use theme primary color for the icon */\n color: var(--md-sys-color-primary, var(--md-sys-color-primary, #3f51b5));\n opacity: 0.9;\n }\n\n\n .editor-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n flex-wrap: wrap;\n margin-bottom: 8px;\n }\n /* Campos ocupam 100% da largura por padrão (uma coluna) */\n .editor-row > praxis-field-shell {\n flex: 1 1 100%;\n min-width: 280px;\n }\n /* Garantir que cada campo ocupe toda a largura e tenha respiro inferior */\n .editor-row praxis-field-shell .mat-mdc-form-field {\n width: 100%;\n margin-bottom: 8px;\n }\n /* Nos rows inline (toggles), cada item ocupa apenas o necessário */\n .editor-row.row-inline > praxis-field-shell {\n flex: 0 0 auto;\n }\n /* Duas colunas iguais */\n .editor-row.row-2 > praxis-field-shell { flex: 1 1 calc(50% - 12px); min-width: 260px; }\n /* Três colunas iguais */\n .editor-row.row-3 > praxis-field-shell { flex: 1 1 calc(33.333% - 12px); min-width: 220px; }\n\n /* Priorização visual dos campos principais */\n .editor-row > praxis-field-shell[data-field-name=\"controlType\"],\n .editor-row > praxis-field-shell[data-field-name=\"label\"],\n .editor-row > praxis-field-shell[data-field-name=\"placeholder\"] {\n flex: 1 1 calc(50% - 12px);\n min-width: 300px;\n }\n praxis-field-shell[data-field-name=\"label\"] .mdc-floating-label,\n praxis-field-shell[data-field-name=\"placeholder\"] .mdc-floating-label {\n font-weight: 600;\n }\n /* Inputs curtos para prefixos/sufixos */\n /* Inputs curtos para prefixos/sufixos */\n .editor-row > praxis-field-shell[data-field-name=\"prefix\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffix\"] {\n flex: 0 0 200px;\n min-width: 160px;\n }\n /* Icon fields now behave as normal fields (flex) */\n .editor-row > praxis-field-shell[data-field-name=\"prefixIcon\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffixIcon\"],\n .editor-row > praxis-field-shell[data-field-name=\"prefixIconColor\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffixIconColor\"] {\n flex: 1 1 auto;\n min-width: 160px;\n }\n\n /* Flexbox Layout for Editor Items */\n .editor-item {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n }\n /* Field content takes available space */\n .editor-item > ng-container,\n .editor-item > praxis-field-shell {\n flex: 1;\n min-width: 0;\n }\n /* Actions container for decorators */\n .actions-container {\n display: flex;\n align-items: center;\n gap: 0;\n margin-top: 12px; /* Align with input box, skipping label */\n flex-shrink: 0;\n }\n\n /* Decorators (botões) */\n .decorator-btn {\n position: static; /* Reset absolute positioning */\n color: var(--md-sys-color-primary, #3f51b5);\n opacity: 0.6;\n transform: scale(0.8);\n width: 32px;\n height: 32px;\n line-height: 32px;\n padding: 0;\n }\n .decorator-btn:hover { opacity: 1; }\n \n /* Remove old positioning classes */\n .icon-picker-btn { right: auto; }\n .hint-btn { right: auto; }\n .hint-btn.has-icon-picker { right: auto; }\n\n /* Hide native hints to avoid duplication */\n .editor-row .mat-mdc-form-field-subscript-wrapper mat-hint {\n display: none !important;\n }\n /* Ensure validation errors remain visible */\n .editor-row .mat-mdc-form-field-subscript-wrapper mat-error {\n display: block !important;\n }\n\n /* Destaque para toggles importantes */\n praxis-field-shell[data-field-name=\"showCharCount\"] .mdc-switch { transform: scale(1.05); }\n praxis-field-shell[data-field-name=\"showCharCount\"] .mat-mdc-slide-toggle { font-weight: 600; }\n /* Banner de aviso estilizado no hint do Tipo de campo */\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-hint {\n display: flex;\n align-items: center;\n gap: 8px;\n background: var(--md-sys-color-tertiary-container);\n border: 1px solid var(--md-sys-color-tertiary);\n color: var(--md-sys-color-on-tertiary-container);\n padding: 8px 10px;\n border-radius: 6px;\n line-height: 1.3;\n white-space: normal;\n }\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-hint::before {\n content: '⚠️';\n display: inline-block;\n }\n /* Garantir espaço vertical extra abaixo do aviso */\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-subscript-wrapper {\n margin-top: 6px;\n margin-bottom: 10px;\n min-height: auto; /* deixa o wrapper crescer conforme conteúdo */\n }\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field {\n margin-bottom: 16px; /* mais respiro para não sobrepor próximo campo */\n }\n `,\n ],\n})\nexport class DynamicEditorRendererComponent implements OnChanges {\n @Input() properties: EditorProperty[] = [];\n @Input() form!: FormGroup;\n\n fields: FieldMetadata[] = [];\n groupFields: Record<string, FieldMetadata[]> = {};\n groupOrder: string[] = [];\n groupRows: Record<string, FieldMetadata[][]> = {};\n // Evita reentrância: cria loaders após o primeiro tick\n ready = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['properties']) {\n const mapped = this.properties.map((p) => this.toFieldMetadata(p));\n this.fields = mapped;\n const groupMap = new Map<string, FieldMetadata[]>();\n const rowMap = new Map<string, Map<string, FieldMetadata[]>>();\n for (const f of mapped) {\n const g = (f as any)._group || 'Geral';\n if (!groupMap.has(g)) groupMap.set(g, []);\n groupMap.get(g)!.push(f);\n const rowKey = (f as any)._row || `${f.name}`;\n if (!rowMap.has(g)) rowMap.set(g, new Map());\n const rmap = rowMap.get(g)!;\n if (!rmap.has(rowKey)) rmap.set(rowKey, []);\n rmap.get(rowKey)!.push(f);\n }\n this.groupFields = Object.fromEntries(groupMap.entries());\n this.groupOrder = Array.from(groupMap.keys()).sort((a, b) => this.groupWeight(a) - this.groupWeight(b));\n const rows: Record<string, FieldMetadata[][]> = {};\n for (const g of this.groupOrder) {\n const rmap = rowMap.get(g)!;\n rows[g] = Array.from(rmap.values());\n }\n this.groupRows = rows;\n // Ativar loaders após agrupar propriedades\n queueMicrotask?.(() => (this.ready = true));\n }\n }\n\n private toFieldMetadata(p: EditorProperty): FieldMetadata {\n const controlType = this.mapEditorType(p.editorType);\n const meta: any = {\n name: p.name,\n label: p.label,\n controlType,\n placeholder: p.placeholder,\n // Ajuda contextual padrão quando ausente\n hint: p.hint,\n // Help suffix dentro do campo (padrao) - somente para campos compatíveis\n suffixIcon: p.hint && !this.isIconField(p.name) && this.isSuffixCapable(p.editorType)\n ? 'help_outline'\n : undefined,\n suffixIconTooltip: p.hint && !this.isIconField(p.name) && this.isSuffixCapable(p.editorType)\n ? p.hint\n : undefined,\n suffixIconAriaLabel: p.hint && !this.isIconField(p.name) && this.isSuffixCapable(p.editorType)\n ? 'Ajuda'\n : undefined,\n options: Array.isArray(p.options) ? (p.options as any) : undefined,\n required: p.required,\n // meta auxiliar de agrupamento (não exportado)\n _group: p.group || 'Geral',\n _inline: p.inline || false,\n _row: p.row || undefined,\n _editorType: p.editorType,\n // validators do EditorProperty já foram aplicados ao FormControl pela fábrica,\n // mas manter aqui não prejudica e habilita exibição de mensagens padrão.\n validators: undefined,\n } as FieldMetadata & { _group?: string; min?: number; max?: number; step?: number };\n\n // Priorização de campos principais (agrupa em uma linha \"core\")\n const coreNames = new Set(['controlType', 'label', 'placeholder']);\n if (coreNames.has(p.name) && !meta._row) meta._row = '__core';\n\n // Campos menores e de baixa relevância visual (agrupados inline)\n const smallNames = new Set([\n 'prefix',\n 'suffix',\n 'icon',\n ]);\n if (smallNames.has(p.name)) {\n meta._inline = true;\n if (!meta._row) meta._row = '__affixes';\n }\n\n // Apenas campos de ícone devem receber o hint de Material Symbols\n if (this.isIconField(p.name) && !meta.hint) {\n meta.hint = 'Use o nome do ícone (Material Symbols)';\n }\n\n // Booleans em linha (switches) para melhor densidade\n const booleanLike = new Set([\n 'required',\n 'disabled',\n 'readonly',\n 'showCharCount',\n 'showClear',\n 'autoFocus',\n 'hideLabel',\n ]);\n if (p.editorType === 'checkbox' || booleanLike.has(p.name)) {\n meta._inline = true;\n if (!meta._row) meta._row = '__toggles';\n }\n\n // Mensagem padrão de atenção ao trocar tipo de campo\n if (p.name === 'controlType' && !meta.hint) {\n meta.hint = 'Alterar o tipo pode impactar configurações e validações';\n }\n\n if (p.editorType === 'number') {\n // Defaults for numeric editors\n if (/minlength|maxlength/i.test(p.name)) {\n (meta as any).min = 0;\n (meta as any).step = 1;\n }\n }\n\n // no editor-specific overrides for textarea sizing here (reverted)\n\n return meta as FieldMetadata;\n }\n\n // Priorização das seções\n private groupWeight(group: string): number {\n const key = group.toLowerCase();\n const order = [\n 'geral',\n 'apresent',\n 'valida',\n 'formato',\n 'comport',\n 'material',\n 'ações',\n 'acess',\n ];\n const idx = order.findIndex((k) => key.includes(k));\n return idx >= 0 ? idx : 999;\n }\n\n // No section open by default\n isInitiallyExpanded(_group: string): boolean {\n return false;\n }\n\n // (preview removed by request)\n\n rowClass(row: FieldMetadata[]): string {\n // Linha compacta (toggles) quando todos são inline\n if (row.every((f: any) => !!(f as any)._inline)) return 'row-inline';\n // Se não for inline e houver 2 ou 3 itens, usar colunas iguais\n const n = row.length;\n if (n === 2) return 'row-2';\n if (n === 3) return 'row-3';\n return '';\n }\n\n private mapEditorType(t: string): FieldControlType {\n switch (t) {\n case 'text':\n return FCT.INPUT as FieldControlType;\n case 'number':\n return FCT.NUMERIC_TEXT_BOX as FieldControlType;\n case 'textarea':\n return FCT.TEXTAREA as FieldControlType;\n case 'select':\n return FCT.SELECT as FieldControlType;\n case 'checkbox':\n // Para booleano simples, usamos o toggle\n return (FCT as any).TOGGLE as FieldControlType;\n case 'date':\n return (FCT as any).DATE_INPUT as FieldControlType;\n case 'datetime-local':\n return (FCT as any).DATETIME_LOCAL_INPUT as FieldControlType;\n case 'color':\n return (FCT as any).COLOR_INPUT as FieldControlType;\n case 'colorPicker':\n return (FCT as any).COLOR_PICKER as FieldControlType;\n default:\n return FCT.INPUT as FieldControlType;\n }\n }\n\n groupIcon(group: string): string {\n const key = (group ?? '').toLowerCase();\n const normalized = key\n .replace(/[àáâãäå]/g, 'a')\n .replace(/[èéêë]/g, 'e')\n .replace(/[ìíîï]/g, 'i')\n .replace(/[òóôõö]/g, 'o')\n .replace(/[ùúûü]/g, 'u')\n .replace(/[ç]/g, 'c')\n .replace(/[ñ]/g, 'n');\n if (normalized.includes('geral')) return 'widgets';\n if (normalized.includes('apresent')) return 'slideshow';\n if (normalized.includes('dados') || normalized.includes('opcoes')) return 'list_alt';\n if (normalized.includes('valid')) return 'task_alt';\n if (normalized.includes('formato') || normalized.includes('comport')) return 'tune';\n if (normalized.includes('material')) return 'design_services';\n if (normalized.includes('acao')) return 'bolt';\n if (normalized.includes('acess')) return 'accessibility_new';\n if (normalized.includes('icone')) return 'apps';\n if (normalized.includes('fonte') || normalized.includes('remota')) return 'cloud_sync';\n if (normalized.includes('adaptive')) return 'open_in_new';\n if (normalized.includes('apare')) return 'style';\n if (normalized.includes('atalho')) return 'keyboard_command_key';\n if (normalized.includes('conteu')) return 'article';\n if (normalized.includes('estado')) return 'toggle_on';\n if (normalized.includes('gradient')) return 'gradient';\n if (normalized.includes('palette')) return 'palette';\n if (normalized.includes('theme')) return 'colorize';\n if (normalized.includes('preview') || normalized.includes('view')) return 'visibility';\n return 'settings';\n }\n\n constructor(private dialog: MatDialog, private iconPicker: IconPickerService) { }\n\n isIconField(path: string): boolean {\n if (!path) return false;\n // Supports: prefixIcon, suffixIcon, icon, clearButton.icon, any *.icon\n return path === 'prefixIcon'\n || path === 'suffixIcon'\n || path === 'icon'\n || path === 'emptyIcon'\n || /(^|\\.)icon$/.test(path);\n }\n\n useHelpSuffix(field: FieldMetadata): boolean {\n const editorType = (field as any)._editorType as string | undefined;\n return (\n !!field.hint &&\n !this.isIconField(field.name) &&\n this.isSuffixCapable(editorType || '')\n );\n }\n\n private isSuffixCapable(editorType: string): boolean {\n return (\n editorType === 'text' ||\n editorType === 'number' ||\n editorType === 'textarea' ||\n editorType === 'select' ||\n editorType === 'date' ||\n editorType === 'datetime-local' ||\n editorType === 'color' ||\n editorType === 'colorPicker'\n );\n }\n\n openRegexHelp(): void {\n const ref = this.dialog.open(RegexHelpDialogComponent, {\n width: '720px',\n });\n ref.afterClosed().subscribe((selected: string | null | undefined) => {\n if (!selected) return;\n const ctrl = this.form?.get('pattern');\n ctrl?.setValue(selected);\n ctrl?.markAsDirty();\n this.form?.markAsDirty();\n });\n }\n\n async openIconPicker(path: string): Promise<void> {\n const current = this.form?.get(path)?.value as string | undefined;\n const picked = await this.iconPicker.openDialog({ value: current });\n if (picked !== undefined) {\n this.form?.get(path)?.setValue(picked);\n this.form?.markAsDirty();\n }\n }\n}\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const inputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', placeholder: 'Rótulo do campo', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (mi:*). Use o seletor ao lado.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (mi:*). Use o seletor ao lado.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mínimo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'maxLength', label: 'Máximo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'pattern', label: 'Pattern (regex)', editorType: 'text', hint: 'Ex.: /^foo.*/i', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: padrão inválido', editorType: 'text', group: 'Validação' },\n\n // Máscara/Formato\n { name: 'mask', label: 'Máscara', editorType: 'text', group: 'Formato/Comportamento' },\n {\n name: 'textTransform',\n label: 'Transformação de texto',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'none', text: 'Nenhuma' },\n { value: 'uppercase', text: 'MAIÚSCULAS (CSS)' },\n { value: 'lowercase', text: 'minúsculas (CSS)' },\n { value: 'capitalize', text: 'Capitalizar (CSS)' },\n { value: 'titleCase', text: 'Title Case' },\n { value: 'sentenceCase', text: 'Sentence case' },\n { value: 'kebab', text: 'kebab-case' },\n { value: 'snake', text: 'snake_case' },\n { value: 'camel', text: 'camelCase' },\n { value: 'pascal', text: 'PascalCase' },\n { value: 'slugify', text: 'slugify (a-z0-9-)' },\n { value: 'trim', text: 'trim (remover bordas)' },\n { value: 'collapseWhitespace', text: 'collapseWhitespace (normalizar espaços)' },\n { value: 'removeDiacritics', text: 'removeDiacritics (sem acentos)' },\n ],\n },\n {\n name: 'textTransformApply',\n label: 'Aplicar em',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'displayOnly',\n options: [\n { value: 'displayOnly', text: 'Exibição (visual)' },\n { value: 'saveOnly', text: 'Salvar (persistência)' },\n { value: 'both', text: 'Ambos' },\n ],\n },\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n {\n name: 'inputMode',\n label: 'Modo de entrada (mobile)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'text', text: 'Texto' },\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n { value: 'tel', text: 'Telefone' },\n { value: 'email', text: 'Email' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n ],\n },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n {\n name: 'inputType',\n label: 'Tipo de input (HTML5)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'text', text: 'Texto' },\n { value: 'email', text: 'Email' },\n { value: 'password', text: 'Senha' },\n { value: 'tel', text: 'Telefone' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n { value: 'number', text: 'Número' },\n { value: 'date', text: 'Data' },\n { value: 'datetime-local', text: 'Data/Hora local' },\n { value: 'time', text: 'Hora' },\n { value: 'month', text: 'Mês' },\n { value: 'week', text: 'Semana' },\n { value: 'color', text: 'Cor' },\n ],\n },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n {\n name: 'validators.validationDebounce',\n label: 'Debounce de validação (ms)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Estado de erro e interações avançadas\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n { name: 'disabledInteractive', label: 'Desabilitado interativo', editorType: 'checkbox', group: 'Material Design' },\n\n // Botão limpar (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Acessibilidade / Avançado\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', hint: '{ \"testId\": \"input-a\" }', group: 'Acessibilidade' },\n\n // Valor padrão\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Editor de metadados para componentes SELECT-like\n// Paridade com INPUT: grupos, linhas e propriedades canônicas\nexport const selectProperties: EditorProperty[] = [\n // 1) Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', row: 'icon.prefix', inline: true, hint: \"Material Symbols (ex.: mi:list). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', row: 'icon.prefix', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', row: 'icon.suffix', inline: true, hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', row: 'icon.suffix', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'panelSearchIcon', label: 'Ícone da busca (painel)', editorType: 'text', group: 'Ícones', row: 'icon.panelSearch', inline: true, hint: 'Ícone do campo de busca no painel (fallback: search).' },\n { name: 'panelSearchIconColor', label: 'Cor da busca (painel)', editorType: 'color', group: 'Ícones', row: 'icon.panelSearch', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n { name: 'panelResetIcon', label: 'Ícone de reset (painel)', editorType: 'text', group: 'Ícones', row: 'icon.panelReset', inline: true, hint: 'Ícone da ação limpar/reset no painel (fallback: restart_alt).' },\n { name: 'panelResetIconColor', label: 'Cor de reset (painel)', editorType: 'color', group: 'Ícones', row: 'icon.panelReset', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n { name: 'optionSelectedIcon', label: 'Ícone de selecionado', editorType: 'text', group: 'Ícones', row: 'icon.optionSelected', inline: true, hint: 'Ícone exibido em opções selecionadas (fallback: done).' },\n { name: 'optionSelectedIconColor', label: 'Cor do selecionado', editorType: 'color', group: 'Ícones', row: 'icon.optionSelected', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n\n // 2) Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo. Para múltiplos valores, use multiple=true.',\n },\n { name: 'emptyOptionText', label: 'Texto da opção vazia', editorType: 'text', group: 'Dados/Opções' },\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Dados/Opções', row: 'dados.inline1', inline: true, hint: 'Permite selecionar mais de um item.' },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo exibido ao carregar via API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo salvo como value vindo da API.' },\n { name: 'lookupIdKey', label: 'Lookup: chave de ID', editorType: 'text', group: 'Dados/Opções', hint: 'Usado por lookup inline para identificar o item (default: id).' },\n { name: 'lookupLabelKey', label: 'Lookup: chave de label', editorType: 'text', group: 'Dados/Opções', hint: 'Define qual campo textual é exibido no trigger.' },\n { name: 'lookupSubtitleKey', label: 'Lookup: chave de subtítulo', editorType: 'text', group: 'Dados/Opções', hint: 'Campo secundário exibido nas opções (quando disponível).' },\n\n // 3) Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n {\n name: 'loadOn',\n label: 'Carregar em',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'open', text: 'Ao abrir (padrão)' },\n { value: 'init', text: 'Na inicialização' },\n { value: 'none', text: 'Nenhum (manual)' },\n ],\n hint: \"Define quando o async-select realiza a primeira busca remota\",\n },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // 3.1) Dependências (Cascata Nativa – Fase 1)\n { name: 'dependencyFields', label: 'Campos dependentes (CSV ou JSON)', editorType: 'text', group: 'Fonte Remota', hint: \"Ex.: rotaId,destinoReqId\" },\n { name: 'resetOnDependentChange', label: 'Resetar ao mudar dependentes', editorType: 'checkbox', group: 'Fonte Remota' },\n { name: 'enableDependencyCascade', label: 'Habilitar cascata nativa', editorType: 'checkbox', group: 'Fonte Remota', hint: 'Desative quando Connections controlarem filterCriteria' },\n { name: 'dependencyFilterMap', label: 'Mapeamento de filtros (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"rotaId\": \"rotaId\", \"destinoReqId\": { \"key\": \"destinoId\", \"valuePath\": \"id\" } }' },\n { name: 'dependencyValuePath', label: 'Value path padrão (dep.)', editorType: 'text', group: 'Fonte Remota', hint: \"Ex.: 'id' (default) ou 'code'\" },\n {\n name: 'dependencyMergeStrategy',\n label: 'Merge de filtros (dep.)',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'merge', text: 'merge (padrão)' },\n { value: 'replace', text: 'replace (apenas chaves mapeadas)' },\n ],\n hint: 'merge preserva chaves externas; replace substitui apenas chaves mapeadas',\n },\n { name: 'dependencyDebounceMs', label: 'Debounce (ms) dependentes', editorType: 'number', group: 'Fonte Remota', hint: 'Padrão: 150' },\n {\n name: 'dependencyLoadOnChange', label: 'Recarregar ao mudar dependentes', editorType: 'select', group: 'Fonte Remota', options: [\n { value: 'respectLoadOn', text: 'Respeitar loadOn (padrão)' },\n { value: 'immediate', text: 'Imediato' },\n { value: 'manual', text: 'Manual (Connections disparam)' },\n ]\n },\n\n // 4) Formato/Comportamento\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Exibe opção para selecionar tudo (somente multiple).' },\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Mostra campo de busca; em remoto, filtra na API.' },\n { name: 'searchPlaceholder', label: 'Placeholder da busca', editorType: 'text', group: 'Formato/Comportamento', hint: 'Texto do campo de busca no popover/lista.' },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de itens quando multiple=true.' },\n\n // 5) Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // 6) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true, hint: 'Mostra botão para limpar seleção.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'clear.inline2', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true, hint: 'Exibe o botão apenas quando há valor.' },\n\n // 7) Aparência\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // 8) Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"select-a\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const transferListProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo. Para listas grandes, use resourcePath (lazy/paginação).',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Propriedade para exibir como texto ao carregar da API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Propriedade usada como value ao carregar da API.' },\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Dados/Opções', hint: 'Endpoint para carregar opções (suporta lazy load/paginação/virtualização).' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true } — filtro inicial enviado na busca remota.' },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fonte.inline1', inline: true, hint: 'Habilita busca; com resourcePath filtra no backend.' },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de itens transferidos (0 ou vazio = sem limite).' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Preencha quando o botão não tiver label visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos com help/error.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \\\"testId\\\": \\\"transfer-a\\\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const radioProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'description', label: 'Descrição', editorType: 'textarea', group: 'Geral', hint: 'Texto de apoio adicional do grupo de radio.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\",\"description\":\"Ajuda\",\"disabled\":false }] ou linhas: valor|rótulo. Apenas uma opção pode ser selecionada.',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo exibido ao carregar via API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo salvo como value vindo da API.' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota', hint: 'Endpoint para opções remotas.' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'text', group: 'Fonte Remota', hint: '{ \"active\": true } — filtro inicial na busca remota.' },\n\n // Formato/Comportamento\n { name: 'selectionMode', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'single', text: 'Escolha única' },\n ], hint: 'Contrato canônico do radio group.' },\n { name: 'variant', label: 'Variante', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'default', text: 'Default' },\n { value: 'compact', text: 'Compacto' },\n { value: 'tiles', text: 'Tiles' },\n ] },\n { name: 'density', label: 'Densidade', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'spacious', text: 'Espaçosa' },\n ] },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'vertical', text: 'Vertical' },\n ] },\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado aos radios.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const buttonToggleProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo.',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo exibido ao carregar via API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', hint: 'Campo salvo como value.' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota', hint: 'Endpoint para carregar opções.' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true } — filtro inicial enviado.' },\n\n // Formato/Comportamento\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Permite selecionar mais de um botão.' },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite quando multiple=true.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'legacy', text: 'Legacy' },\n { value: 'standard', text: 'Standard' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const treeSelectProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone do chip', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:account_tree). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone do chip', editorType: 'color', group: 'Ícones', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'panelSearchIcon', label: 'Ícone da busca (painel)', editorType: 'text', group: 'Ícones', row: 'icons.search', inline: true, hint: 'Ícone do campo de busca no painel (fallback: search).' },\n { name: 'panelSearchIconColor', label: 'Cor da busca (painel)', editorType: 'color', group: 'Ícones', row: 'icons.search', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n { name: 'panelToggleCloseIcon', label: 'Ícone toggle fechado', editorType: 'text', group: 'Ícones', row: 'icons.toggle', inline: true, hint: 'Ícone do trigger quando painel está fechado (fallback: expand_more).' },\n { name: 'panelToggleOpenIcon', label: 'Ícone toggle aberto', editorType: 'text', group: 'Ícones', row: 'icons.toggle', inline: true, hint: 'Ícone do trigger quando painel está aberto (fallback: expand_less).' },\n { name: 'panelToggleIconColor', label: 'Cor do toggle', editorType: 'color', group: 'Ícones', row: 'icons.toggle', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n { name: 'treeNodeExpandedIcon', label: 'Ícone nó expandido', editorType: 'text', group: 'Ícones', row: 'icons.node', inline: true, hint: 'Ícone do botão de nó aberto (fallback: expand_more).' },\n { name: 'treeNodeCollapsedIcon', label: 'Ícone nó recolhido', editorType: 'text', group: 'Ícones', row: 'icons.node', inline: true, hint: 'Ícone do botão de nó fechado (fallback: chevron_right).' },\n { name: 'treeNodeIconColor', label: 'Cor ícones de nó', editorType: 'color', group: 'Ícones', row: 'icons.node', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Nós (estáticos)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"label\":\"Um\", children:[...] }]. Para árvores grandes, considere lazy load/virtualização.',\n },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Habilita busca; com lazy load, filtra nós carregados.' },\n { name: 'searchPlaceholder', label: 'Placeholder da busca', editorType: 'text', group: 'Formato/Comportamento', hint: 'Texto exibido no campo de busca dentro do popover.' },\n { name: 'emptyStateText', label: 'Mensagem sem resultado', editorType: 'text', group: 'Formato/Comportamento', hint: 'Texto mostrado quando não houver nós visíveis.' },\n { name: 'leafOnly', label: 'Permitir apenas folhas', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true, hint: 'Impede seleção de nós pais.' },\n { name: 'autoExpandOnSearch', label: 'Auto-expansão ao buscar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true, hint: 'Expande nós que correspondem ao termo de busca.' },\n { name: 'returnPath', label: 'Retornar caminho', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true, hint: 'Retorna array de ancestrais (caminho completo).' },\n { name: 'returnObject', label: 'Retornar objeto', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true, hint: 'Retorna o objeto completo do nó selecionado.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Use quando o botão não tiver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Aparência\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID/IDs de elementos de ajuda ou erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"tree-a\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Properties for Material Textarea editor (parity com INPUT onde aplicável)\nexport const textareaProperties: EditorProperty[] = [\n // Geral / Apresentação\n { name: 'label', label: 'Label', editorType: 'text', placeholder: 'Rótulo do campo', group: 'Geral', hint: 'Título exibido acima do textarea.' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral', hint: 'Texto temporário dentro do campo (ex.: Descreva o problema).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Ajuda curta exibida abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral', hint: 'Texto fixo antes do conteúdo digitado.' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral', hint: 'Texto fixo após o conteúdo digitado.' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: 'Valor inicial do textarea (pré-preenchimento).' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:edit). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n {\n name: 'textTransform',\n label: 'Transformação de texto',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'none', text: 'Nenhuma' },\n { value: 'uppercase', text: 'MAIÚSCULAS (CSS)' },\n { value: 'lowercase', text: 'minúsculas (CSS)' },\n { value: 'capitalize', text: 'Capitalizar (CSS)' },\n { value: 'titleCase', text: 'Title Case' },\n { value: 'sentenceCase', text: 'Sentence case' },\n { value: 'kebab', text: 'kebab-case' },\n { value: 'snake', text: 'snake_case' },\n { value: 'camel', text: 'camelCase' },\n { value: 'pascal', text: 'PascalCase' },\n { value: 'slugify', text: 'slugify (a-z0-9-)' },\n { value: 'trim', text: 'trim (remover bordas)' },\n { value: 'collapseWhitespace', text: 'collapseWhitespace (normalizar espaços)' },\n { value: 'removeDiacritics', text: 'removeDiacritics (sem acentos)' },\n ],\n hint: 'Transformação aplicada ao texto (visual ou na persistência).',\n },\n {\n name: 'textTransformApply',\n label: 'Aplicar em',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'displayOnly',\n options: [\n { value: 'displayOnly', text: 'Exibição (visual)' },\n { value: 'saveOnly', text: 'Salvar (persistência)' },\n { value: 'both', text: 'Ambos' },\n ],\n hint: 'Onde aplicar a transformação: visual, persistência ou ambos.',\n },\n { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe contador progressivo; combine com min/max length.' },\n { name: 'rows', label: 'Linhas (rows)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size', hint: 'Altura inicial em linhas (sem auto-resize).' },\n { name: 'cols', label: 'Colunas (cols)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size', hint: 'Largura em colunas de caracteres (modo monospace).' },\n {\n name: 'wrap',\n label: 'Quebra de linha (wrap)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'soft', text: 'Soft (visual, sem \\\\n)' },\n { value: 'hard', text: 'Hard (visual + \\\\n)' },\n { value: 'off', text: 'Off (sem quebra automática)' },\n ],\n hint: 'Define se insere quebras reais (hard) ou só visuais (soft/off).',\n },\n { name: 'autoResize', label: 'Auto-resize (CDK)', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true, hint: 'Ajusta a altura conforme o conteúdo (respeita min/max rows).' },\n { name: 'minRows', label: 'Mín. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true, hint: 'Altura mínima quando auto-resize está ativo.' },\n { name: 'maxRows', label: 'Máx. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true, hint: 'Limite de expansão do auto-resize.' },\n { name: 'resize', label: 'Redimensionamento (CSS resize)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'none', text: 'Nenhum' },\n { value: 'vertical', text: 'Vertical' },\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'both', text: 'Ambos' },\n ], hint: 'Permite o handle nativo de resize: vertical, horizontal ou ambos.' },\n { name: 'textAreaMode', label: 'Modo de edição', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'plain', text: 'Texto (normal)' },\n { value: 'code', text: 'Código (genérico)' },\n { value: 'markdown', text: 'Markdown' },\n { value: 'json', text: 'JSON' },\n { value: 'xml', text: 'XML' },\n { value: 'sql', text: 'SQL' },\n { value: 'log', text: 'Log' },\n ], hint: 'Ajusta o modo de edição/estilo (plain, código, markdown, JSON etc.).' },\n { name: 'showStats', label: 'Mostrar estatísticas (palavras/linhas)', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe contagem de palavras/linhas para textos longos.' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Valor do atributo autocomplete (ex.: on, off, email, name).' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true, hint: 'Ativa correção ortográfica do navegador.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true, hint: 'Impede alterações mas mantém scroll e seleção.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true, hint: 'Desativa foco e interação do usuário.' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true, hint: 'Foca o campo ao renderizar (use com moderação).' },\n { name: 'enableTabIndent', label: 'Tab: inserir indentação', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true, hint: 'Permite usar Tab para inserir espaços (modo código).' },\n { name: 'tabSize', label: 'Tamanho da indentação (espaços)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true, hint: 'Quantidade de espaços inseridos ao usar Tab.' },\n { name: 'maxLines', label: 'Máx. de linhas (bloqueia Enter)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true, hint: 'Impede novas quebras após atingir o limite.' },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n hint: 'Quando disparar validação: change, blur, submit ou imediato.',\n },\n { name: 'validators.validationDebounce', label: 'Debounce de validação (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true, hint: 'Atraso antes de validar (ex.: 300-500 ms).' },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra erros abaixo do campo em vez de tooltip.' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n hint: 'Posiciona a mensagem de erro (abaixo, acima ou tooltip).',\n },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige preenchimento do textarea.' },\n { name: 'minLength', label: 'Mínimo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax', hint: 'Comprimento mínimo aceito.' },\n { name: 'maxLength', label: 'Máximo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax', hint: 'Comprimento máximo (bloqueia ou mostra erro).' },\n { name: 'pattern', label: 'Pattern (regex)', editorType: 'text', hint: 'Regex de validação (ex.: /^foo.*/i).', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Texto exibido quando o campo é obrigatório e vazio.' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação', hint: 'Mensagem ao violar o mínimo de caracteres.' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação', hint: 'Mensagem ao violar o máximo de caracteres.' },\n { name: 'validators.patternMessage', label: 'Mensagem: padrão inválido', editorType: 'text', group: 'Validação', hint: 'Mensagem exibida quando a regex falha.' },\n\n // Ações (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Exibe botão de limpar o conteúdo.' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto do tooltip do botão clear.' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição de acessibilidade para o botão clear.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Mostra o botão clear apenas quando há texto.' },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n hint: 'Estilo do mat-form-field (fill ou outline).',\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n hint: 'Paleta de cor aplicada ao campo.',\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n hint: 'Quando o label flutua (auto ou sempre visível).',\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n hint: 'Altura fixa ou dinâmica para hints/erros.',\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência', hint: 'Remove o asterisco de obrigatório do label.' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n hint: 'Quando exibir erros: padrão, ao sujar, enviar ou imediato.',\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Descrição acessível quando o label não for suficiente.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos que descrevem o campo (separar por espaço).' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de labels associados ao campo.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade', hint: 'Ordem de tabulação; 0 segue fluxo, -1 remove do tab.' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', hint: '{ \\\"testId\\\": \\\"textarea-a\\\" }', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Editor de metadados para NUMBER (numericTextBox)\n// Paridade com INPUT, cobrindo grupos e propriedades canônicas\nexport const numberProperties: EditorProperty[] = [\n // 1) Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:calculate). Use o seletor ao lado para buscar.' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n\n // 3) Dados/Opções\n // (sem opções específicas)\n\n // 4) Formato/Comportamento\n { name: 'step', label: 'Step (incremento)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento em unidades; combine com min/max (ex.: 0.01).' },\n { name: 'numberFormat.decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true, hint: 'Precisão exibida/aceita (ex.: 2).' },\n { name: 'showGrouping', label: 'Agrupar milhares', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true, hint: 'Mostra separador de milhar sem alterar o valor salvo.' },\n {\n name: 'inputMode',\n label: 'Modo de entrada',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n ],\n },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles2', inline: true },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comp.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n { name: 'validators.validationDebounce', label: 'Debounce (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.validation', inline: true },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // 5) Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true, hint: 'Valor mínimo aceito; use com step.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true, hint: 'Valor máximo aceito.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // 6) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true, hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'acoes.inline2', hint: 'Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'acoes.inline2', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'acoes.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'acoes.inline2', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true, hint: 'Exibe o botão apenas quando há valor.' },\n\n // 7) Aparência\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // 8) Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando o label não estiver visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"number-a\" }' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const dateProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'date', group: 'Geral', hint: 'Data (YYYY-MM-DD)' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_today). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minDate', label: 'Mínima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'maxDate', label: 'Máxima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: data mínima', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: data máxima', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'startView', label: 'Visão inicial', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'month', text: 'Mês' },\n { value: 'year', text: 'Ano' },\n { value: 'multi-year', text: 'Décadas' },\n ] },\n { name: 'startAt', label: 'Abrir em', editorType: 'date', group: 'Formato/Comportamento' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'closeOnSelect', label: 'Fechar ao selecionar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Material Design', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'clear.inline2', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const dateRangeProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral', hint: 'Título exibido no topo do campo.' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto auxiliar abaixo do campo (útil para instruções curtas).' },\n { name: 'startPlaceholder', label: 'Placeholder (início)', editorType: 'text', group: 'Geral', hint: 'Texto temporário no campo inicial (ex.: 01/01/2025).' },\n { name: 'endPlaceholder', label: 'Placeholder (fim)', editorType: 'text', group: 'Geral', hint: 'Texto temporário no campo final (ex.: 31/12/2025).' },\n { name: 'defaultValue.startDate', label: 'Valor padrão (início)', editorType: 'date', group: 'Geral', hint: 'Data inicial padrão no formato YYYY-MM-DD; usa fuso local.' },\n { name: 'defaultValue.endDate', label: 'Valor padrão (fim)', editorType: 'date', group: 'Geral', hint: 'Data final padrão no formato YYYY-MM-DD; usa fuso local.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:date_range). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', row: 'icon.colors', inline: true, hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', row: 'icon.colors', inline: true, hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n\n // Formato/Comportamento\n {\n name: 'startView', label: 'Visão inicial', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'month', text: 'Mês' },\n { value: 'year', text: 'Ano' },\n { value: 'multi-year', text: 'Décadas' },\n ], hint: 'Visão mostrada ao abrir o calendário (padrão: mês).'\n },\n { name: 'startAt', label: 'Abrir em', editorType: 'date', group: 'Formato/Comportamento', hint: 'Data inicial do calendário (YYYY-MM-DD) quando não há valor selecionado.' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true, hint: 'Abre o datepicker em modo tela cheia para toque.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige seleção de intervalo (início e fim).' },\n { name: 'minDate', label: 'Mínima', editorType: 'date', group: 'Validação', row: 'val.minmax', hint: 'Data mínima permitida (YYYY-MM-DD).' },\n { name: 'maxDate', label: 'Máxima', editorType: 'date', group: 'Validação', row: 'val.minmax', hint: 'Data máxima permitida (YYYY-MM-DD).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Texto de erro quando o intervalo é obrigatório e não preenchido.' },\n\n // Aparência (Renamed from Material Design)\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ], hint: 'Estilo do mat-form-field (fill ou outline).'\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Paleta aplicada ao campo e calendário.'\n },\n {\n name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ], hint: 'Quando o label flutua (auto ou sempre visível).'\n },\n {\n name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ], hint: 'Altura fixa ou dinâmica para hints/erros.'\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência', hint: 'Remove o asterisco de obrigatório do label.' },\n {\n name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Aparência', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ], hint: 'Quando exibir erros: padrão, ao sujar, ao enviar ou imediato.'\n },\n\n // Acessibilidade\n { name: 'startAriaLabel', label: 'ARIA (início)', editorType: 'text', group: 'Acessibilidade', hint: 'Descrição de acessibilidade para o campo inicial; use quando o label não for suficiente.' },\n { name: 'endAriaLabel', label: 'ARIA (fim)', editorType: 'text', group: 'Acessibilidade', hint: 'Descrição de acessibilidade para o campo final; use quando o label não for suficiente.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade', hint: 'Ordem de tabulação; 0 segue fluxo padrão, -1 remove do tab.' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: 'Mapa JSON de data-* (ex.: { \\\"testId\\\": \\\"date-range-a\\\" }).' },\n\n // Atalhos\n { name: 'showShortcuts', label: 'Habilitar atalhos', editorType: 'checkbox', group: 'Atalhos', hint: 'Exibe painel lateral com presets de datas.' },\n {\n name: 'shortcutsPosition', label: 'Posição do painel', editorType: 'select', group: 'Atalhos', options: [\n { value: 'left', text: 'Esquerda' },\n { value: 'right', text: 'Direita' },\n ], hint: 'Escolhe em qual lado o painel de atalhos abre.'\n },\n { name: 'applyOnShortcutClick', label: 'Aplicar ao clicar', editorType: 'checkbox', group: 'Atalhos', hint: 'Compatibilidade legada para atalhos do date-range base. No inlineDateRange, prefira inlineQuickPresetsApplyMode.' },\n {\n name: 'shortcuts', label: 'Atalhos visíveis', editorType: 'select', group: 'Atalhos', multiple: true, options: [\n { value: 'today', text: 'Hoje' },\n { value: 'yesterday', text: 'Ontem' },\n { value: 'thisWeek', text: 'Esta semana' },\n { value: 'lastWeek', text: 'Semana passada' },\n { value: 'thisMonth', text: 'Este mês' },\n { value: 'lastMonth', text: 'Mês passado' },\n { value: 'thisYear', text: 'Este ano' },\n { value: 'lastYear', text: 'Ano passado' },\n ], hint: 'Selecione quais presets mostrar no painel de atalhos.'\n },\n { name: 'inlineQuickPresets.enabled', label: 'Atalhos inline', editorType: 'checkbox', group: 'Atalhos', hint: 'Exibe chips rápidos ao lado do campo no modo inlineDateRange.' },\n { name: 'inlineQuickPresets.maxVisible', label: 'Qtd. chips inline', editorType: 'number', group: 'Atalhos', hint: 'Define o número máximo de atalhos inline visíveis (1 a 8).' },\n { name: 'inlineQuickPresetsAriaLabel', label: 'ARIA atalhos inline', editorType: 'text', group: 'Atalhos', hint: 'Rótulo de acessibilidade do grupo de atalhos rápidos inline.' },\n {\n name: 'inlineQuickPresetsApplyMode', label: 'Modo de aplicação', editorType: 'select', group: 'Atalhos', options: [\n { value: 'auto', text: 'Auto apply' },\n { value: 'confirm', text: 'Confirmar no rodapé' },\n ], hint: 'No inlineDateRange: auto aplica imediatamente; confirm mantém seleção em rascunho até clicar em Aplicar.'\n },\n { name: 'inlineQuickPresetsCancelLabel', label: 'Label botão cancelar', editorType: 'text', group: 'Atalhos', hint: 'Texto do botão de cancelamento no rodapé do overlay.' },\n { name: 'inlineQuickPresetsCancelAriaLabel', label: 'ARIA botão cancelar', editorType: 'text', group: 'Atalhos', hint: 'Descrição de acessibilidade para o botão cancelar no rodapé do overlay.' },\n { name: 'inlineQuickPresetsApplyLabel', label: 'Label botão aplicar', editorType: 'text', group: 'Atalhos', hint: 'Texto do botão de aplicar no rodapé do overlay.' },\n { name: 'inlineQuickPresetsApplyAriaLabel', label: 'ARIA botão aplicar', editorType: 'text', group: 'Atalhos', hint: 'Descrição de acessibilidade para o botão aplicar no rodapé do overlay.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const datetimeLocalProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:schedule). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada (mobile)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'text', text: 'Texto' },\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n { value: 'tel', text: 'Telefone' },\n { value: 'email', text: 'Email' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n ] },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações: Não expõe Clear (componente não implementa botão de limpar)\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Native <input type=\"date\"> editor properties\nexport const dateInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM-DD)', editorType: 'date', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:event). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínima (YYYY-MM-DD)', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máxima (YYYY-MM-DD)', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações: Não expõe Clear (componente não implementa botão de limpar)\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timeInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (HH:mm[:ss])', editorType: 'text', group: 'Geral', hint: 'Ex.: 08:30 ou 08:30:45. Formato 24h.' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:schedule).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb (ex.: #ff0000).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb (ex.: #ff0000).' },\n { name: 'panelToggleCloseIcon', label: 'Ícone toggle fechado', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está fechado (fallback: expand_more).' },\n { name: 'panelToggleOpenIcon', label: 'Ícone toggle aberto', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está aberto (fallback: expand_less).' },\n { name: 'panelToggleIconColor', label: 'Cor do toggle', editorType: 'color', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n { name: 'optionSelectedIcon', label: 'Ícone selecionado', editorType: 'text', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'Ícone da opção selecionada na lista (fallback: check).' },\n { name: 'optionSelectedIconColor', label: 'Cor selecionado', editorType: 'color', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'primary/accent/warn ou cor CSS.' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento em segundos (ex.: 60 = 1 min).' },\n { name: 'interval', label: 'Intervalo (segundos ou 30m)', editorType: 'text', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: intervalo entre horários.' },\n { name: 'timeOptions', label: 'Opções de horário (uma por linha)', editorType: 'textarea', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: lista manual HH:mm ou HH:mm:ss.' },\n { name: 'stepMinute', label: 'Passo minuto (inline)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: incremento de minutos.' },\n { name: 'stepSecond', label: 'Passo segundo (inline)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Compatibilidade inline: incremento de segundos.' },\n { name: 'showSeconds', label: 'Exibir segundos (inline)', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'inlineTimeMode', label: 'Modo inline', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto (recomendado)' },\n { value: 'columns', text: 'Colunas (hora/min/seg)' },\n { value: 'list', text: 'Lista única' },\n ]\n },\n { name: 'inlineListMaxOptions', label: 'Auto: máximo para lista', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.hourLabel', label: 'Inline: rótulo hora', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.minuteLabel', label: 'Inline: rótulo minuto', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.secondLabel', label: 'Inline: rótulo segundo', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.emptyStateLabel', label: 'Inline: vazio', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.openPanelAriaLabel', label: 'Inline: aria abrir', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.closePanelAriaLabel', label: 'Inline: aria fechar', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Atributo HTML autocomplete (ex.: off, on).' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento', hint: 'Dica para teclado virtual (ex.: numeric).' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário mínimo permitido (ex.: 08:00 ou 08:00:30).' },\n { name: 'max', label: 'Máximo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário máximo permitido (ex.: 18:00 ou 18:30:45).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n {\n name: 'materialDesign.density', label: 'Densidade', editorType: 'select', group: 'Aparência', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta o tamanho base do inline (compacta, confortável ou densa).',\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n {\n name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ]\n },\n {\n name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ]\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência' },\n {\n name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Aparência', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que descreve este campo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que rotula este campo.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: 'Objeto JSON com atributos data-*.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timePickerProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (exibição)', editorType: 'text', group: 'Geral', hint: 'Ex.: 08:30 ou 08:30:45 (HH:mm[:ss]).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:schedule).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (hex/rgb).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (hex/rgb).' },\n { name: 'panelToggleCloseIcon', label: 'Ícone toggle fechado', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está fechado (fallback: expand_more).' },\n { name: 'panelToggleOpenIcon', label: 'Ícone toggle aberto', editorType: 'text', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Ícone do botão quando painel está aberto (fallback: expand_less).' },\n { name: 'panelToggleIconColor', label: 'Cor do toggle', editorType: 'color', group: 'Ícones', row: 'icon.toggle', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n { name: 'optionSelectedIcon', label: 'Ícone selecionado', editorType: 'text', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'Ícone da opção selecionada na lista (fallback: check).' },\n { name: 'optionSelectedIconColor', label: 'Cor selecionado', editorType: 'color', group: 'Ícones', row: 'icon.selected', inline: true, hint: 'Tema (primary/accent/warn) ou cor CSS.' },\n\n // Dados/Opções\n { name: 'timeOptions', label: 'Opções (uma por linha)', editorType: 'textarea', group: 'Dados/Opções', hint: 'Lista manual de horários (HH:mm ou HH:mm:ss), um por linha; use para presets.' },\n\n // Formato/Comportamento\n { name: 'interval', label: 'Intervalo (segundos ou 30m)', editorType: 'text', group: 'Formato/Comportamento', hint: 'Intervalo padrão (ex.: 900, 30m, 1h), respeitando min/max.' },\n {\n name: 'inlineTimeMode',\n label: 'Modo inline',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'auto', text: 'Auto (recomendado)' },\n { value: 'columns', text: 'Colunas (hora/min/seg)' },\n { value: 'list', text: 'Lista única' },\n ],\n hint: 'No filtro inline: define seletor por colunas independentes ou lista única.',\n },\n {\n name: 'inlineListMaxOptions',\n label: 'Auto: máximo para lista',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'No modo auto, até este limite usa lista única; acima usa colunas.',\n },\n { name: 'openOnClick', label: 'Abrir ao clicar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true, hint: 'Modo otimizado para toque (dialog fullscreen).' },\n {\n name: 'format', label: 'Formato', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: '24h', text: '24 horas' },\n { value: '12h', text: '12 horas' },\n ]\n },\n { name: 'showSeconds', label: 'Exibir segundos', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Habilita seleção HH:mm:ss.' },\n { name: 'stepMinute', label: 'Passo (min)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true, hint: 'Incremento de minutos.' },\n { name: 'stepSecond', label: 'Passo (seg)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true, hint: 'Incremento de segundos.' },\n { name: 'timeFilter', label: 'Filtro (id função)', editorType: 'text', group: 'Formato/Comportamento', hint: 'ID de função para filtrar horários.' },\n { name: 'inlineTexts.hourLabel', label: 'Inline: rótulo hora', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.minuteLabel', label: 'Inline: rótulo minuto', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.secondLabel', label: 'Inline: rótulo segundo', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.emptyStateLabel', label: 'Inline: vazio', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.openPanelAriaLabel', label: 'Inline: aria abrir', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inlineTexts.closePanelAriaLabel', label: 'Inline: aria fechar', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário mínimo permitido (HH:mm ou HH:mm:ss).' },\n { name: 'max', label: 'Máximo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Horário máximo permitido (HH:mm ou HH:mm:ss).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n {\n name: 'materialDesign.density', label: 'Densidade', editorType: 'select', group: 'Aparência', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta o tamanho base do inline (compacta, confortável ou densa).',\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela quando o label não estiver visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de elementos que descrevem o campo/hint/erros.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timeRangeProperties: EditorProperty[] = [\n // Geral (defaultValue como objeto start/end)\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'inlinePanelTitle', label: 'Título do painel inline', editorType: 'text', group: 'Geral', hint: 'Título exibido no popover do range inline.' },\n { name: 'startLabel', label: 'Label (início)', editorType: 'text', group: 'Geral', row: 'geral.labels', inline: true, hint: 'Rótulo do campo inicial no painel inline.' },\n { name: 'endLabel', label: 'Label (fim)', editorType: 'text', group: 'Geral', row: 'geral.labels', inline: true, hint: 'Rótulo do campo final no painel inline.' },\n { name: 'defaultValue.start', label: 'Início (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true, hint: 'Valor inicial padrão no formato HH:mm (ex.: 08:00).' },\n { name: 'defaultValue.end', label: 'Fim (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true, hint: 'Valor final padrão no formato HH:mm (ex.: 18:00).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:schedule).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb.' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'primary, accent, warn ou hex/rgb.' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Granularidade em segundos (ex.: 300 = passos de 5 min).' },\n { name: 'stepMinute', label: 'Step (minutos)', editorType: 'number', group: 'Formato/Comportamento', hint: 'Granularidade em minutos para o slider inline (ex.: 15).' },\n { name: 'minTime', label: 'Limite inicial inline (HH:mm)', editorType: 'text', group: 'Formato/Comportamento', row: 'comp.inline.bounds', inline: true, hint: 'Limite inferior usado pelo slider inline.' },\n { name: 'maxTime', label: 'Limite final inline (HH:mm)', editorType: 'text', group: 'Formato/Comportamento', row: 'comp.inline.bounds', inline: true, hint: 'Limite superior usado pelo slider inline.' },\n {\n name: 'showTicks',\n label: 'Exibir marcações (ticks)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: true, text: 'Sempre' },\n { value: false, text: 'Nunca' },\n ],\n hint: 'Controla as marcações visuais do slider inline.',\n },\n { name: 'inlineTimeQuickPresets', label: 'Atalhos rápidos (inline)', editorType: 'textarea', group: 'Formato/Comportamento', hint: 'JSON array (ex.: [\\\"manha\\\",\\\"comercial\\\"]) ou objetos de preset.' },\n {\n name: 'inlineTimeTrackShifts',\n label: 'Gradiente por turno (inline)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'JSON array com turnos para colorir a barra (ex.: [{\\\"id\\\":\\\"manha\\\",\\\"start\\\":\\\"06:00\\\",\\\"end\\\":\\\"12:00\\\",\\\"color\\\":\\\"#0a84ff\\\"}]).',\n },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Abre o seletor em modo tela cheia (UX mobile).' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Min (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite inicial no formato HH:mm; usado para ambos os campos.' },\n { name: 'max', label: 'Max (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite final no formato HH:mm.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const monthInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_view_month). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-MM)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-MM)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const weekInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-Www)', editorType: 'text', group: 'Geral', hint: 'Semana ISO, ex.: 2024-W05.' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:date_range). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Semana mínima no formato ISO (ex.: 2024-W01).' },\n { name: 'max', label: 'Máximo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax', hint: 'Semana máxima no formato ISO (ex.: 2024-W52).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const emailInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:mail). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mín. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'maxLength', label: 'Máx. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: minLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: maxLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: regex', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const passwordInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:lock). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Sugestão: \"current-password\" ou \"new-password\".' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mín. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true, hint: 'Ex.: 8. Combina com contador.' },\n { name: 'maxLength', label: 'Máx. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true, hint: 'Evita senhas longas demais.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: minLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: maxLength', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const urlInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (URL)', editorType: 'text', group: 'Geral', hint: 'Inclua protocolo (ex.: https://dominio.com/caminho).' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:link). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Atributo HTML autocomplete (ex.: url, off).' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação', hint: 'Regex para URL aceita (ex.: ^https?://).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n { name: 'validators.patternMessage', label: 'Mensagem: regex', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const searchInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:search). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Ex.: search ou off.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n // (herda aparência padrão do input base)\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const phoneInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:call). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento', hint: 'Ex.: tel.' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento', hint: 'Sugestão de teclado (ex.: tel, numeric).' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n // (herda aparência padrão do input base)\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const colorInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: 'Ex.: #rrggbb, rgb()/rgba().' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n { name: 'palettePreset', label: 'Paleta (preset)', editorType: 'select', group: 'Dados/Opções', options: [\n { value: 'material', text: 'Material' },\n { value: 'office', text: 'Office' },\n { value: 'basic', text: 'Básico' },\n ] },\n { name: 'paletteColors', label: 'Paleta: cores (JSON ou linhas)', editorType: 'textarea', group: 'Dados/Opções', hint: \"JSON array ou uma cor por linha (#hex ou rgba/hsl).\" },\n { name: 'columns', label: 'Paleta: colunas', editorType: 'number', group: 'Dados/Opções', defaultValue: 8, hint: 'Quantidade de colunas exibidas.' },\n\n // Formato/Comportamento\n { name: 'popupWidth', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Formato/Comportamento', defaultValue: '320', hint: 'Ex.: 320 ou 20rem.' },\n { name: 'preview', label: 'Mostrar preview', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe cor selecionada.' },\n { name: 'showRecent', label: 'Mostrar recentes', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe cores usadas recentemente.' },\n { name: 'maxRecent', label: 'Qtd. de recentes', editorType: 'number', group: 'Formato/Comportamento', defaultValue: 12, hint: 'Limite de cores recentes.' },\n { name: 'showNativeOption', label: 'Mostrar seletor nativo', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Adiciona input color nativo como opção.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência/Material' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// ColorPicker v2 property editor (pdx-color-picker)\nexport const colorPickerProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: 'Ex.: #rrggbb, rgba(255,0,0,0.5) ou hsl().' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'icon', label: 'Ícone', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'svgIcon', label: 'SVG icon', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone SVG registrado.' },\n { name: 'iconClass', label: 'Icon class (JSON/string)', editorType: 'textarea', group: 'Ícones', hint: 'string | string[] | Record<string, boolean>.' },\n\n // Dados/Opções\n {\n name: 'paletteSettings.preset',\n label: 'Palette: preset',\n editorType: 'select',\n group: 'Dados/Opções',\n defaultValue: 'material',\n options: [\n { value: 'material', text: 'Material' },\n { value: 'office', text: 'Office' },\n { value: 'basic', text: 'Básico' },\n ],\n },\n {\n name: 'paletteSettings.colors',\n label: 'Palette: cores (JSON ou linhas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: \"JSON array ou uma cor por linha (#hex, rgb(), rgba(), hsl()).\",\n },\n { name: 'paletteSettings.columns', label: 'Palette: colunas', editorType: 'number', group: 'Dados/Opções', defaultValue: 8, hint: 'Quantidade de colunas exibidas na paleta.' },\n\n // Formato/Comportamento\n {\n name: 'format',\n label: 'Formato de saída',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'rgba',\n options: [\n { value: 'hex', text: 'HEX' },\n { value: 'rgb', text: 'RGB' },\n { value: 'rgba', text: 'RGBA' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n { name: 'adaptiveMode', label: 'Adaptive (BottomSheet/Drawer)', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Abre em modo adaptive em telas menores.' },\n { name: 'adaptiveTitle', label: 'Adaptive title', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'adaptiveSubtitle', label: 'Adaptive subtitle', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'popupSettings.width', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Formato/Comportamento', defaultValue: '340', hint: 'Ex.: 340 ou 20rem.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Exibe botão para limpar a cor selecionada.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Preencha quando o botão não tiver label visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Aparência/Material\n {\n name: 'fillMode',\n label: 'Fill mode',\n editorType: 'select',\n group: 'Aparência/Material',\n defaultValue: 'solid',\n options: [\n { value: 'solid', text: 'Solid' },\n { value: 'flat', text: 'Flat' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'rounded',\n label: 'Rounded',\n editorType: 'select',\n group: 'Aparência/Material',\n defaultValue: 'medium',\n options: [\n { value: 'none', text: 'None' },\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n { value: 'full', text: 'Full' },\n ],\n },\n {\n name: 'size',\n label: 'Size',\n editorType: 'select',\n group: 'Aparência/Material',\n defaultValue: 'medium',\n options: [\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n ],\n },\n\n // Acessibilidade\n { name: 'tabindex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n\n // Atalhos/Preview\n {\n name: 'views',\n label: \"Views (JSON: ['gradient','palette'])\",\n editorType: 'textarea',\n group: 'Atalhos/Preview',\n hint: \"JSON array. Ex.: ['gradient','palette']\",\n defaultValue: \"['gradient','palette']\",\n },\n {\n name: 'activeView',\n label: 'View ativa',\n editorType: 'select',\n group: 'Atalhos/Preview',\n options: [\n { value: 'gradient', text: 'Gradient' },\n { value: 'palette', text: 'Palette' },\n ],\n },\n { name: 'preview', label: 'Mostrar preview (pane)', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe área de preview da cor atual.' },\n { name: 'showRecent', label: 'Mostrar recentes', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe cores usadas recentemente.' },\n { name: 'maxRecent', label: 'Qtd. de recentes', editorType: 'number', group: 'Atalhos/Preview', defaultValue: 12, hint: 'Quantidade máxima de cores recentes.' },\n { name: 'showNativeOption', label: 'Mostrar seletor nativo', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe input color nativo como opção.' },\n {\n name: 'actionsLayout',\n label: 'Ações (layout)',\n editorType: 'select',\n group: 'Atalhos/Preview',\n defaultValue: 'end',\n options: [\n { value: 'start', text: 'Início' },\n { value: 'end', text: 'Fim' },\n ],\n },\n\n // Gradient\n { name: 'gradientSettings.showOpacity', label: 'Gradiente: transparência (alpha)', editorType: 'checkbox', group: 'Atalhos/Preview', hint: 'Exibe controle de alpha no gradient.' },\n {\n name: 'gradientSettings.channel',\n label: 'Gradiente: canal',\n editorType: 'select',\n group: 'Atalhos/Preview',\n defaultValue: 'hsv',\n options: [\n { value: 'hsv', text: 'HSV' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const ratingProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'icon', label: 'Ícone preenchido', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:star). Use o seletor ao lado para buscar.' },\n { name: 'emptyIcon', label: 'Ícone vazio', editorType: 'text', group: 'Ícones', hint: 'Material Symbols (ex.: mi:star_border). Use o seletor ao lado para buscar.' },\n { name: 'svgIcon', label: 'SVG (preenchido)', editorType: 'text', group: 'Ícones' },\n { name: 'svgIconOutline', label: 'SVG (vazio)', editorType: 'text', group: 'Ícones' },\n\n // Dados/Opções\n // (sem opções)\n\n // Formato/Comportamento\n { name: 'max', label: 'Quantidade de itens', editorType: 'number', group: 'Formato/Comportamento', hint: 'Quantidade de ícones (ex.: 5).' },\n { name: 'allowHalf', label: 'Ativar allowHalf', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Habilita seleção 0.5 (ex.: 3.5 estrelas).' },\n { name: 'selection', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'continuous', text: 'Contínuo' },\n { value: 'single', text: 'Único' },\n ] },\n { name: 'size', label: 'Tamanho', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'small', text: 'Pequeno' },\n { value: 'medium', text: 'Médio' },\n { value: 'large', text: 'Grande' },\n ] },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige ao menos uma seleção (note: ignora 0 quando obrigatório).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'ratingColor', label: 'Cor do preenchimento', editorType: 'color', group: 'Aparência', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'outlineColor', label: 'Cor do contorno', editorType: 'color', group: 'Aparência', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Acessibilidade\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const chipInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n // (sem ícones)\n\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções', hint: 'Ex.: [{\"value\":1,\"text\":\"Um\"}] ou \"1|Um\" em cada linha.' },\n { name: 'resourcePath', label: 'Resource Path (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true, hint: 'Endpoint para buscar opções.' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true }' },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo exibido ao carregar da API.' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo salvo como value.' },\n\n // Formato/Comportamento\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de chips (0 = sem limite).' },\n { name: 'removable', label: 'Removível', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true, hint: 'Permite remover chips usando ícone/backspace.' },\n { name: 'addOnBlur', label: 'Adicionar ao sair', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true, hint: 'Cria chip ao sair do campo (quando houver texto).' },\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Habilita autocomplete para sugestões.' },\n { name: 'minLength', label: 'Mín. caracteres busca', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true, hint: 'Quantos caracteres antes de buscar sugestões.' },\n { name: 'validationDebounce', label: 'Debounce busca (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true, hint: 'Tempo em ms para disparar busca/validação.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"chips-a\" }' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar chips.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver chips.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const checkboxGroupProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'description', label: 'Descrição', editorType: 'textarea', group: 'Geral', hint: 'Texto de apoio adicional para checkbox booleano/consent.' },\n\n // Ícones\n // (sem ícones)\n\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções', hint: 'Ex.: [{\"value\":1,\"text\":\"Um\",\"description\":\"Ajuda\",\"disabled\":false}] ou \"1|Um\" em cada linha.' },\n { name: 'resourcePath', label: 'Recurso (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true, hint: 'Endpoint para carregar opções.' },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true } — filtro inicial remoto.' },\n { name: 'optionLabelKey', label: 'Chave rótulo', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo exibido ao carregar da API.' },\n { name: 'optionValueKey', label: 'Chave valor', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true, hint: 'Campo salvo como value.' },\n\n // Formato/Comportamento\n { name: 'selectionMode', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'boolean', text: 'Booleano simples' },\n { value: 'multiple', text: 'Múltipla seleção' },\n ], hint: 'Define a semântica do runtime. Sem valor, o legado infere pelo conjunto de opções.' },\n { name: 'variant', label: 'Variante', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'default', text: 'Default' },\n { value: 'consent', text: 'Consentimento' },\n { value: 'compact', text: 'Compacto' },\n { value: 'tiles', text: 'Tiles' },\n ] },\n { name: 'density', label: 'Densidade', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'comfortable', text: 'Confortável' },\n { value: 'spacious', text: 'Espaçosa' },\n ] },\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra campo de busca (em remoto, filtra na API).' },\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Inclui opção para marcar todos.' },\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento', hint: 'Limite de itens marcados (0 = sem limite).' },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'vertical', text: 'Vertical' },\n ] },\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'indeterminate', label: 'Indeterminado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra estado parcial (ex.: dependente de filhos).' },\n { name: 'links', label: 'Links ricos (JSON)', editorType: 'textarea', group: 'Formato/Comportamento', hint: 'Ex.: [{\"label\":\"Política\",\"href\":\"https://...\",\"target\":\"_blank\"}]. Usado em modo boolean/consent.' },\n { name: 'linkText', label: 'Texto do link', editorType: 'text', group: 'Formato/Comportamento', hint: 'Rótulo do link associado.' },\n { name: 'linkUrl', label: 'URL do link', editorType: 'text', group: 'Formato/Comportamento', hint: 'Ex.: https://dominio...' },\n { name: 'linkTarget', label: 'Alvo do link', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: '_self', text: 'Mesma janela' },\n { value: '_blank', text: 'Nova janela' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'requiredChecked', label: 'Exigir marcado', editorType: 'checkbox', group: 'Validação', hint: 'Para consentimentos e aceite obrigatório.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado aos checkboxes.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const toggleProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (boolean)', editorType: 'checkbox', group: 'Geral', hint: 'Estado inicial do toggle.' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Formato/Comportamento\n {\n name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ], hint: 'Posição do texto em relação ao switch.'\n },\n { name: 'inlineLabelVisible', label: 'Exibir label inline', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'No modo inline, mostra/oculta o texto ao lado do switch.' },\n { name: 'hideIcon', label: 'Ocultar ícone', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Remove o ícone de check/x dentro do switch.' },\n { name: 'disableRipple', label: 'Desabilitar ripple', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar o estado do toggle.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Use quando o botão não tiver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n\n // Validação\n { name: 'requiredTrue', label: 'Exigir verdadeiro', editorType: 'checkbox', group: 'Validação', hint: 'Valida se o toggle está marcado (ex.: termos de uso).' },\n { name: 'validators.requiredTrueMessage', label: 'Mensagem: exigir verdadeiro', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Cor do tema quando ativado.'\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const sliderProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n // (sem ícones)\n\n // Dados/Opções\n // (sem opções)\n\n // Formato/Comportamento\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento entre valores (ex.: 1, 0.5). Combine com min/max.' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe valor sobre o thumb ao arrastar.' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true, hint: 'Altera para eixo Y.' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true, hint: 'Inverte direção (direita→esquerda).' },\n { name: 'showTicks', label: 'Ticks', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: false, text: 'Sem ticks' },\n { value: true, text: 'Com ticks' },\n { value: 'auto', text: 'Auto' },\n ], hint: 'Marcas na trilha; auto calcula com base no step.' },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe ticks/labels fixos para valores discretos.' },\n\n // Validação\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado ao slider.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const rangeSliderProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:tune).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n\n // Dados/Opções\n // (sem opções)\n\n // Formato/Comportamento\n { name: 'mode', label: 'Modo', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'single', text: 'Único' },\n { value: 'range', text: 'Faixa' },\n ], hint: 'Escolha faixa para dois marcadores.' },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento entre valores (ex.: 1, 0.5). Combine com min/max.' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe o valor sobre o thumb ao arrastar.' },\n { name: 'showTicks', label: 'Ticks', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: false, text: 'Sem ticks' },\n { value: true, text: 'Com ticks' },\n { value: 'auto', text: 'Auto' },\n ], hint: 'Marcas na trilha; auto calcula com base no step.' },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra valor fixo por tick; use com showTicks.' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Inverte para eixo Y.' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Inverte a direção (direita→esquerda).' },\n { name: 'displayWith', label: 'DisplayWith (id função)', editorType: 'text', group: 'Formato/Comportamento', hint: 'Função para formatar valores (ex.: percentual).' },\n { name: 'showInputs', label: 'Mostrar inputs', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Exibe campos numéricos para digitar valores.' },\n {\n name: 'quickPresets',\n label: 'Presets rápidos (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON. Ex.: [{\\\"label\\\":\\\"Até 5k\\\",\\\"end\\\":5000},{\\\"label\\\":\\\"5k-10k\\\",\\\"start\\\":5000,\\\"end\\\":10000}]',\n },\n {\n name: 'quickPresetsAuto',\n label: 'Presets automáticos',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Gera presets automaticamente com base em min/max quando quickPresets não for informado.',\n },\n {\n name: 'quickPresetsLabels',\n label: 'Rótulos presets auto (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Objeto JSON opcional. Ex.: {\\\"uptoMid\\\":\\\"Até mediana\\\",\\\"fromMid\\\":\\\"Da mediana em diante\\\",\\\"full\\\":\\\"Faixa total\\\"}',\n },\n {\n name: 'inlineTexts',\n label: 'Textos inline (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Objeto JSON opcional. Ex.: {\\\"minLabel\\\":\\\"Mín.\\\",\\\"maxLabel\\\":\\\"Máx.\\\",\\\"valueLabel\\\":\\\"Valor\\\",\\\"quickPresetsLabel\\\":\\\"Faixas\\\"}',\n },\n\n // Validação\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor mínimo permitido.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor máximo permitido.' },\n { name: 'minDistance', label: 'Distância mínima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true, hint: 'Mínimo entre os dois thumbs no modo faixa.' },\n { name: 'maxDistance', label: 'Distância máxima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true, hint: 'Máximo entre os thumbs.' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'validators.rangeMessage', label: 'Mensagem: ordem do range', editorType: 'text', group: 'Validação' },\n { name: 'validators.distanceMessage', label: 'Mensagem: distância', editorType: 'text', group: 'Validação' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor/faixa.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219), red).' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Use quando o botão não tiver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n\n // Aparência\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ], hint: 'Tema aplicado ao slider.' },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'inlineAutoSize.panelMinWidth', label: 'Painel mínimo (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura mínima do painel inline em px.' },\n { name: 'inlineAutoSize.panelMaxWidth', label: 'Painel máximo (desktop)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura máxima do painel inline em px.' },\n { name: 'inlineAutoSize.panelMinWidthMobile', label: 'Painel mínimo (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelMobile', inline: true, hint: 'Largura mínima do painel inline em px no mobile.' },\n { name: 'inlineAutoSize.panelMaxWidthMobile', label: 'Painel máximo (mobile)', editorType: 'number', group: 'Aparência', row: 'appearance.inlineAutoSizePanelMobile', inline: true, hint: 'Largura máxima do painel inline em px no mobile.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const currencyInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral', hint: 'Rótulo visível do campo. Ex.: \"Preço\".' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', group: 'Geral', hint: 'Valor inicial ao abrir o formulário. Ex.: 199.9.' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral', hint: 'Texto quando estiver vazio. Ex.: \"Digite o valor\".' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Ajuda abaixo do campo. Ex.: \"Informe o total\".' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral', hint: 'Texto antes do valor. Ex.: \"R$\".' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral', hint: 'Texto depois do valor. Ex.: \"por mês\".' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Ícone antes do input. Ex.: \"mi:payments\".' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Cor do ícone. Ex.: primary ou #496ddb.' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Ícone depois do input. Ex.: \"mi:info\".' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Cor do ícone. Ex.: accent ou rgb(73,109,219).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n {\n name: 'currency',\n label: 'Moeda',\n editorType: 'select',\n group: 'Formato/Comportamento',\n hint: 'Ao escolher a moeda, sugerimos locale/casas/posição. Você pode ajustar manualmente depois.',\n defaultValue: 'BRL',\n options: [\n { value: 'BRL', text: 'BRL — Real brasileiro' },\n { value: 'USD', text: 'USD — Dólar americano' },\n { value: 'EUR', text: 'EUR — Euro' },\n { value: 'GBP', text: 'GBP — Libra esterlina' },\n { value: 'ARS', text: 'ARS — Peso argentino' },\n { value: 'CLP', text: 'CLP — Peso chileno' },\n { value: 'COP', text: 'COP — Peso colombiano' },\n { value: 'MXN', text: 'MXN — Peso mexicano' },\n { value: 'PEN', text: 'PEN — Sol peruano' },\n { value: 'UYU', text: 'UYU — Peso uruguaio' },\n { value: 'PYG', text: 'PYG — Guarani paraguaio' },\n { value: 'BOB', text: 'BOB — Boliviano' },\n { value: 'CRC', text: 'CRC — Colón costarriquenho' },\n { value: 'DOP', text: 'DOP — Peso dominicano' },\n { value: 'GTQ', text: 'GTQ — Quetzal guatemalteco' },\n { value: 'HNL', text: 'HNL — Lempira hondurenha' },\n { value: 'NIO', text: 'NIO — Córdoba nicaraguense' },\n { value: 'PAB', text: 'PAB — Balboa panamenho' },\n { value: 'VES', text: 'VES — Bolívar venezuelano' },\n { value: 'CAD', text: 'CAD — Dólar canadense' },\n { value: 'AUD', text: 'AUD — Dólar australiano' },\n { value: 'NZD', text: 'NZD — Dólar neozelandês' },\n { value: 'CHF', text: 'CHF — Franco suíço' },\n { value: 'JPY', text: 'JPY — Iene japonês' },\n { value: 'CNY', text: 'CNY — Yuan chinês' },\n { value: 'HKD', text: 'HKD — Dólar de Hong Kong' },\n { value: 'SGD', text: 'SGD — Dólar de Singapura' },\n { value: 'INR', text: 'INR — Rupia indiana' },\n { value: 'ZAR', text: 'ZAR — Rand sul-africano' }\n ],\n },\n { name: 'currencyPosition', label: 'Posição moeda', editorType: 'select', group: 'Formato/Comportamento', hint: 'Posição do símbolo. Ex.: \"R$ 10\" ou \"10 €\".', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', hint: 'Quantidade de casas. Ex.: 2 para centavos.' },\n { name: 'locale', label: 'Locale', editorType: 'text', group: 'Formato/Comportamento', hint: 'Define separadores e moeda. Ex.: pt-BR.' },\n { name: 'allowNegative', label: 'Permitir negativos', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Permite valores abaixo de zero. Ex.: -10.' },\n { name: 'thousandsSeparator', label: 'Separador de milhar', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \".\" em 1.000.' },\n { name: 'decimalSeparator', label: 'Separador decimal', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \",\" em 10,5.' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra o valor sem edição. Ex.: visualização.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Desativa interação e foco. Ex.: campo bloqueado.' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Foca ao abrir o formulário. Ex.: fluxo de cadastro.' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige preenchimento. Ex.: não pode vazio.' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor mínimo aceito. Ex.: 0 ou 10.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor máximo aceito. Ex.: 1000.' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem quando vazio. Ex.: \"Campo obrigatório\".' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação', hint: 'Mensagem abaixo do mínimo. Ex.: \"Valor mínimo 10\".' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação', hint: 'Mensagem acima do máximo. Ex.: \"Valor máximo 1000\".' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', hint: 'Estilo do campo. Ex.: outline para borda.', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', hint: 'Cor do tema. Ex.: primary, accent, warn.', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto lido por leitores. Ex.: \"Valor em reais\".' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro. Ex.: \"hint-id error-id\".' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID do elemento que rotula. Ex.: \"label-id\".' },\n // Sem Clear: componente não implementa botão de limpar\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão de limpar. Ex.: ícone no final.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: 'Ícone do botão. Ex.: \"mi:clear\".' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Cor do ícone. Ex.: warn ou #ff5252.' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto ao passar o mouse. Ex.: \"Limpar\".' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição acessível. Ex.: \"Limpar valor\".' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Aparece só com valor. Ex.: evita botão vazio.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const priceRangeProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral', hint: 'Rótulo do grupo. Ex.: \"Faixa de preço\".' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Ajuda abaixo do campo. Ex.: \"Informe valores mínimos e máximos\".' },\n { name: 'tooltip', label: 'Tooltip', editorType: 'text', group: 'Geral', hint: 'Tooltip do grupo. Ex.: \"Faixa permitida\".' },\n { name: 'inlinePanelTitle', label: 'Título do painel inline', editorType: 'text', group: 'Geral', hint: 'Título exibido no popover do range inline.' },\n { name: 'startLabel', label: 'Label (início)', editorType: 'text', group: 'Geral', hint: 'Rótulo do subcampo inicial. Ex.: \"De\".' },\n { name: 'endLabel', label: 'Label (fim)', editorType: 'text', group: 'Geral', hint: 'Rótulo do subcampo final. Ex.: \"Até\".' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:attach_money).' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: 'Nome do ícone Material Symbols (ex.: mi:info).' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (ex.: #496ddb, rgb(73,109,219)).' },\n { name: 'startPlaceholder', label: 'Placeholder (início)', editorType: 'text', group: 'Geral', hint: 'Texto vazio no início. Ex.: \"Mínimo\".' },\n { name: 'endPlaceholder', label: 'Placeholder (fim)', editorType: 'text', group: 'Geral', hint: 'Texto vazio no fim. Ex.: \"Máximo\".' },\n { name: 'defaultValue.minPrice', label: 'Valor padrão (início)', editorType: 'number', group: 'Geral', hint: 'Valor inicial do campo \"início\". Ex.: 10.' },\n { name: 'defaultValue.maxPrice', label: 'Valor padrão (fim)', editorType: 'number', group: 'Geral', hint: 'Valor inicial do campo \"fim\". Ex.: 100.' },\n { name: 'hideSubLabels', label: 'Ocultar labels dos subinputs', editorType: 'checkbox', group: 'Geral', hint: 'Esconde os rótulos \"início\" e \"fim\".' },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Geral', hint: 'Define a disposição dos dois campos.', options: [\n { value: 'row', text: 'Lado a lado' },\n { value: 'column', text: 'Em linhas' },\n ] },\n { name: 'gap', label: 'Espaçamento', editorType: 'text', group: 'Geral', hint: 'Distância entre inputs. Ex.: 8, 12px, 0.5rem.' },\n { name: 'clearButtonPlacement', label: 'Clear: posição', editorType: 'select', group: 'Ações', hint: 'Onde o botão de limpar aparece.', options: [\n { value: 'group', text: 'No grupo' },\n { value: 'subinputs', text: 'Em cada input' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação', hint: 'Exige preenchimento dos dois valores.' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Mostra o valor sem edição.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Desativa interação e foco.' },\n { name: 'hidden', label: 'Ocultar campo', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Esconde o componente na tela.' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Formato/Comportamento', row: 'range', inline: true, hint: 'Limite mínimo global. Ex.: 0.' },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Formato/Comportamento', row: 'range', inline: true, hint: 'Limite máximo global. Ex.: 1000.' },\n { name: 'startMin', label: 'Mínimo (início)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeStart', inline: true, hint: 'Min do campo início. Ex.: 0.' },\n { name: 'startMax', label: 'Máximo (início)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeStart', inline: true, hint: 'Max do campo início. Ex.: 500.' },\n { name: 'startMinMessage', label: 'Mensagem min (início)', editorType: 'text', group: 'Validação', hint: 'Mensagem abaixo do mínimo. Ex.: \"Mínimo 0\".' },\n { name: 'startMaxMessage', label: 'Mensagem max (início)', editorType: 'text', group: 'Validação', hint: 'Mensagem acima do máximo. Ex.: \"Máximo 500\".' },\n { name: 'endMin', label: 'Mínimo (fim)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeEnd', inline: true, hint: 'Min do campo fim. Ex.: 10.' },\n { name: 'endMax', label: 'Máximo (fim)', editorType: 'number', group: 'Formato/Comportamento', row: 'rangeEnd', inline: true, hint: 'Max do campo fim. Ex.: 1000.' },\n { name: 'endMinMessage', label: 'Mensagem min (fim)', editorType: 'text', group: 'Validação', hint: 'Mensagem abaixo do mínimo. Ex.: \"Mínimo 10\".' },\n { name: 'endMaxMessage', label: 'Mensagem max (fim)', editorType: 'text', group: 'Validação', hint: 'Mensagem acima do máximo. Ex.: \"Máximo 1000\".' },\n { name: 'endMinOffset', label: 'Offset mínimo (fim >= início +)', editorType: 'number', group: 'Validação', hint: 'Diferença mínima entre fim e início. Ex.: 5.' },\n { name: 'endMinOffsetMessage', label: 'Mensagem offset (fim)', editorType: 'text', group: 'Validação', hint: 'Mensagem quando o offset mínimo não é atendido.' },\n { name: 'startMaxOffset', label: 'Offset máximo (início <= fim -)', editorType: 'number', group: 'Validação', hint: 'Diferença máxima permitida. Ex.: 200.' },\n { name: 'startMaxOffsetMessage', label: 'Mensagem offset (início)', editorType: 'text', group: 'Validação', hint: 'Mensagem quando o offset máximo não é atendido.' },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Incremento entre valores. Ex.: 5.' },\n {\n name: 'showTicks',\n label: 'Exibir marcações (ticks)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: true, text: 'Sempre' },\n { value: false, text: 'Nunca' },\n ],\n hint: 'Controla a exibição das marcações no slider inline.',\n },\n {\n name: 'currency',\n label: 'Moeda',\n editorType: 'select',\n group: 'Formato/Comportamento',\n hint: 'Aplica aos dois subcampos e sugere locale/casas/posição.',\n defaultValue: 'BRL',\n options: [\n { value: 'BRL', text: 'BRL — Real brasileiro' },\n { value: 'USD', text: 'USD — Dólar americano' },\n { value: 'EUR', text: 'EUR — Euro' },\n { value: 'GBP', text: 'GBP — Libra esterlina' },\n { value: 'ARS', text: 'ARS — Peso argentino' },\n { value: 'CLP', text: 'CLP — Peso chileno' },\n { value: 'COP', text: 'COP — Peso colombiano' },\n { value: 'MXN', text: 'MXN — Peso mexicano' },\n { value: 'PEN', text: 'PEN — Sol peruano' },\n { value: 'UYU', text: 'UYU — Peso uruguaio' },\n { value: 'PYG', text: 'PYG — Guarani paraguaio' },\n { value: 'BOB', text: 'BOB — Boliviano' },\n { value: 'CRC', text: 'CRC — Colón costarriquenho' },\n { value: 'DOP', text: 'DOP — Peso dominicano' },\n { value: 'GTQ', text: 'GTQ — Quetzal guatemalteco' },\n { value: 'HNL', text: 'HNL — Lempira hondurenha' },\n { value: 'NIO', text: 'NIO — Córdoba nicaraguense' },\n { value: 'PAB', text: 'PAB — Balboa panamenho' },\n { value: 'VES', text: 'VES — Bolívar venezuelano' },\n { value: 'CAD', text: 'CAD — Dólar canadense' },\n { value: 'AUD', text: 'AUD — Dólar australiano' },\n { value: 'NZD', text: 'NZD — Dólar neozelandês' },\n { value: 'CHF', text: 'CHF — Franco suíço' },\n { value: 'JPY', text: 'JPY — Iene japonês' },\n { value: 'CNY', text: 'CNY — Yuan chinês' },\n { value: 'HKD', text: 'HKD — Dólar de Hong Kong' },\n { value: 'SGD', text: 'SGD — Dólar de Singapura' },\n { value: 'INR', text: 'INR — Rupia indiana' },\n { value: 'ZAR', text: 'ZAR — Rand sul-africano' }\n ],\n },\n { name: 'currencyPosition', label: 'Posição moeda', editorType: 'select', group: 'Formato/Comportamento', hint: 'Posição do símbolo. Ex.: \"R$ 10\" ou \"10 €\".', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', hint: 'Quantidade de casas. Ex.: 2 para centavos.' },\n { name: 'locale', label: 'Locale', editorType: 'text', group: 'Formato/Comportamento', hint: 'Define separadores. Ex.: pt-BR.' },\n { name: 'thousandsSeparator', label: 'Separador de milhar', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \".\" em 1.000.' },\n { name: 'decimalSeparator', label: 'Separador decimal', editorType: 'text', group: 'Formato/Comportamento', hint: 'Força o separador. Ex.: \",\" em 10,5.' },\n { name: 'allowNegative', label: 'Permitir negativo', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Permite valores abaixo de zero. Ex.: -10.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão de limpar. Ex.: ícone no final.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: 'Ícone do botão. Ex.: \"mi:clear\".' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'Cor do ícone. Ex.: warn ou #ff5252.' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto ao passar o mouse. Ex.: \"Limpar\".' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição acessível. Ex.: \"Limpar valores\".' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Aparece só com valor. Ex.: evita botão vazio.' },\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', hint: 'Estilo do campo. Ex.: outline para borda.', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', hint: 'Cor do tema. Ex.: primary, accent, warn.', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'inlineAutoSize.minWidth', label: 'Inline: largura mínima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura mínima em px para desktop.' },\n { name: 'inlineAutoSize.maxWidth', label: 'Inline: largura máxima (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeDesktop', inline: true, hint: 'Largura máxima em px para desktop.' },\n { name: 'inlineAutoSize.minWidthMobile', label: 'Inline: largura mínima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura mínima em px para mobile.' },\n { name: 'inlineAutoSize.maxWidthMobile', label: 'Inline: largura máxima (mobile)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizeMobile', inline: true, hint: 'Largura máxima em px para mobile.' },\n { name: 'inlineAutoSize.panelMinWidth', label: 'Painel mínimo (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura mínima do painel inline em px.' },\n { name: 'inlineAutoSize.panelMaxWidth', label: 'Painel máximo (desktop)', editorType: 'number', group: 'Aparência/Material', row: 'appearance.inlineAutoSizePanelDesktop', inline: true, hint: 'Largura máxima do painel inline em px.' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto lido por leitores. Ex.: \"Faixa de preço\".' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro. Ex.: \"hint-id error-id\".' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID do elemento que rotula. Ex.: \"label-id\".' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const cpfCnpjProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:badge). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Dados/Opções\n // (sem opções específicas)\n\n // Formato/Comportamento\n { name: 'documentType', label: 'Tipo de documento', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'cpf', text: 'CPF' },\n { value: 'cnpj', text: 'CNPJ' },\n ] },\n { name: 'version', label: 'Versão (parsing)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'legacy', text: 'Legacy (numérico)' },\n { value: 'alpha', text: 'Alpha (alfa-numérico para CNPJ)' },\n ] },\n { name: 'allowFormattedInput', label: 'Permitir entrada formatada', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Aceita CPF/CNPJ com pontuação.' },\n { name: 'unmaskOnSubmit', label: 'Enviar sem máscara (modelo)', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Remove pontuação ao enviar.' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: formato inválido', editorType: 'text', group: 'Validação' },\n\n // Ações\n // (sem ações adicionais)\n\n // Aparência/Material\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Aparência/Material', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Aparência/Material' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'IDs de ajuda/erro.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento que atua como label.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const fileUploadProperties: EditorProperty[] = [\n // Dados/Opções\n { name: 'accept', label: 'Tipos aceitos (mimes/ext.)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'multiple', label: 'Múltiplos arquivos', editorType: 'checkbox', group: 'Dados/Opções' },\n { name: 'maxSizeMB', label: 'Tamanho máx (MB)', editorType: 'number', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Recurso', editorType: 'text', group: 'Dados/Opções' },\n { name: 'uploadUrl', label: 'Upload URL', editorType: 'text', group: 'Dados/Opções' },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções' },\n\n // Geral/Validação\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const yearInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY)', editorType: 'number', group: 'Geral', hint: 'Ano no formato YYYY (ex.: 2025).' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:calendar_month). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Ícones', hint: 'Tema (primary/accent/warn) ou cor CSS (#496ddb, rgb(73,109,219), red).' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento', hint: 'Passo em anos (ex.: 1 para consecutivos, 5 para intervalos de 5 em 5).' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minYear', label: 'Ano mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite inferior (YYYY).' },\n { name: 'maxYear', label: 'Ano máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Limite superior (YYYY).' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação', hint: 'Mensagem de erro customizada.' },\n\n // Aparência\n {\n name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ]\n },\n {\n name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ]\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Texto alternativo para leitores de tela.' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento descritivo.' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade', hint: 'ID de elemento rotulador.' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Obrigatório quando não houver texto visível.' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Exibe o botão apenas quando houver valor.' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const avatarProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral', hint: 'Texto de ajuda exibido abaixo do campo.' },\n\n // Ícones\n { name: 'extra.icon', label: 'Ícone (ligature ou mi:*)', editorType: 'text', group: 'Ícones', hint: \"Material Symbols (ex.: mi:person). Use o seletor ao lado para buscar.\" },\n { name: 'extra.defaultIcon', label: 'Ícone padrão (fallback)', editorType: 'text', group: 'Ícones', hint: 'Usado quando imagem/iniciais não estiverem presentes.' },\n\n // Dados/Opções (conteúdo)\n { name: 'extra.imageSrc', label: 'Imagem (URL)', editorType: 'text', group: 'Dados/Opções', row: 'conteudo.imagem', hint: 'URL completa da imagem (http/https). Suporta metadata legado em imageSrc.' },\n { name: 'extra.imageAlt', label: 'Imagem: alt', editorType: 'text', group: 'Dados/Opções', row: 'conteudo.imagem', hint: 'Texto alternativo da imagem.' },\n { name: 'extra.name', label: 'Nome (gera iniciais)', editorType: 'text', group: 'Dados/Opções', hint: 'Usado para gerar iniciais quando o campo Iniciais está vazio.' },\n { name: 'extra.initials', label: 'Iniciais', editorType: 'text', group: 'Dados/Opções', hint: 'Ex.: MB. Exibidas quando não houver imagem.' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Bloqueia interação/edição.' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Desativa o campo e remove foco.' },\n { name: 'hidden', label: 'Oculto', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Não renderiza o avatar.' },\n\n // Validação\n // (sem campos)\n\n // Ações\n // (sem campos)\n\n // Aparência (extras)\n { name: 'extra.class', label: 'CSS classes', editorType: 'text', group: 'Aparência', hint: 'Classes CSS adicionais (separadas por espaço).' },\n { name: 'extra.style', label: 'Estilo (JSON)', editorType: 'textarea', group: 'Aparência', hint: 'Objeto JSON de estilos (ex.: { \"border\": \"1px solid #ccc\" }).' },\n {\n name: 'extra.themeColor', label: 'Tema', editorType: 'select', group: 'Aparência', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'secondary', text: 'Secundária' },\n { value: 'tertiary', text: 'Terciária' },\n { value: 'base', text: 'Base' },\n { value: 'info', text: 'Info' },\n { value: 'success', text: 'Sucesso' },\n { value: 'warning', text: 'Atenção' },\n { value: 'error', text: 'Erro' },\n { value: 'dark', text: 'Escuro' },\n { value: 'light', text: 'Claro' },\n { value: 'inverse', text: 'Inverso' },\n { value: 'none', text: 'Herdar (nenhum)' },\n ]\n },\n {\n name: 'extra.size', label: 'Tamanho', editorType: 'select', group: 'Aparência', row: 'aparencia.size', inline: true, options: [\n { value: 'xsmall', text: 'Extra pequeno' },\n { value: 'small', text: 'Pequeno' },\n { value: 'medium', text: 'Médio' },\n { value: 'large', text: 'Grande' },\n { value: 'xlarge', text: 'Extra grande' },\n { value: 'xxlarge', text: 'Muito grande' },\n { value: 'none', text: 'Nenhum (auto)' },\n ]\n },\n {\n name: 'extra.rounded', label: 'Arredondamento', editorType: 'select', group: 'Aparência', options: [\n { value: 'full', text: 'Total' },\n { value: 'large', text: 'Grande' },\n { value: 'medium', text: 'Médio' },\n { value: 'small', text: 'Pequeno' },\n { value: 'none', text: 'Sem raio' },\n ]\n },\n {\n name: 'extra.fillMode', label: 'Preenchimento', editorType: 'select', group: 'Aparência', options: [\n { value: 'solid', text: 'Sólido' },\n { value: 'outline', text: 'Contorno' },\n { value: 'none', text: 'Nenhum (herdar)' },\n ]\n },\n { name: 'extra.sizePx', label: 'Tamanho (px)', editorType: 'number', group: 'Aparência', hint: 'Sobrescreve o tamanho por token (ex.: 48).', row: 'aparencia.size', inline: true },\n { name: 'extra.sizeCss', label: 'Tamanho (CSS)', editorType: 'text', group: 'Aparência', hint: 'Aceita %, px, rem, em, vw, vh (ex.: 100% ou 3rem). Prioriza sobre sizePx.', row: 'aparencia.size', inline: true },\n { name: 'extra.border', label: 'Borda', editorType: 'checkbox', group: 'Aparência', row: 'aparencia.inline1', inline: true },\n\n // Acessibilidade / UX\n { name: 'extra.tooltip', label: 'Tooltip', editorType: 'text', group: 'Acessibilidade', hint: 'Texto exibido ao passar o mouse.' },\n { name: 'extra.ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade', hint: 'Use quando não houver label visível.' },\n];\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\n/** Garante que minLength <= maxLength quando ambos definidos. */\nexport function minLenLeMaxLen(group: AbstractControl): ValidationErrors | null {\n const v = group.value || {};\n const min = v?.minLength;\n const max = v?.maxLength;\n if (min != null && max != null && Number(min) > Number(max)) {\n return { minLengthGtMaxLength: true };\n }\n return null;\n}\n","import type { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\ninterface GradientCompareTarget {\n field: string;\n label: string;\n}\n\ninterface GradientColorStopValidatorOptions {\n label: string;\n compareWith?: GradientCompareTarget[];\n minContrastRatio?: number;\n}\n\nconst HEX_PATTERN = /^#([\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$/i;\n\nfunction clampChannel(value: number): number {\n return Math.max(0, Math.min(255, Math.round(value)));\n}\n\nfunction parseHexColor(raw: string): RgbColor | null {\n const normalized = raw.trim();\n if (!HEX_PATTERN.test(normalized)) {\n return null;\n }\n\n const hex = normalized.slice(1);\n if (hex.length === 3 || hex.length === 4) {\n return {\n r: Number.parseInt(hex[0] + hex[0], 16),\n g: Number.parseInt(hex[1] + hex[1], 16),\n b: Number.parseInt(hex[2] + hex[2], 16),\n };\n }\n\n return {\n r: Number.parseInt(hex.slice(0, 2), 16),\n g: Number.parseInt(hex.slice(2, 4), 16),\n b: Number.parseInt(hex.slice(4, 6), 16),\n };\n}\n\nfunction parseRgbChannel(token: string): number | null {\n const value = token.trim();\n if (!value.length) return null;\n if (value.endsWith('%')) {\n const pct = Number.parseFloat(value.slice(0, -1));\n if (!Number.isFinite(pct)) return null;\n return clampChannel((pct / 100) * 255);\n }\n const numeric = Number.parseFloat(value);\n if (!Number.isFinite(numeric)) return null;\n return clampChannel(numeric);\n}\n\nfunction parseRgbColor(raw: string): RgbColor | null {\n const normalized = raw.trim().toLowerCase();\n if (!normalized.startsWith('rgb')) {\n return null;\n }\n const parts = normalized.match(/[\\d.]+%?/g) ?? [];\n if (parts.length < 3) {\n return null;\n }\n\n const [rRaw, gRaw, bRaw] = parts;\n if (rRaw === undefined || gRaw === undefined || bRaw === undefined) {\n return null;\n }\n\n const r = parseRgbChannel(rRaw);\n const g = parseRgbChannel(gRaw);\n const b = parseRgbChannel(bRaw);\n if (r === null || g === null || b === null) {\n return null;\n }\n return { r, g, b };\n}\n\nfunction parseComputedRgbColor(raw: string): RgbColor | null {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const probe = document.createElement('span');\n probe.style.color = '';\n probe.style.color = raw;\n if (!probe.style.color) {\n return null;\n }\n\n const host = document.body ?? document.documentElement;\n let computed = probe.style.color;\n if (host) {\n host.appendChild(probe);\n try {\n computed = getComputedStyle(probe).color || computed;\n } finally {\n probe.remove();\n }\n }\n\n return parseRgbColor(computed) ?? parseHexColor(computed);\n}\n\nexport function normalizeCssColorToRgb(value: unknown): RgbColor | null {\n const raw = String(value ?? '').trim();\n if (!raw.length) {\n return null;\n }\n return parseHexColor(raw) ?? parseRgbColor(raw) ?? parseComputedRgbColor(raw);\n}\n\nfunction relativeLuminance({ r, g, b }: RgbColor): number {\n const normalize = (channel: number) => {\n const value = channel / 255;\n return value <= 0.03928 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4;\n };\n return 0.2126 * normalize(r) + 0.7152 * normalize(g) + 0.0722 * normalize(b);\n}\n\nfunction contrastRatio(a: RgbColor, b: RgbColor): number {\n const lumA = relativeLuminance(a);\n const lumB = relativeLuminance(b);\n const lighter = Math.max(lumA, lumB);\n const darker = Math.min(lumA, lumB);\n return (lighter + 0.05) / (darker + 0.05);\n}\n\nexport function gradientColorStopValidator(\n options: GradientColorStopValidatorOptions,\n): ValidatorFn {\n const label = String(options.label || 'Cor').trim() || 'Cor';\n const compareWith = options.compareWith ?? [];\n const minContrastRatio = Math.max(1, Number(options.minContrastRatio ?? 1.4));\n\n return (control: AbstractControl): ValidationErrors | null => {\n const rawValue = String(control.value ?? '').trim();\n if (!rawValue.length) {\n return null;\n }\n\n const currentColor = normalizeCssColorToRgb(rawValue);\n if (!currentColor) {\n return {\n invalidColor: {\n message: `${label}: informe uma cor CSS valida (ex.: #22c55e).`,\n },\n };\n }\n\n const parent = control.parent;\n if (!parent || !compareWith.length) {\n return null;\n }\n\n for (const target of compareWith) {\n const siblingRaw = String(parent.get(target.field)?.value ?? '').trim();\n if (!siblingRaw.length) {\n continue;\n }\n\n const siblingColor = normalizeCssColorToRgb(siblingRaw);\n if (!siblingColor) {\n continue;\n }\n\n const ratio = contrastRatio(currentColor, siblingColor);\n if (ratio < minContrastRatio) {\n return {\n gradientContrast: {\n message:\n `${label}: contraste baixo com ${target.label} ` +\n `(${ratio.toFixed(2)}:1). Use ao menos ${minContrastRatio.toFixed(1)}:1.`,\n ratio,\n minContrastRatio,\n comparedField: target.field,\n },\n };\n }\n }\n\n return null;\n };\n}\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineDistanceRadiusProperties: EditorProperty[] = [\n ...rangeSliderProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'distanceIcon',\n label: 'Icone do chip (legado)',\n editorType: 'text',\n group: 'Compatibilidade',\n hint: 'Alias legado de prefixIcon para o icone do chip (ex.: place, my_location).',\n },\n {\n name: 'distanceSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Subtitulo exibido abaixo do titulo no popover.',\n },\n {\n name: 'distanceUnit',\n label: 'Unidade inicial',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'km', text: 'KM' },\n { value: 'mi', text: 'MI' },\n ],\n hint: 'Unidade visual inicial do controle.',\n },\n {\n name: 'distanceBaseUnit',\n label: 'Unidade base',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'km', text: 'KM' },\n { value: 'mi', text: 'MI' },\n ],\n hint: 'Unidade canonica persistida no valor do campo.',\n },\n {\n name: 'distanceAllowUnitToggle',\n label: 'Permitir alternar KM/MI',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Quando ativo, mostra os botoes para alternar unidade no popover.',\n },\n {\n name: 'distanceUnits',\n label: 'Unidades disponiveis (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON opcional. Ex.: [\"km\",\"mi\"].',\n },\n {\n name: 'distanceUnitLabels.km',\n label: 'Label unidade KM',\n editorType: 'text',\n group: 'Formato/Comportamento',\n row: 'distance-unit-labels',\n inline: true,\n },\n {\n name: 'distanceUnitLabels.mi',\n label: 'Label unidade MI',\n editorType: 'text',\n group: 'Formato/Comportamento',\n row: 'distance-unit-labels',\n inline: true,\n },\n {\n name: 'distanceDisplayDecimals',\n label: 'Casas decimais (display)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Define casas decimais para exibicao visual (valor vazio usa automatico).',\n },\n {\n name: 'distancePresets',\n label: 'Presets de distancia (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON. Ex.: [5,10,25,50], [{\"label\":\"25 km\",\"value\":25}] ou [{\"label\":\"10-30 km\",\"start\":10,\"end\":30}] para modo faixa.',\n },\n {\n name: 'distanceRadialRings',\n label: 'Qtd. aneis radiais',\n editorType: 'number',\n group: 'Aparencia',\n hint: 'Quantidade de aneis no radar visual (3 a 8).',\n },\n {\n name: 'distanceAccentColor',\n label: 'Cor principal',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor principal aplicada ao valor central e estados ativos.',\n },\n {\n name: 'distanceRingColor',\n label: 'Cor dos aneis',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor base dos aneis circulares do radar.',\n },\n {\n name: 'distanceTrackColor',\n label: 'Cor trilha slider',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor da trilha inativa do slider.',\n },\n {\n name: 'distanceGlowColor',\n label: 'Cor brilho radial',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor do glow ao redor do centro radial.',\n },\n {\n name: 'distanceGradientLowColor',\n label: 'Gradiente baixo',\n editorType: 'color',\n group: 'Aparencia',\n row: 'distance-gradient-colors',\n inline: true,\n hint: 'Cor para valores baixos (fallback padrao: verde).',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente baixo',\n compareWith: [{ field: 'distanceGradientMidColor', label: 'Gradiente medio' }],\n }),\n ],\n },\n {\n name: 'distanceGradientMidColor',\n label: 'Gradiente medio',\n editorType: 'color',\n group: 'Aparencia',\n row: 'distance-gradient-colors',\n inline: true,\n hint: 'Cor para valores medios (fallback padrao: amarelo/ambar).',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente medio',\n compareWith: [\n { field: 'distanceGradientLowColor', label: 'Gradiente baixo' },\n { field: 'distanceGradientHighColor', label: 'Gradiente alto' },\n ],\n }),\n ],\n },\n {\n name: 'distanceGradientHighColor',\n label: 'Gradiente alto',\n editorType: 'color',\n group: 'Aparencia',\n row: 'distance-gradient-colors',\n inline: true,\n hint: 'Cor para valores altos (fallback padrao: vermelho).',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente alto',\n compareWith: [{ field: 'distanceGradientMidColor', label: 'Gradiente medio' }],\n }),\n ],\n },\n {\n name: 'distanceRangeBandOpacity',\n label: 'Opacidade da faixa (0-1)',\n editorType: 'number',\n group: 'Aparencia',\n hint: 'Opcional. Sobrescreve a opacidade automatica da faixa radial no modo range.',\n },\n {\n name: 'materialDesign.density',\n label: 'Densidade',\n editorType: 'select',\n group: 'Aparencia',\n options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'default', text: 'Padrao' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta dimensoes base do chip e painel inline.',\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineRelativePeriodProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'relativePeriodSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'relativePeriodOptions',\n label: 'Presets de periodo (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON. Ex.: [{\"label\":\"Hoje\",\"value\":\"today\",\"icon\":\"calendar_today\"}]',\n },\n {\n name: 'relativePeriodPresets',\n label: 'Presets (alias legado JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n hint: 'Alias legado de relativePeriodOptions.',\n },\n {\n name: 'relativePeriodShowProgress',\n label: 'Mostrar barra de progresso',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'relativePeriodProgressGradientLowColor',\n label: 'Gradiente progresso (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial da barra de progresso relativa.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente progresso (inicio)',\n compareWith: [{ field: 'relativePeriodProgressGradientMidColor', label: 'Gradiente progresso (meio)' }],\n }),\n ],\n },\n {\n name: 'relativePeriodProgressGradientMidColor',\n label: 'Gradiente progresso (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria da barra de progresso relativa.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente progresso (meio)',\n compareWith: [\n { field: 'relativePeriodProgressGradientLowColor', label: 'Gradiente progresso (inicio)' },\n { field: 'relativePeriodProgressGradientHighColor', label: 'Gradiente progresso (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'relativePeriodProgressGradientHighColor',\n label: 'Gradiente progresso (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final da barra de progresso relativa.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente progresso (fim)',\n compareWith: [{ field: 'relativePeriodProgressGradientMidColor', label: 'Gradiente progresso (meio)' }],\n }),\n ],\n },\n {\n name: 'relativePeriodColumns',\n label: 'Colunas do grid',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Quantidade de colunas para os cards de presets (1 a 4).',\n },\n {\n name: 'relativePeriodCloseOnSelect',\n label: 'Fechar ao selecionar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Em modo single, fecha o popover apos selecionar um preset.',\n },\n {\n name: 'relativePeriodMultiple',\n label: 'Permitir multipla selecao',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Quando ativo, o valor do campo passa a ser uma lista de presets.',\n },\n {\n name: 'relativePeriodSearchable',\n label: 'Habilitar busca',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'relativePeriodIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone Material Symbols usado no chip/trigger.',\n },\n {\n name: 'relativePeriodIconKey',\n label: 'Chave icon da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para resolver icon por opcao.',\n },\n {\n name: 'relativePeriodSubtitleKey',\n label: 'Chave subtitle da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para subtitulo por opcao.',\n },\n {\n name: 'relativePeriodOptionsAriaLabel',\n label: 'ARIA grupo de opcoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'relativePeriodProgressEmptyLabel',\n label: 'Texto progresso sem selecao',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'relativePeriodEmptyStateText',\n label: 'Texto estado vazio',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'relativePeriodTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional de textos/aria. Ex.: {\"panelSubtitle\":\"Periodo rapido\"}',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineSentimentProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'sentimentSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'sentimentOptions',\n label: 'Opcoes de sentimento (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON. Ex.: [{\"label\":\"Bom\",\"value\":\"good\",\"emoji\":\"🙂\",\"color\":\"#34d399\"}]',\n },\n {\n name: 'sentimentPalette',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n hint: 'Cores fallback usadas quando a opcao nao informar color.',\n },\n {\n name: 'sentimentGradientLowColor',\n label: 'Gradiente sentimento (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial do gradiente fallback de sentimento.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente sentimento (inicio)',\n compareWith: [{ field: 'sentimentGradientMidColor', label: 'Gradiente sentimento (meio)' }],\n }),\n ],\n },\n {\n name: 'sentimentGradientMidColor',\n label: 'Gradiente sentimento (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria do gradiente fallback de sentimento.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente sentimento (meio)',\n compareWith: [\n { field: 'sentimentGradientLowColor', label: 'Gradiente sentimento (inicio)' },\n { field: 'sentimentGradientHighColor', label: 'Gradiente sentimento (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'sentimentGradientHighColor',\n label: 'Gradiente sentimento (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final do gradiente fallback de sentimento.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente sentimento (fim)',\n compareWith: [{ field: 'sentimentGradientMidColor', label: 'Gradiente sentimento (meio)' }],\n }),\n ],\n },\n {\n name: 'sentimentShowBar',\n label: 'Mostrar barra de sentimento',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentAnimatedEmoji',\n label: 'Animar emoji',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentCloseOnSelect',\n label: 'Fechar ao selecionar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Em modo single, fecha o popover apos selecionar uma opcao.',\n },\n {\n name: 'sentimentMultiple',\n label: 'Permitir multipla selecao',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentShowSelectionPills',\n label: 'Mostrar pills selecionados',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'sentimentIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n },\n {\n name: 'sentimentColorKey',\n label: 'Chave color da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n },\n {\n name: 'sentimentEmojiKey',\n label: 'Chave emoji da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n },\n {\n name: 'sentimentOptionsAriaLabel',\n label: 'ARIA grupo de opcoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'sentimentSelectionPillsAriaLabel',\n label: 'ARIA pills selecionados',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'sentimentEmptyStateText',\n label: 'Texto estado vazio',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'sentimentTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional de textos/aria. Ex.: {\"panelSubtitle\":\"Satisfacao\"}',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineColorLabelProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'colorLabelSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'colorLabelOptions',\n label: 'Opcoes de cor (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON. Ex.: [{\"label\":\"Azul\",\"value\":\"blue\",\"color\":\"#0ea5e9\"}]',\n },\n {\n name: 'colorLabelPalette',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n },\n {\n name: 'colorLabelMultiple',\n label: 'Permitir multipla selecao',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'colorLabelColumns',\n label: 'Colunas do grid',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Quantidade de colunas para os cards de cor (1 a 6).',\n },\n {\n name: 'colorLabelShowSelectedBadges',\n label: 'Mostrar badges selecionados',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'colorLabelCloseOnSelect',\n label: 'Fechar ao selecionar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Em modo single, fecha o popover apos selecionar uma opcao.',\n },\n {\n name: 'colorLabelSelectionTitle',\n label: 'Titulo dos badges',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'colorLabelIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n },\n {\n name: 'colorLabelBadgeRemoveIcon',\n label: 'Icone remover badge',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone usado para remover item selecionado nos badges (fallback: close).',\n },\n {\n name: 'colorLabelBadgeRemoveIconColor',\n label: 'Cor remover badge',\n editorType: 'color',\n group: 'Icones',\n hint: 'primary/accent/warn ou cor CSS.',\n },\n {\n name: 'colorLabelColorKey',\n label: 'Chave color da opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n },\n {\n name: 'colorLabelOptionsAriaLabel',\n label: 'ARIA grupo de opcoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'colorLabelSelectionBadgesAriaLabel',\n label: 'ARIA badges selecionados',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'colorLabelRemoveSelectionAriaLabel',\n label: 'ARIA remover badge',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta template {label}. Ex.: \"Remover {label}\".',\n },\n {\n name: 'colorLabelEmptyStateText',\n label: 'Texto estado vazio',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'colorLabelTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional de textos/aria. Ex.: {\"selectionTitle\":\"Selecionados:\"}',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { selectProperties } from './select.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlinePipelineStatusProperties: EditorProperty[] = [\n ...selectProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'pipelineSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'pipelineOptions',\n label: 'Pipeline options (JSON)',\n editorType: 'textarea',\n group: 'Dados/Opcoes',\n hint: 'Array JSON com campos livres. Ex.: [{\"label\":\"Rascunho\",\"value\":\"draft\",\"color\":\"#64748b\",\"count\":12,\"weight\":12}]',\n },\n {\n name: 'pipelineSearchable',\n label: 'Busca no painel',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Habilita campo de pesquisa no popover.',\n },\n {\n name: 'pipelineSearchPlaceholder',\n label: 'Placeholder da busca',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineOptionSubtitleKey',\n label: 'Chave subtitle opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para subtitulo das opcoes (ex.: total, descricao).',\n },\n {\n name: 'pipelineOptionWeightKey',\n label: 'Chave peso opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para largura relativa da barra segmentada.',\n },\n {\n name: 'pipelineOptionColorKey',\n label: 'Chave cor opcao',\n editorType: 'text',\n group: 'Dados/Opcoes',\n hint: 'Campo custom para cor de cada opcao (ex.: tone, tagColor).',\n },\n {\n name: 'pipelineShowBar',\n label: 'Mostrar barra segmentada',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineShowSelectionPills',\n label: 'Mostrar pills selecionados',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineShowSelectAll',\n label: 'Mostrar acao selecionar todos',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineSelectAllText',\n label: 'Texto selecionar todos',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineShowClearAction',\n label: 'Mostrar acao limpar',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineClearActionText',\n label: 'Texto acao limpar',\n editorType: 'text',\n group: 'Formato/Comportamento',\n },\n {\n name: 'pipelineChipMaxVisible',\n label: 'Max labels no chip',\n editorType: 'number',\n group: 'Formato/Comportamento',\n hint: 'Quantidade maxima de labels exibidos no trigger antes de usar +N.',\n },\n {\n name: 'pipelineColors',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n hint: 'Cores fallback quando a opcao nao informar color.',\n },\n {\n name: 'pipelineGradientLowColor',\n label: 'Gradiente pipeline (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial do gradiente fallback da barra/segmentos.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente pipeline (inicio)',\n compareWith: [{ field: 'pipelineGradientMidColor', label: 'Gradiente pipeline (meio)' }],\n }),\n ],\n },\n {\n name: 'pipelineGradientMidColor',\n label: 'Gradiente pipeline (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria do gradiente fallback da barra/segmentos.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente pipeline (meio)',\n compareWith: [\n { field: 'pipelineGradientLowColor', label: 'Gradiente pipeline (inicio)' },\n { field: 'pipelineGradientHighColor', label: 'Gradiente pipeline (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'pipelineGradientHighColor',\n label: 'Gradiente pipeline (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final do gradiente fallback da barra/segmentos.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente pipeline (fim)',\n compareWith: [{ field: 'pipelineGradientMidColor', label: 'Gradiente pipeline (meio)' }],\n }),\n ],\n },\n {\n name: 'pipelineEmptyStateText',\n label: 'Texto de estado vazio',\n editorType: 'text',\n group: 'Aparencia',\n },\n {\n name: 'pipelineSelectionActionsAriaLabel',\n label: 'ARIA grupo de acoes',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineOptionsGroupAriaLabelMultiple',\n label: 'ARIA opcoes multiplas',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineOptionsGroupAriaLabelSingle',\n label: 'ARIA opcoes unicas',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineSelectionPillsAriaLabel',\n label: 'ARIA pills selecionados',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'pipelineBarAriaLabelEmpty',\n label: 'ARIA barra sem selecao',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta template com {label}.',\n },\n {\n name: 'pipelineBarAriaLabelSelected',\n label: 'ARIA barra com selecao',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta templates {label} e {count}.',\n },\n {\n name: 'pipelineTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional para textos/aria customizados. Ex.: {\"selectAllActionLabel\":\"Selecionar tudo\"}',\n },\n {\n name: 'pipelineIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone Material Symbols para o chip/trigger.',\n },\n {\n name: 'pipelineSearchIcon',\n label: 'Icone da busca',\n editorType: 'text',\n group: 'Icones',\n hint: 'Icone do campo de busca no painel (fallback: panelSearchIcon/search).',\n },\n {\n name: 'pipelineSearchIconColor',\n label: 'Cor icone da busca',\n editorType: 'color',\n group: 'Icones',\n hint: 'primary/accent/warn ou cor CSS.',\n },\n {\n name: 'inlineAutoSize.panelMinWidth',\n label: 'Painel minimo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidth',\n label: 'Painel maximo (desktop)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.desktop',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMinWidthMobile',\n label: 'Painel minimo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n {\n name: 'inlineAutoSize.panelMaxWidthMobile',\n label: 'Painel maximo (mobile)',\n editorType: 'number',\n group: 'Aparencia',\n row: 'inline-size.panel.mobile',\n inline: true,\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineRatingProperties: EditorProperty[] = [\n ...rangeSliderProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'ratingIcon',\n label: 'Ícone do chip (legado)',\n editorType: 'text',\n group: 'Compatibilidade',\n hint: 'Alias legado de prefixIcon.',\n },\n {\n name: 'allowHalf',\n label: 'Permitir meia estrela',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n hint: 'Quando ativo e sem step explícito, usa incrementos de 0.5 no range.',\n },\n {\n name: 'ratingAllowHalf',\n label: 'Permitir meia estrela (legado)',\n editorType: 'checkbox',\n group: 'Compatibilidade',\n hint: 'Alias legado de allowHalf para payloads antigos.',\n },\n {\n name: 'ratingPrecision',\n label: 'Precisão (legado)',\n editorType: 'select',\n group: 'Compatibilidade',\n options: [\n { value: 1, text: 'Inteira (1)' },\n { value: 0.5, text: 'Meia estrela (0.5)' },\n ],\n hint: 'Alias legado de precisão. Prefira allowHalf/step em novos metadados.',\n },\n {\n name: 'precision',\n label: 'Precisão textual (legado)',\n editorType: 'select',\n group: 'Compatibilidade',\n options: [\n { value: 'whole', text: 'Inteira (whole)' },\n { value: 'half', text: 'Meia estrela (half)' },\n ],\n hint: 'Alias legado textual. O valor \"half\" habilita meia estrela.',\n },\n {\n name: 'ratingToneLowColor',\n label: 'Cor estrelas (baixo)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor para estrelas de notas baixas (fallback: vermelho).',\n },\n {\n name: 'ratingToneMidColor',\n label: 'Cor estrelas (médio)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor para estrelas de notas médias (fallback: âmbar).',\n },\n {\n name: 'ratingToneHighColor',\n label: 'Cor estrelas (alto)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor para estrelas de notas altas (fallback: verde).',\n },\n {\n name: 'ratingGradientLowColor',\n label: 'Gradiente estrelas (inicio)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor inicial do gradiente aplicado na escala de estrelas.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente estrelas (inicio)',\n compareWith: [{ field: 'ratingGradientMidColor', label: 'Gradiente estrelas (meio)' }],\n }),\n ],\n },\n {\n name: 'ratingGradientMidColor',\n label: 'Gradiente estrelas (meio)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor intermediaria do gradiente aplicado na escala de estrelas.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente estrelas (meio)',\n compareWith: [\n { field: 'ratingGradientLowColor', label: 'Gradiente estrelas (inicio)' },\n { field: 'ratingGradientHighColor', label: 'Gradiente estrelas (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'ratingGradientHighColor',\n label: 'Gradiente estrelas (fim)',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor final do gradiente aplicado na escala de estrelas.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente estrelas (fim)',\n compareWith: [{ field: 'ratingGradientMidColor', label: 'Gradiente estrelas (meio)' }],\n }),\n ],\n },\n {\n name: 'ratingBadgeColor',\n label: 'Cor ícone badges',\n editorType: 'color',\n group: 'Aparência',\n hint: 'Cor do ícone de estrela nos badges de início/fim do range.',\n },\n {\n name: 'ratingBadgeIcon',\n label: 'Ícone dos badges',\n editorType: 'text',\n group: 'Ícones',\n hint: 'Ícone exibido nos badges de início/fim do range (fallback: star).',\n },\n {\n name: 'ratingBadgeIconColor',\n label: 'Cor ícone badges',\n editorType: 'color',\n group: 'Ícones',\n hint: 'Cor específica do ícone de badge (sobrescreve ratingBadgeColor quando informado).',\n },\n {\n name: 'ratingActiveIcon',\n label: 'Ícone estrela ativa',\n editorType: 'text',\n group: 'Ícones',\n hint: 'Ícone das posições dentro da faixa selecionada (fallback: star).',\n },\n {\n name: 'ratingInactiveIcon',\n label: 'Ícone estrela inativa',\n editorType: 'text',\n group: 'Ícones',\n hint: 'Ícone das posições fora da faixa selecionada (fallback: star_outline).',\n },\n {\n name: 'ratingToneColors',\n label: 'Paleta por tom (JSON)',\n editorType: 'textarea',\n group: 'Aparência',\n hint: 'JSON opcional. Ex.: {\"low\":\"#ef4444\",\"mid\":\"#f59e0b\",\"high\":\"#22a45d\",\"badge\":\"#f59e0b\"}',\n },\n {\n name: 'ratingColors',\n label: 'Paleta rating (legado JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n hint: 'Alias legado de paleta. Ex.: {\"low\":\"#ef4444\",\"mid\":\"#f59e0b\",\"high\":\"#22a45d\"}',\n },\n {\n name: 'starColors',\n label: 'Paleta starColors (legado JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n hint: 'Alias legado adicional para paleta de estrelas.',\n },\n {\n name: 'ratingLowColor',\n label: 'Cor baixa (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingToneLowColor.',\n },\n {\n name: 'ratingMidColor',\n label: 'Cor média (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingToneMidColor.',\n },\n {\n name: 'ratingHighColor',\n label: 'Cor alta (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingToneHighColor.',\n },\n {\n name: 'ratingIndicatorColor',\n label: 'Cor indicador/badge (legado)',\n editorType: 'color',\n group: 'Compatibilidade',\n hint: 'Alias legado para ratingBadgeColor.',\n },\n {\n name: 'ratingMin',\n label: 'Mínimo (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de min.',\n },\n {\n name: 'ratingMax',\n label: 'Máximo (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de max.',\n },\n {\n name: 'itemsCount',\n label: 'Qtde estrelas (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n hint: 'Alias legado para limite superior quando max não estiver definido.',\n },\n {\n name: 'ratingStep',\n label: 'Step (legado)',\n editorType: 'number',\n group: 'Compatibilidade',\n hint: 'Alias legado de step.',\n },\n {\n name: 'materialDesign.density',\n label: 'Densidade',\n editorType: 'select',\n group: 'Aparência',\n options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'default', text: 'Padrão' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta dimensões base do chip e painel inline.',\n },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { gradientColorStopValidator } from '../validators/gradient-color.validators';\n\nfunction cloneProperty(prop: EditorProperty): EditorProperty {\n return {\n ...prop,\n options: Array.isArray(prop.options)\n ? prop.options.map((opt) =>\n typeof opt === 'object' && opt !== null ? { ...opt } : opt,\n )\n : prop.options,\n };\n}\n\nexport const inlineScorePriorityProperties: EditorProperty[] = [\n ...rangeSliderProperties.map((prop) => cloneProperty(prop)),\n {\n name: 'scoreSubtitle',\n label: 'Subtitulo do painel',\n editorType: 'text',\n group: 'Geral',\n hint: 'Texto auxiliar exibido abaixo do titulo no popover.',\n },\n {\n name: 'scoreBands',\n label: 'Faixas de score (JSON)',\n editorType: 'textarea',\n group: 'Formato/Comportamento',\n hint: 'Array JSON. Ex.: [{\"label\":\"Baixo\",\"color\":\"#16a34a\",\"start\":0,\"end\":2.5}]',\n },\n {\n name: 'scoreUnit',\n label: 'Unidade de score',\n editorType: 'text',\n group: 'Formato/Comportamento',\n hint: 'Sufixo opcional para o valor exibido (ex.: pts).',\n },\n {\n name: 'scoreDisplayDecimals',\n label: 'Casas decimais (display)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n },\n {\n name: 'scoreShowScaleLabels',\n label: 'Mostrar labels da escala',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'scoreShowBandChips',\n label: 'Mostrar chips de faixa',\n editorType: 'checkbox',\n group: 'Formato/Comportamento',\n },\n {\n name: 'scoreRangeSeparator',\n label: 'Separador de faixa',\n editorType: 'text',\n group: 'Formato/Comportamento',\n hint: 'Separador visual entre inicio e fim (ex.: -, —, ate).',\n },\n {\n name: 'scorePalette',\n label: 'Paleta fallback (CSV/JSON)',\n editorType: 'textarea',\n group: 'Aparencia',\n hint: 'Cores usadas quando uma faixa nao informa color.',\n },\n {\n name: 'scoreGradientLowColor',\n label: 'Gradiente score (inicio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor inicial do gradiente fallback da trilha.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente score (inicio)',\n compareWith: [{ field: 'scoreGradientMidColor', label: 'Gradiente score (meio)' }],\n }),\n ],\n },\n {\n name: 'scoreGradientMidColor',\n label: 'Gradiente score (meio)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor intermediaria do gradiente fallback da trilha.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente score (meio)',\n compareWith: [\n { field: 'scoreGradientLowColor', label: 'Gradiente score (inicio)' },\n { field: 'scoreGradientHighColor', label: 'Gradiente score (fim)' },\n ],\n }),\n ],\n },\n {\n name: 'scoreGradientHighColor',\n label: 'Gradiente score (fim)',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor final do gradiente fallback da trilha.',\n validators: [\n gradientColorStopValidator({\n label: 'Gradiente score (fim)',\n compareWith: [{ field: 'scoreGradientMidColor', label: 'Gradiente score (meio)' }],\n }),\n ],\n },\n {\n name: 'scoreValueFallbackColor',\n label: 'Cor fallback valor',\n editorType: 'color',\n group: 'Aparencia',\n hint: 'Cor aplicada ao valor quando nenhuma faixa casar.',\n },\n {\n name: 'scoreEmptyGradient',\n label: 'Gradiente vazio',\n editorType: 'text',\n group: 'Aparencia',\n hint: 'CSS gradient usado quando nao houver faixas.',\n },\n {\n name: 'scoreIcon',\n label: 'Icone do trigger',\n editorType: 'text',\n group: 'Icones',\n },\n {\n name: 'scoreBandsAriaLabel',\n label: 'ARIA grupo de faixas',\n editorType: 'text',\n group: 'Acessibilidade',\n },\n {\n name: 'scoreBandAriaLabelTemplate',\n label: 'Template ARIA faixa',\n editorType: 'text',\n group: 'Acessibilidade',\n hint: 'Suporta {label}, {start} e {end}.',\n },\n {\n name: 'scoreTexts',\n label: 'Textos avancados (JSON)',\n editorType: 'textarea',\n group: 'Acessibilidade',\n hint: 'Objeto opcional para textos/aria. Ex.: {\"rangeSeparator\":\"ate\",\"bandsAriaLabel\":\"Severidade\"}',\n },\n {\n name: 'scoreMin',\n label: 'Minimo (alias)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de min.',\n },\n {\n name: 'scoreMax',\n label: 'Maximo (alias)',\n editorType: 'number',\n group: 'Compatibilidade',\n row: 'compat.minmax',\n inline: true,\n hint: 'Alias legado de max.',\n },\n {\n name: 'scoreStep',\n label: 'Step (alias)',\n editorType: 'number',\n group: 'Compatibilidade',\n hint: 'Alias legado de step.',\n },\n {\n name: 'priorityBands',\n label: 'priorityBands (alias JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n },\n {\n name: 'severityBands',\n label: 'severityBands (alias JSON)',\n editorType: 'textarea',\n group: 'Compatibilidade',\n },\n {\n name: 'materialDesign.density',\n label: 'Densidade',\n editorType: 'select',\n group: 'Aparencia',\n options: [\n { value: 'compact', text: 'Compacta' },\n { value: 'default', text: 'Padrao' },\n { value: 'dense', text: 'Densa' },\n ],\n hint: 'Ajusta dimensoes base do chip e painel inline.',\n },\n];\n","import {\n INLINE_FILTER_CONTROL_TYPES,\n type InlineFilterControlType,\n resolveInlineFilterControlType,\n} from '@praxisui/core';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport { dateProperties } from './date.config';\nimport { dateRangeProperties } from './date-range.config';\nimport { inlineDistanceRadiusProperties } from './inline-distance-radius.config';\nimport { inlineRelativePeriodProperties } from './inline-relative-period.config';\nimport { inlineSentimentProperties } from './inline-sentiment.config';\nimport { inlineColorLabelProperties } from './inline-color-label.config';\nimport { inlinePipelineStatusProperties } from './inline-pipeline-status.config';\nimport { inlineRatingProperties } from './inline-rating.config';\nimport { inlineScorePriorityProperties } from './inline-score-priority.config';\nimport { inputProperties } from './input.config';\nimport { numberProperties } from './number.config';\nimport { priceRangeProperties } from './price-range.config';\nimport { rangeSliderProperties } from './range-slider.config';\nimport { selectProperties } from './select.config';\nimport { timePickerProperties } from './time-picker.config';\nimport { timeRangeProperties } from './time-range.config';\nimport { toggleProperties } from './toggle.config';\nimport { treeSelectProperties } from './tree-select.config';\nimport { currencyInputProperties } from './currency.config';\n\nexport const INLINE_FILTER_EDITOR_PROPERTIES_BY_CONTROL_TYPE: Readonly<\n Record<InlineFilterControlType, EditorProperty[]>\n> = Object.freeze({\n [INLINE_FILTER_CONTROL_TYPES.SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.SEARCHABLE_SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.ASYNC_SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.ENTITY_LOOKUP]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.AUTOCOMPLETE]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.MULTI_SELECT]: selectProperties,\n [INLINE_FILTER_CONTROL_TYPES.INPUT]: inputProperties,\n [INLINE_FILTER_CONTROL_TYPES.TOGGLE]: toggleProperties,\n [INLINE_FILTER_CONTROL_TYPES.RANGE]: rangeSliderProperties,\n [INLINE_FILTER_CONTROL_TYPES.PERIOD_RANGE]: rangeSliderProperties,\n [INLINE_FILTER_CONTROL_TYPES.YEAR_RANGE]: rangeSliderProperties,\n [INLINE_FILTER_CONTROL_TYPES.MONTH_RANGE]: rangeSliderProperties,\n [INLINE_FILTER_CONTROL_TYPES.DATE]: dateProperties,\n [INLINE_FILTER_CONTROL_TYPES.DATE_RANGE]: dateRangeProperties,\n [INLINE_FILTER_CONTROL_TYPES.TIME]: timePickerProperties,\n [INLINE_FILTER_CONTROL_TYPES.TIME_RANGE]: timeRangeProperties,\n [INLINE_FILTER_CONTROL_TYPES.TREE_SELECT]: treeSelectProperties,\n [INLINE_FILTER_CONTROL_TYPES.NUMBER]: numberProperties,\n [INLINE_FILTER_CONTROL_TYPES.CURRENCY]: currencyInputProperties,\n [INLINE_FILTER_CONTROL_TYPES.CURRENCY_RANGE]: priceRangeProperties,\n [INLINE_FILTER_CONTROL_TYPES.RATING]: inlineRatingProperties,\n [INLINE_FILTER_CONTROL_TYPES.DISTANCE_RADIUS]:\n inlineDistanceRadiusProperties,\n [INLINE_FILTER_CONTROL_TYPES.PIPELINE_STATUS]:\n inlinePipelineStatusProperties,\n [INLINE_FILTER_CONTROL_TYPES.SCORE_PRIORITY]:\n inlineScorePriorityProperties,\n [INLINE_FILTER_CONTROL_TYPES.RELATIVE_PERIOD]:\n inlineRelativePeriodProperties,\n [INLINE_FILTER_CONTROL_TYPES.SENTIMENT]:\n inlineSentimentProperties,\n [INLINE_FILTER_CONTROL_TYPES.COLOR_LABEL]:\n inlineColorLabelProperties,\n});\n\nexport function resolveInlineFilterEditorProperties(\n controlType: unknown,\n): EditorProperty[] | undefined {\n const inlineType = resolveInlineFilterControlType(controlType);\n if (!inlineType) return undefined;\n return INLINE_FILTER_EDITOR_PROPERTIES_BY_CONTROL_TYPE[inlineType];\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\nimport { ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport {\n FieldControlType as FCT,\n type FieldControlType,\n type FieldDefinition,\n normalizeControlTypeToken,\n} from '@praxisui/core';\nimport { ConfigRegistryService } from '../../registry/config-registry.service';\nimport { SchemaNormalizerService } from '../../services/schema-normalizer.service';\nimport { DynamicFormFactoryService } from '../../services/dynamic-form-factory.service';\nimport { DynamicEditorRendererComponent } from '../dynamic-editor-renderer/dynamic-editor-renderer.component';\nimport { inputProperties } from '../../config/input.config';\nimport { selectProperties } from '../../config/select.config';\nimport { transferListProperties } from '../../config/transfer-list.config';\nimport { radioProperties } from '../../config/radio.config';\nimport { buttonToggleProperties } from '../../config/button-toggle.config';\nimport { treeSelectProperties } from '../../config/tree-select.config';\nimport { textareaProperties } from '../../config/textarea.config';\nimport { numberProperties } from '../../config/number.config';\nimport { dateProperties } from '../../config/date.config';\nimport { dateRangeProperties } from '../../config/date-range.config';\nimport { datetimeLocalProperties } from '../../config/datetime-local.config';\nimport { dateInputProperties } from '../../config/date-input.config';\nimport { timeInputProperties } from '../../config/time-input.config';\nimport { timePickerProperties } from '../../config/time-picker.config';\nimport { timeRangeProperties } from '../../config/time-range.config';\nimport { monthInputProperties } from '../../config/month.config';\nimport { weekInputProperties } from '../../config/week.config';\nimport { emailInputProperties } from '../../config/email.config';\nimport { passwordInputProperties } from '../../config/password.config';\nimport { urlInputProperties } from '../../config/url.config';\nimport { searchInputProperties } from '../../config/search.config';\nimport { phoneInputProperties } from '../../config/phone.config';\nimport { colorInputProperties } from '../../config/color.config';\nimport { colorPickerProperties } from '../../config/color-picker.config';\nimport { ratingProperties } from '../../config/rating.config';\nimport { chipInputProperties } from '../../config/chip-input.config';\nimport { checkboxGroupProperties } from '../../config/checkbox-group.config';\nimport { toggleProperties } from '../../config/toggle.config';\nimport { sliderProperties } from '../../config/slider.config';\nimport { rangeSliderProperties } from '../../config/range-slider.config';\nimport { currencyInputProperties } from '../../config/currency.config';\nimport { priceRangeProperties } from '../../config/price-range.config';\nimport { cpfCnpjProperties } from '../../config/cpf-cnpj.config';\nimport { fileUploadProperties } from '../../config/file-upload.config';\nimport { yearInputProperties } from '../../config/year.config';\nimport { avatarProperties } from '../../config/avatar.config';\nimport { SETTINGS_PANEL_DATA } from '@praxisui/settings-panel';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContextValidatorRegistryService } from '../../registry/context-validator-registry.service';\nimport { minLenLeMaxLen } from '../../validators/context-validators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { resolveInlineFilterEditorProperties } from '../../config/inline-filter-control-properties.map';\n\n@Component({\n selector: 'praxis-field-metadata-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, DynamicEditorRendererComponent],\n template: `\n <div class=\"p-3\" *ngIf=\"form\">\n <praxis-dynamic-editor-renderer\n [properties]=\"normalizedProps\"\n [form]=\"form\"\n ></praxis-dynamic-editor-renderer>\n </div>\n `,\n})\nexport class FieldMetadataEditorComponent implements OnInit {\n @Input() controlType!: FieldControlType;\n @Input() seed?: Partial<FieldDefinition>;\n @Output() applied = new EventEmitter<Partial<FieldDefinition>>();\n @Output() cancel = new EventEmitter<void>();\n\n form!: FormGroup;\n normalizedProps: any[] = [];\n private initialSnapshot: any | null = null;\n private baselineReady = false;\n // Lista de tipos suportados no editor (curada para os tipos com config disponível)\n typeOptions: Array<{ value: FieldControlType; label: string }> = [\n { value: (FCT as any).INPUT, label: 'Texto (Input)' },\n { value: (FCT as any).TEXTAREA, label: 'Texto longo (Textarea)' },\n { value: (FCT as any).NUMERIC_TEXT_BOX, label: 'Número' },\n { value: (FCT as any).CURRENCY_INPUT, label: 'Moeda' },\n { value: (FCT as any).PRICE_RANGE, label: 'Faixa de preço' },\n { value: (FCT as any).EMAIL_INPUT, label: 'E-mail' },\n { value: (FCT as any).PASSWORD, label: 'Senha' },\n { value: (FCT as any).URL_INPUT, label: 'URL' },\n { value: (FCT as any).SEARCH_INPUT, label: 'Busca' },\n { value: (FCT as any).PHONE, label: 'Telefone' },\n { value: (FCT as any).SELECT, label: 'Seleção (Select)' },\n { value: (FCT as any).MULTI_SELECT, label: 'Seleção múltipla' },\n { value: (FCT as any).SEARCHABLE_SELECT, label: 'Seleção buscável' },\n { value: (FCT as any).ASYNC_SELECT, label: 'Seleção assíncrona' },\n { value: (FCT as any).AUTO_COMPLETE, label: 'Auto-completar' },\n { value: (FCT as any).SELECTION_LIST, label: 'Lista de seleção' },\n { value: (FCT as any).TREE_SELECT, label: 'Árvore (Tree Select)' },\n { value: (FCT as any).MULTI_SELECT_TREE, label: 'Árvore múltipla' },\n { value: (FCT as any).RADIO, label: 'Opções (Radio)' },\n { value: (FCT as any).BUTTON_TOGGLE, label: 'Alternador (Button Toggle)' },\n { value: (FCT as any).CHECKBOX, label: 'Caixa de seleção' },\n { value: (FCT as any).TOGGLE, label: 'Liga/Desliga (Toggle)' },\n { value: (FCT as any).SLIDER, label: 'Slider' },\n { value: (FCT as any).RANGE_SLIDER, label: 'Slider (intervalo)' },\n { value: (FCT as any).DATE_INPUT, label: 'Data (Input)' },\n { value: (FCT as any).DATE_PICKER, label: 'Data (Datepicker)' },\n { value: (FCT as any).DATE_RANGE, label: 'Intervalo de data' },\n { value: (FCT as any).DATETIME_LOCAL_INPUT, label: 'Data e Hora (local)' },\n { value: (FCT as any).TIME_INPUT, label: 'Hora (Input)' },\n { value: (FCT as any).TIME_PICKER, label: 'Hora (Picker)' },\n { value: (FCT as any).TIME_RANGE, label: 'Intervalo de hora' },\n { value: (FCT as any).MONTH_INPUT, label: 'Mês' },\n { value: (FCT as any).WEEK_INPUT, label: 'Semana' },\n { value: (FCT as any).YEAR_INPUT, label: 'Ano' },\n { value: (FCT as any).COLOR_INPUT, label: 'Cor (Input)' },\n { value: (FCT as any).COLOR_PICKER, label: 'Cor (Picker)' },\n { value: (FCT as any).RATING, label: 'Avaliação (Rating)' },\n { value: (FCT as any).CHIP_INPUT, label: 'Chips' },\n { value: (FCT as any).TRANSFER_LIST, label: 'Transferência de itens' },\n { value: (FCT as any).CPF_CNPJ_INPUT, label: 'CPF/CNPJ' },\n { value: (FCT as any).FILE_UPLOAD, label: 'Upload de Arquivo' },\n { value: (FCT as any).AVATAR, label: 'Avatar' },\n ];\n\n // Settings Panel integration (contract: isDirty$, isValid$, isBusy$)\n isDirty$ = new BehaviorSubject<boolean>(false);\n isValid$ = new BehaviorSubject<boolean>(true);\n isBusy$ = new BehaviorSubject<boolean>(false);\n private readonly destroyRef = inject(DestroyRef);\n private lastCurrencyPreset: { locale?: string; decimalPlaces?: number; currencyPosition?: string } | null = null;\n\n constructor(\n private registry: ConfigRegistryService,\n private normalizer: SchemaNormalizerService,\n private factory: DynamicFormFactoryService,\n private ctxValidators: ContextValidatorRegistryService,\n ) {\n // Support SETTINGS_PANEL_DATA injection as input fallback\n const data = inject(SETTINGS_PANEL_DATA, { optional: true }) as\n | { controlType?: FieldControlType; seed?: Partial<FieldDefinition>; hostBridge?: { applyPatch?: (p: any) => void } }\n | undefined;\n if (data) {\n if (data.controlType) this.controlType = data.controlType;\n if (data.seed) this.seed = data.seed;\n // Bridge: allow host to receive patches even if saved$/applied$ are missed\n try { (this as any).__hostApplyPatch = data.hostBridge?.applyPatch; } catch {}\n }\n // Normalize legacy avatar seed (root imageSrc/imageAlt -> extra.* for editor binding)\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).AVATAR)) {\n const seedAny: any = this.seed || {};\n const extra = seedAny.extra || {};\n if (seedAny.imageSrc !== undefined && extra.imageSrc === undefined) {\n extra.imageSrc = seedAny.imageSrc;\n }\n if (seedAny.imageAlt !== undefined && extra.imageAlt === undefined) {\n extra.imageAlt = seedAny.imageAlt;\n }\n if (extra !== seedAny.extra) {\n seedAny.extra = extra;\n this.seed = seedAny;\n }\n }\n } catch {}\n }\n\n ngOnInit(): void {\n try {\n const hasBridge = typeof (this as any).__hostApplyPatch === 'function';\n (console.log || console.debug)('[FieldMetadataEditor] ngOnInit', { controlType: this.controlType, hasHostBridge: hasBridge });\n } catch {}\n this.rebuildEditorForType(this.controlType);\n }\n\n private rebuildEditorForType(ct: FieldControlType): void {\n this.controlType = ct;\n let props = this.registry.getProperties(this.controlType);\n try {\n (console.log || console.debug)('[FieldMetadataEditor] init', {\n controlType: this.controlType,\n seedPreview: {\n resourcePath: (this.seed as any)?.resourcePath,\n optionLabelKey: (this.seed as any)?.optionLabelKey,\n optionValueKey: (this.seed as any)?.optionValueKey,\n filterCriteria:\n typeof (this.seed as any)?.filterCriteria === 'string'\n ? (this.seed as any)?.filterCriteria\n : (this.seed as any)?.filterCriteria != null\n ? JSON.stringify((this.seed as any)?.filterCriteria)\n : undefined,\n },\n propsBefore: props.map((p) => p.name),\n });\n } catch {}\n // Fallback de registro mínimo para facilitar execução inicial\n if (!props.length) {\n const controlTypeToken = normalizeControlTypeToken(this.controlType);\n const inlineProps = resolveInlineFilterEditorProperties(controlTypeToken);\n if (inlineProps) {\n this.registry.register(this.controlType, inlineProps);\n props = inlineProps;\n } else if (this.controlType === (FCT as any).INPUT) {\n this.registry.register(this.controlType, inputProperties);\n props = inputProperties;\n } else if (\n // Aliases for select-like\n controlTypeToken === 'searchableselect' ||\n controlTypeToken === 'asyncselect' ||\n controlTypeToken === 'entitylookup'\n ) {\n this.registry.register(this.controlType, selectProperties);\n props = selectProperties;\n } else if (this.controlType === (FCT as any).NUMERIC_TEXT_BOX) {\n this.registry.register(this.controlType, numberProperties);\n props = numberProperties;\n } else if (this.controlType === (FCT as any).DATE_PICKER) {\n this.registry.register(this.controlType, dateProperties);\n props = dateProperties;\n } else if (this.controlType === (FCT as any).DATE_INPUT) {\n this.registry.register(this.controlType, dateInputProperties);\n props = dateInputProperties;\n } else if (this.controlType === (FCT as any).DATE_RANGE) {\n this.registry.register(this.controlType, dateRangeProperties);\n props = dateRangeProperties;\n } else if (this.controlType === (FCT as any).DATETIME_LOCAL_INPUT) {\n this.registry.register(this.controlType, datetimeLocalProperties);\n props = datetimeLocalProperties;\n } else if (this.controlType === (FCT as any).TIME_INPUT) {\n this.registry.register(this.controlType, timeInputProperties);\n props = timeInputProperties;\n } else if (this.controlType === (FCT as any).TIME_PICKER) {\n this.registry.register(this.controlType, timePickerProperties);\n props = timePickerProperties;\n } else if (this.controlType === (FCT as any).TIME_RANGE) {\n this.registry.register(this.controlType, timeRangeProperties);\n props = timeRangeProperties;\n } else if (this.controlType === (FCT as any).MONTH_INPUT) {\n this.registry.register(this.controlType, monthInputProperties);\n props = monthInputProperties;\n } else if (this.controlType === (FCT as any).WEEK_INPUT) {\n this.registry.register(this.controlType, weekInputProperties);\n props = weekInputProperties;\n } else if (this.controlType === (FCT as any).EMAIL_INPUT) {\n this.registry.register(this.controlType, emailInputProperties);\n props = emailInputProperties;\n } else if (this.controlType === (FCT as any).PASSWORD) {\n this.registry.register(this.controlType, passwordInputProperties);\n props = passwordInputProperties;\n } else if (this.controlType === (FCT as any).URL_INPUT) {\n this.registry.register(this.controlType, urlInputProperties);\n props = urlInputProperties;\n } else if (this.controlType === (FCT as any).SEARCH_INPUT) {\n this.registry.register(this.controlType, searchInputProperties);\n props = searchInputProperties;\n } else if (this.controlType === (FCT as any).PHONE) {\n this.registry.register(this.controlType, phoneInputProperties);\n props = phoneInputProperties;\n } else if (this.controlType === (FCT as any).COLOR_INPUT) {\n this.registry.register(this.controlType, colorInputProperties);\n props = colorInputProperties;\n } else if (this.controlType === (FCT as any).COLOR_PICKER) {\n this.registry.register(this.controlType, colorPickerProperties);\n props = colorPickerProperties;\n } else if (this.controlType === (FCT as any).RATING) {\n this.registry.register(this.controlType, ratingProperties);\n props = ratingProperties;\n } else if (\n this.controlType === (FCT as any).SELECT ||\n this.controlType === (FCT as any).MULTI_SELECT ||\n this.controlType === (FCT as any).SEARCHABLE_SELECT ||\n this.controlType === (FCT as any).ASYNC_SELECT ||\n this.controlType === (FCT as any).AUTO_COMPLETE ||\n this.controlType === (FCT as any).SELECTION_LIST\n ) {\n this.registry.register(this.controlType, selectProperties);\n props = selectProperties;\n } else if (this.controlType === (FCT as any).TEXTAREA) {\n this.registry.register(this.controlType, textareaProperties);\n props = textareaProperties;\n } else if (this.controlType === (FCT as any).TRANSFER_LIST) {\n this.registry.register(this.controlType, transferListProperties);\n props = transferListProperties;\n } else if (this.controlType === (FCT as any).RADIO) {\n this.registry.register(this.controlType, radioProperties);\n props = radioProperties;\n } else if (this.controlType === (FCT as any).BUTTON_TOGGLE) {\n this.registry.register(this.controlType, buttonToggleProperties);\n props = buttonToggleProperties;\n } else if (this.controlType === (FCT as any).CHIP_INPUT) {\n this.registry.register(this.controlType, chipInputProperties);\n props = chipInputProperties;\n } else if (this.controlType === (FCT as any).CHECKBOX) {\n this.registry.register(this.controlType, checkboxGroupProperties);\n props = checkboxGroupProperties;\n } else if (this.controlType === (FCT as any).TOGGLE) {\n this.registry.register(this.controlType, toggleProperties);\n props = toggleProperties;\n } else if (this.controlType === (FCT as any).SLIDER) {\n this.registry.register(this.controlType, sliderProperties);\n props = sliderProperties;\n } else if (this.controlType === (FCT as any).RANGE_SLIDER) {\n this.registry.register(this.controlType, rangeSliderProperties);\n props = rangeSliderProperties;\n } else if (this.controlType === (FCT as any).CURRENCY_INPUT) {\n this.registry.register(this.controlType, currencyInputProperties);\n props = currencyInputProperties;\n } else if (this.controlType === (FCT as any).PRICE_RANGE) {\n this.registry.register(this.controlType, priceRangeProperties);\n props = priceRangeProperties;\n } else if (this.controlType === (FCT as any).CPF_CNPJ_INPUT) {\n this.registry.register(this.controlType, cpfCnpjProperties);\n props = cpfCnpjProperties;\n } else if (this.controlType === (FCT as any).FILE_UPLOAD) {\n this.registry.register(this.controlType, fileUploadProperties);\n props = fileUploadProperties;\n } else if (this.controlType === (FCT as any).YEAR_INPUT) {\n this.registry.register(this.controlType, yearInputProperties);\n props = yearInputProperties;\n } else if (this.controlType === (FCT as any).AVATAR) {\n this.registry.register(this.controlType, avatarProperties);\n props = avatarProperties;\n } else if (\n this.controlType === (FCT as any).TREE_SELECT ||\n this.controlType === (FCT as any).MULTI_SELECT_TREE\n ) {\n this.registry.register(this.controlType, treeSelectProperties);\n props = treeSelectProperties;\n }\n }\n try {\n (console.log || console.debug)('[FieldMetadataEditor] props after registry resolution', {\n resolvedProps: props.map((p) => p.name),\n });\n } catch {}\n // Inject controlType selector into 'Geral' group so users can change field type\n try {\n const typeProp = {\n name: 'controlType',\n label: 'Tipo de campo',\n editorType: 'select',\n group: 'Geral',\n // Destaque visual e aviso claro sobre risco\n prefixIcon: 'warning',\n hint:\n '⚠️ Alterar o tipo de campo NÃO altera o tipo de dado na API. ' +\n 'Isso pode causar erro ao salvar se o formato esperado for diferente.',\n options: this.typeOptions.map((o) => ({ value: o.value, text: o.label })),\n defaultValue: this.controlType,\n } as any;\n props = [typeProp, ...props];\n } catch {}\n\n this.normalizedProps = this.normalizer.normalize(props, this.seed);\n try {\n console.debug('[FieldMetadataEditor] normalized props', {\n propNames: this.normalizedProps.map((p: any) => p.name),\n defaults: this.normalizedProps\n .filter((p: any) =>\n ['resourcePath', 'filterCriteria', 'optionLabelKey', 'optionValueKey'].includes(p.name),\n )\n .map((p: any) => ({ name: p.name, defaultValue: p.defaultValue })),\n optionsDefault: (() => {\n const opt = (this.normalizedProps as any[]).find((p) => p.name === 'options');\n if (!opt) return undefined;\n const v: any = opt.defaultValue;\n return {\n type: v == null ? 'null' : typeof v,\n preview: typeof v === 'string' ? String(v).slice(0, 80) : undefined,\n lengthOrCount: Array.isArray(v)\n ? v.length\n : (typeof v === 'string' ? (v as string).length : undefined),\n };\n })(),\n });\n } catch {}\n // Backward-compatible bridge: if a config still uses providerOptions, hydrate from seed.options.\n try {\n const hasProviderOptions = this.normalizedProps.some((p: any) => p.name === 'providerOptions');\n const seedOptions = (this.seed as any)?.options;\n if (hasProviderOptions && seedOptions !== undefined) {\n const v = typeof seedOptions === 'string' ? seedOptions : (() => { try { return JSON.stringify(seedOptions, null, 2); } catch { return String(seedOptions); } })();\n this.normalizedProps = this.normalizedProps.map((p: any) =>\n p.name === 'providerOptions' && p.defaultValue === undefined ? { ...p, defaultValue: v } : p,\n );\n (console.log || console.debug)('[FieldMetadataEditor] providerOptions default injected from seed.options', {\n type: typeof seedOptions,\n lengthOrCount: Array.isArray(seedOptions) ? seedOptions.length : (typeof seedOptions === 'string' ? seedOptions.length : undefined),\n });\n }\n } catch {}\n // Register contextual validators for INPUT/TEXTAREA (minLength <= maxLength)\n if (\n this.controlType === (FCT as any).INPUT ||\n this.controlType === (FCT as any).TEXTAREA\n ) {\n const existing = this.ctxValidators.get(this.controlType);\n if (!existing.includes(minLenLeMaxLen)) {\n this.ctxValidators.register(this.controlType, minLenLeMaxLen);\n }\n }\n this.form = this.factory.createEditorForm(\n this.controlType,\n this.normalizedProps,\n this.seed,\n );\n // Apply seed values into the form controls (only non-null/undefined)\n try {\n const getByPath = (obj: any, path: string) => {\n if (!obj || typeof obj !== 'object') return undefined;\n if (!path || typeof path !== 'string') return undefined;\n const parts = path.split('.');\n let curr: any = obj;\n for (const k of parts) {\n if (curr == null) return undefined;\n curr = curr[k];\n }\n return curr;\n };\n const subset: Record<string, any> = {};\n for (const p of this.normalizedProps || []) {\n const name = p?.name as string;\n if (!name) continue;\n const val = getByPath(this.seed, name);\n // Preserve false/0; skip only null/undefined\n if (val !== undefined && val !== null) {\n this.factory.setValueByPath(this.form, name, val);\n subset[name] = val;\n }\n }\n // Also patch the form in a single call to ensure UI reflects values immediately\n try { this.form.patchValue(subset, { emitEvent: false }); } catch {}\n // Diagnostics for Rating seeding after applying seed → form\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).RATING)) {\n const pick = (k: string) => this.form.get(k)?.value;\n console.debug('[FieldMetadataEditor][RATING] seeded form values', {\n max: pick('max'),\n allowHalf: pick('allowHalf'),\n selection: pick('selection'),\n size: pick('size'),\n icon: pick('icon'),\n emptyIcon: pick('emptyIcon'),\n svgIcon: pick('svgIcon'),\n svgIconOutline: pick('svgIconOutline'),\n ratingColor: pick('ratingColor'),\n outlineColor: pick('outlineColor'),\n readonly: pick('readonly'),\n tabIndex: pick('tabIndex'),\n ariaLabel: pick('ariaLabel'),\n });\n }\n } catch {}\n } catch {}\n // Diagnostics: dump initial values for Rating editor\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).RATING)) {\n const pick = (k: string) => this.form.get(k)?.value;\n console.debug('[FieldMetadataEditor][RATING] initial form values', {\n max: pick('max'),\n allowHalf: pick('allowHalf'),\n selection: pick('selection'),\n size: pick('size'),\n icon: pick('icon'),\n emptyIcon: pick('emptyIcon'),\n svgIcon: pick('svgIcon'),\n svgIconOutline: pick('svgIconOutline'),\n ratingColor: pick('ratingColor'),\n outlineColor: pick('outlineColor'),\n readonly: pick('readonly'),\n tabIndex: pick('tabIndex'),\n ariaLabel: pick('ariaLabel'),\n });\n }\n } catch {}\n // Capture baseline after seed is applied to avoid missing first user change\n try {\n this.initialSnapshot = this.form.getRawValue();\n this.baselineReady = true;\n if (this.isDirty$.value) this.isDirty$.next(false);\n (console.log || console.debug)('[FieldMetadataEditor] baseline captured (immediate)');\n } catch {\n this.baselineReady = true;\n }\n // track validity/dirty with snapshot-based detection (avoid false dirty on init)\n this.isValid$.next(this.form.valid);\n this.form.statusChanges.subscribe(() => this.isValid$.next(this.form.valid));\n this.setupCurrencyPresetSync();\n this.form.valueChanges.subscribe((val) => {\n if (!this.baselineReady) {\n // Ignore initial churn until baseline is captured\n return;\n }\n if (this.initialSnapshot == null) {\n this.initialSnapshot = val;\n if (this.isDirty$.value) this.isDirty$.next(false);\n try { (console.log || console.debug)('[FieldMetadataEditor] baseline set from first stable value'); } catch {}\n return;\n }\n let same = false;\n try { same = JSON.stringify(val) === JSON.stringify(this.initialSnapshot); } catch { same = false; }\n const dirty = !same;\n if (dirty !== this.isDirty$.value) {\n try { (console.log || console.debug)('[FieldMetadataEditor] dirty ->', dirty); } catch {}\n this.isDirty$.next(dirty);\n }\n });\n }\n\n private setupCurrencyPresetSync(): void {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU !== String((FCT as any).CURRENCY_INPUT) && ctU !== 'CURRENCY' && ctU !== String((FCT as any).PRICE_RANGE) && ctU !== 'PRICERANGE') {\n return;\n }\n const currencyControl = this.form.get('currency');\n if (!currencyControl) return;\n\n const presets: Record<string, { locale: string; decimalPlaces: number; currencyPosition: 'before' | 'after' }> = {\n BRL: { locale: 'pt-BR', decimalPlaces: 2, currencyPosition: 'before' },\n USD: { locale: 'en-US', decimalPlaces: 2, currencyPosition: 'before' },\n EUR: { locale: 'de-DE', decimalPlaces: 2, currencyPosition: 'after' },\n GBP: { locale: 'en-GB', decimalPlaces: 2, currencyPosition: 'before' },\n JPY: { locale: 'ja-JP', decimalPlaces: 0, currencyPosition: 'before' },\n CLP: { locale: 'es-CL', decimalPlaces: 0, currencyPosition: 'before' },\n ARS: { locale: 'es-AR', decimalPlaces: 2, currencyPosition: 'before' },\n MXN: { locale: 'es-MX', decimalPlaces: 2, currencyPosition: 'before' },\n COP: { locale: 'es-CO', decimalPlaces: 2, currencyPosition: 'before' },\n PEN: { locale: 'es-PE', decimalPlaces: 2, currencyPosition: 'before' },\n UYU: { locale: 'es-UY', decimalPlaces: 2, currencyPosition: 'before' },\n PYG: { locale: 'es-PY', decimalPlaces: 0, currencyPosition: 'before' },\n BOB: { locale: 'es-BO', decimalPlaces: 2, currencyPosition: 'before' },\n CAD: { locale: 'en-CA', decimalPlaces: 2, currencyPosition: 'before' },\n AUD: { locale: 'en-AU', decimalPlaces: 2, currencyPosition: 'before' },\n NZD: { locale: 'en-NZ', decimalPlaces: 2, currencyPosition: 'before' },\n CHF: { locale: 'de-CH', decimalPlaces: 2, currencyPosition: 'before' },\n CNY: { locale: 'zh-CN', decimalPlaces: 2, currencyPosition: 'before' },\n HKD: { locale: 'zh-HK', decimalPlaces: 2, currencyPosition: 'before' },\n SGD: { locale: 'en-SG', decimalPlaces: 2, currencyPosition: 'before' },\n INR: { locale: 'en-IN', decimalPlaces: 2, currencyPosition: 'before' },\n ZAR: { locale: 'en-ZA', decimalPlaces: 2, currencyPosition: 'before' },\n DOP: { locale: 'es-DO', decimalPlaces: 2, currencyPosition: 'before' },\n CRC: { locale: 'es-CR', decimalPlaces: 2, currencyPosition: 'before' },\n GTQ: { locale: 'es-GT', decimalPlaces: 2, currencyPosition: 'before' },\n HNL: { locale: 'es-HN', decimalPlaces: 2, currencyPosition: 'before' },\n NIO: { locale: 'es-NI', decimalPlaces: 2, currencyPosition: 'before' },\n PAB: { locale: 'es-PA', decimalPlaces: 2, currencyPosition: 'before' },\n VES: { locale: 'es-VE', decimalPlaces: 2, currencyPosition: 'before' },\n };\n\n currencyControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value: any) => {\n const code = String(value || '').toUpperCase();\n const preset = presets[code];\n if (!preset) return;\n\n const localeCtrl = this.form.get('locale');\n const decimalsCtrl = this.form.get('decimalPlaces');\n const positionCtrl = this.form.get('currencyPosition');\n\n const nextPatch: Record<string, any> = {};\n const shouldApply = (ctrl: any, key: 'locale' | 'decimalPlaces' | 'currencyPosition') => {\n if (!ctrl) return false;\n const current = ctrl.value;\n if (current === null || current === undefined || current === '') return true;\n if (this.lastCurrencyPreset && current === (this.lastCurrencyPreset as any)[key]) return true;\n return false;\n };\n\n if (shouldApply(localeCtrl, 'locale')) nextPatch.locale = preset.locale;\n if (shouldApply(decimalsCtrl, 'decimalPlaces')) nextPatch.decimalPlaces = preset.decimalPlaces;\n if (shouldApply(positionCtrl, 'currencyPosition')) nextPatch.currencyPosition = preset.currencyPosition;\n\n if (Object.keys(nextPatch).length) {\n this.form.patchValue(nextPatch, { emitEvent: false });\n }\n this.lastCurrencyPreset = {\n locale: preset.locale,\n decimalPlaces: preset.decimalPlaces,\n currencyPosition: preset.currencyPosition,\n };\n });\n }\n\n apply(): void {\n const raw = this.factory.extractPatch(this.form) as any;\n const patch = this.buildDeltaPatch(raw, this.initialSnapshot) as any;\n this.normalizeKnownTextareaPatchValues(patch);\n // Map editor-friendly 'providerOptions' back to canonical 'options'\n if (patch && patch.providerOptions !== undefined && patch.options === undefined) {\n patch.options = patch.providerOptions;\n delete patch.providerOptions;\n }\n // Sempre incluir controlType no patch quando presente\n (patch as any).controlType = this.controlType as any;\n try { console.debug('[FieldMetadataEditor] apply() patch', patch); } catch {}\n try { const fn = (this as any).__hostApplyPatch; if (typeof fn === 'function') fn(patch); } catch {}\n this.applied.emit(patch);\n }\n\n onSave(): Partial<FieldDefinition> | undefined {\n return this.getSettingsValue();\n }\n\n // Settings Panel value provider API\n getSettingsValue(): Partial<FieldDefinition> {\n const raw = this.factory.extractPatch(this.form) as any;\n const patch = this.buildDeltaPatch(raw, this.initialSnapshot) as any;\n this.normalizeKnownTextareaPatchValues(patch);\n if (patch && patch.providerOptions !== undefined && patch.options === undefined) {\n patch.options = patch.providerOptions;\n delete patch.providerOptions;\n }\n (patch as any).controlType = this.controlType as any;\n try { console.debug('[FieldMetadataEditor] getSettingsValue() patch', patch); } catch {}\n return patch;\n }\n\n /**\n * Constrói um patch delta a partir do valor atual do form, removendo\n * chaves não alteradas.\n * Semântica de patch: `null` representa remoção da propriedade (JSON Merge Patch).\n */\n private buildDeltaPatch(current: any, baseline: any): any {\n try {\n const isObject = (v: any) => v != null && typeof v === 'object' && !Array.isArray(v);\n const isEmptyLike = (v: any) =>\n v === null ||\n v === undefined ||\n (typeof v === 'string' && v.trim() === '');\n const areEqual = (a: any, b: any) => {\n if (a === b) return true;\n try {\n return JSON.stringify(a) === JSON.stringify(b);\n } catch {\n return false;\n }\n };\n const changed: any = {};\n const keys = Object.keys(current || {});\n for (const k of keys) {\n const cv = (current as any)[k];\n const bv = baseline ? (baseline as any)[k] : undefined;\n\n // Campos limpos explicitamente removem a propriedade quando antes havia valor.\n if (isEmptyLike(cv)) {\n if (!isEmptyLike(bv)) {\n changed[k] = null;\n }\n continue;\n }\n\n if (isObject(cv)) {\n const nested = this.buildDeltaPatch(cv, isObject(bv) ? bv : undefined);\n if (nested && Object.keys(nested).length) {\n changed[k] = nested;\n }\n } else {\n // Incluir apenas se mudou em relação ao baseline.\n if (baseline === null || baseline === undefined || !areEqual(cv, bv)) {\n changed[k] = cv;\n }\n }\n }\n return changed;\n } catch {\n // Fallback: retornar current quando algo falhar (melhor do que perder patch)\n return current;\n }\n }\n\n /**\n * Converte campos de textarea conhecidos para o tipo esperado em runtime.\n * Evita persistir strings cruas quando o componente espera arrays.\n */\n private normalizeKnownTextareaPatchValues(patch: any): void {\n if (!patch || typeof patch !== 'object') {\n return;\n }\n\n if (typeof patch.timeOptions === 'string') {\n const parsedTimeOptions = this.parseStringListTextarea(patch.timeOptions);\n if (parsedTimeOptions) {\n patch.timeOptions = parsedTimeOptions;\n }\n }\n\n if (typeof patch.inlineTimeQuickPresets === 'string') {\n const parsedQuickPresets = this.parseArrayTextarea(\n patch.inlineTimeQuickPresets,\n );\n if (parsedQuickPresets) {\n patch.inlineTimeQuickPresets = parsedQuickPresets;\n }\n }\n\n if (typeof patch.inlineTimeTrackShifts === 'string') {\n const parsedTrackShifts = this.parseArrayTextarea(\n patch.inlineTimeTrackShifts,\n );\n if (parsedTrackShifts) {\n patch.inlineTimeTrackShifts = parsedTrackShifts;\n }\n }\n\n if (typeof patch.links === 'string') {\n const parsedLinks = this.parseArrayTextarea(patch.links);\n if (parsedLinks) {\n patch.links = parsedLinks;\n }\n }\n }\n\n /**\n * Interpreta textarea como lista simples de strings:\n * - JSON array de strings\n * - fallback linha a linha (um valor por linha)\n */\n private parseStringListTextarea(value: string): string[] | null {\n const raw = String(value || '').trim();\n if (!raw) {\n return null;\n }\n\n const parsedJson = this.tryParseJson(raw);\n if (Array.isArray(parsedJson)) {\n const normalized = parsedJson\n .map((entry) => String(entry ?? '').trim())\n .filter((entry) => entry.length > 0);\n return normalized.length ? normalized : null;\n }\n\n const byLine = raw\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0);\n return byLine.length ? byLine : null;\n }\n\n /**\n * Interpreta textarea como array:\n * - JSON array (preferencial)\n * - fallback linha a linha para array de strings\n */\n private parseArrayTextarea(value: string): unknown[] | null {\n const raw = String(value || '').trim();\n if (!raw) {\n return null;\n }\n\n const parsedJson = this.tryParseJson(raw);\n if (Array.isArray(parsedJson)) {\n return parsedJson;\n }\n\n const byLine = raw\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0);\n return byLine.length ? byLine : null;\n }\n\n private tryParseJson(raw: string): unknown {\n try {\n return JSON.parse(raw);\n } catch {\n return null;\n }\n }\n\n reset(): void {\n this.form.reset(this.factory.extractPatch(this.form));\n this.isDirty$.next(false);\n }\n\n onControlTypeChange(next: FieldControlType): void {\n this.rebuildEditorForType(next);\n this.isDirty$.next(true);\n }\n\n // Template-safe change handler (avoid TS casts in template)\n onControlTypeChangeEvent(event: Event): void {\n const value = (event.target as HTMLSelectElement | null)?.value as any;\n if (value != null) this.onControlTypeChange(value as FieldControlType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { FieldDefinition, FieldMetadata } from '@praxisui/core';\n\nexport interface CascadeRuleViewModel {\n targetField: string;\n dependencyFields: string[];\n enableDependencyCascade: boolean;\n resetOnDependentChange: boolean;\n dependencyFilterMap?: Record<string, any> | null;\n dependencyValuePath?: string | Record<string, string> | null;\n dependencyMergeStrategy?: 'merge' | 'replace';\n dependencyDebounceMs?: number | null;\n dependencyLoadOnChange?: 'respectLoadOn' | 'immediate' | 'manual';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CascadeRulesService {\n getFieldLabelMap(fields: Array<FieldDefinition | FieldMetadata>): Map<string, string> {\n const map = new Map<string, string>();\n fields.forEach((f) => map.set(f.name, f.label || f.name));\n return map;\n }\n\n hydrateRule(field: FieldDefinition | FieldMetadata): CascadeRuleViewModel | null {\n const deps = (field as any).dependencyFields as string[] | undefined;\n if (!deps || deps.length === 0) return null;\n const vm: CascadeRuleViewModel = {\n targetField: field.name,\n dependencyFields: [...deps],\n enableDependencyCascade:\n (field as any).enableDependencyCascade === false ? false : true,\n resetOnDependentChange: !!(field as any).resetOnDependentChange,\n dependencyFilterMap: (field as any).dependencyFilterMap || null,\n dependencyValuePath: (field as any).dependencyValuePath || null,\n dependencyMergeStrategy: (field as any).dependencyMergeStrategy || 'merge',\n dependencyDebounceMs:\n (field as any).dependencyDebounceMs != null\n ? Number((field as any).dependencyDebounceMs)\n : 150,\n dependencyLoadOnChange:\n (field as any).dependencyLoadOnChange || 'respectLoadOn',\n };\n return vm;\n }\n\n dehydratePatch(rule: CascadeRuleViewModel): Partial<FieldDefinition> {\n const patch: any = {\n dependencyFields: rule.dependencyFields,\n enableDependencyCascade: rule.enableDependencyCascade,\n resetOnDependentChange: rule.resetOnDependentChange,\n dependencyMergeStrategy: rule.dependencyMergeStrategy || 'merge',\n dependencyLoadOnChange: rule.dependencyLoadOnChange || 'respectLoadOn',\n };\n if (rule.dependencyFilterMap != null) patch.dependencyFilterMap = rule.dependencyFilterMap;\n if (rule.dependencyValuePath != null) patch.dependencyValuePath = rule.dependencyValuePath as any;\n if (rule.dependencyDebounceMs != null)\n patch.dependencyDebounceMs = Number(rule.dependencyDebounceMs);\n return patch as Partial<FieldDefinition>;\n }\n\n /** Suggest a basic mapping dep->dep and a default valuePath */\n suggest(rule: CascadeRuleViewModel, inferredValueKey?: string): CascadeRuleViewModel {\n const map: Record<string, any> = {};\n (rule.dependencyFields || []).forEach((dep) => (map[dep] = dep));\n return {\n ...rule,\n dependencyFilterMap: Object.keys(map).length ? map : rule.dependencyFilterMap,\n dependencyValuePath: rule.dependencyValuePath || inferredValueKey || 'id',\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, OnChanges, SimpleChanges, signal } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport type { FieldDefinition, FieldMetadata } from '@praxisui/core';\nimport { CascadeRulesService, CascadeRuleViewModel } from './cascade-rules.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { PraxisIconDirective } from '@praxisui/core';\n\n@Component({\n selector: 'praxis-cascade-manager-tab',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatInputModule,\n MatChipsModule,\n MatListModule,\n MatDividerModule,\n MatSelectModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatMenuModule,\n MatAutocompleteModule,\n ScrollingModule,\n PraxisIconDirective,\n ],\n styles: [\n `\n :host { display: block; }\n .cm-root { display: grid; grid-template-columns: 320px 1fr; gap: 16px; min-height: 420px; }\n .cm-left { border-right: 1px solid var(--md-sys-color-outline-variant); padding-right: 8px; }\n .cm-search { width: 100%; margin-bottom: 8px; }\n .cm-right { padding-left: 8px; }\n .field-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 6px; cursor: pointer; border-radius: 10px; transition: background 120ms ease, border 120ms ease; border: 1px solid transparent; }\n .field-item:hover { background: var(--md-sys-color-surface-container-high); }\n .field-item.selected { background: var(--md-sys-color-surface-container-highest); border-color: var(--md-sys-color-outline-variant); }\n .rule-badges { display: inline-flex; gap: 6px; }\n .rule-badge { font-size: 11px; padding: 2px 8px; border-radius: 999px; font-weight: 600; }\n .b-active { background: var(--md-sys-color-primary-container); color: var(--md-sys-color-on-primary-container); }\n .b-manual { background: var(--md-sys-color-surface-container-high); color: var(--md-sys-color-on-surface-variant); }\n .b-immediate { background: var(--md-sys-color-secondary-container); color: var(--md-sys-color-on-secondary-container); }\n .b-conflict { background: var(--md-sys-color-error-container); color: var(--md-sys-color-on-error-container); }\n .cm-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }\n .rules-empty { opacity: .8; font-style: italic; padding: 8px 0; color: var(--md-sys-color-on-surface-variant); }\n .rule-row { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--md-sys-color-outline-variant); }\n .rule-actions button { margin-left: 4px; }\n .banner { background: var(--md-sys-color-tertiary-container); color: var(--md-sys-color-on-tertiary-container); padding: 10px 12px; border: 1px solid var(--md-sys-color-outline-variant); border-radius: 8px; margin-bottom: 10px; display: flex; gap: 8px; align-items: center; }\n .import-panel { background: var(--md-sys-color-surface-container-high); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 8px; padding: 10px; margin-bottom: 10px; }\n .full { width: 100%; }\n .form-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }\n .form-grid { display: grid; gap: 12px; padding: 8px 0; }\n .map-table { width: 100%; border-collapse: collapse; }\n .map-table th, .map-table td { padding: 8px 8px; border-bottom: 1px dashed var(--md-sys-color-outline-variant); }\n .kbd { font-family: monospace; background: var(--md-sys-color-surface-container-highest); padding: 0 6px; border-radius: 4px; color: var(--md-sys-color-on-surface-variant); }\n .panel-surface { background: var(--md-sys-color-surface-container-high); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 10px; box-shadow: var(--md-sys-elevation-level1, none); margin-bottom: 12px; }\n .panel-stack { display: grid; gap: 12px; margin: 12px 0; }\n .stack-panel { background: var(--md-sys-color-surface-container-high); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 10px; box-shadow: var(--md-sys-elevation-level1, none); }\n .stack-panel .mat-expansion-panel-content { padding: 0 16px 12px; }\n .panel-header { display: flex; align-items: center; gap: 8px; }\n .preview-box { background: var(--md-sys-color-surface-container-low); border: 1px solid var(--md-sys-color-outline-variant); border-radius: 8px; padding: 8px; color: var(--md-sys-color-on-surface); }\n .help-icon-button {\n --mdc-icon-button-state-layer-size: 28px;\n --mdc-icon-button-icon-size: 18px;\n width: 28px;\n height: 28px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-right: -4px;\n }\n .help-icon-button mat-icon { font-size: 18px; width: 18px; height: 18px; }\n .mat-mdc-form-field-icon-suffix { align-self: center; }\n `\n ],\n template: `\n <div class=\"cm-root\">\n <!-- Left: Fields list -->\n <div class=\"cm-left\">\n <mat-form-field appearance=\"outline\" class=\"cm-search\" subscriptSizing=\"dynamic\">\n <mat-label>Buscar campos</mat-label>\n <input matInput [ngModel]=\"searchTerm\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n <ng-container *ngIf=\"fields.length <= 50; else vscroll\">\n <div>\n <div *ngFor=\"let f of filteredFields()\" (click)=\"selectField(f.name)\" class=\"field-item\" [class.selected]=\"f.name===selectedField()\" tabindex=\"0\" (keydown)=\"onFieldKeydown($event, f.name)\">\n <div>\n <div>{{ labelFor(f.name) }}</div>\n <small style=\"opacity:.7\">{{ f.name }}</small>\n </div>\n <div class=\"rule-badges\" *ngIf=\"hasRule(f.name)\">\n <span class=\"rule-badge b-active\" *ngIf=\"isCascadeEnabled(f.name)\">Ativo</span>\n <span class=\"rule-badge b-manual\" *ngIf=\"loadOnChange(f.name)==='manual'\">Manual</span>\n <span class=\"rule-badge b-immediate\" *ngIf=\"loadOnChange(f.name)==='immediate'\">Immediate</span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #vscroll>\n <cdk-virtual-scroll-viewport itemSize=\"44\" style=\"height: calc(100vh - 240px)\">\n <div *cdkVirtualFor=\"let f of filteredFields()\" (click)=\"selectField(f.name)\" class=\"field-item\" [class.selected]=\"f.name===selectedField()\" tabindex=\"0\" (keydown)=\"onFieldKeydown($event, f.name)\">\n <div>\n <div>{{ labelFor(f.name) }}</div>\n <small style=\"opacity:.7\">{{ f.name }}</small>\n </div>\n <div class=\"rule-badges\" *ngIf=\"hasRule(f.name)\">\n <span class=\"rule-badge b-active\" *ngIf=\"isCascadeEnabled(f.name)\">Ativo</span>\n <span class=\"rule-badge b-manual\" *ngIf=\"loadOnChange(f.name)==='manual'\">Manual</span>\n <span class=\"rule-badge b-immediate\" *ngIf=\"loadOnChange(f.name)==='immediate'\">Immediate</span>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n\n <!-- Right: Rules for selected field -->\n <div class=\"cm-right\" *ngIf=\"selectedField() as sel\">\n <div class=\"cm-header\">\n <div>\n <h3 style=\"margin:0\">{{ labelFor(sel) }}</h3>\n <div style=\"opacity:.7\">{{ sel }}</div>\n </div>\n <div>\n <button mat-stroked-button color=\"primary\" (click)=\"exportRules()\" style=\"margin-right:8px\">Exportar</button>\n <button mat-stroked-button (click)=\"toggleImport()\" style=\"margin-right:8px\">Importar</button>\n <button mat-flat-button color=\"primary\" [matMenuTriggerFor]=\"addMenu\" [disabled]=\"editing()\">Adicionar</button>\n <mat-menu #addMenu=\"matMenu\">\n <button mat-menu-item (click)=\"startEdit(sel)\"><mat-icon [praxisIcon]=\"'add'\"></mat-icon><span>Em branco</span></button>\n <button mat-menu-item (click)=\"startTemplate(sel, 'rota-destino')\" [disabled]=\"!hasField('rotaId') || !hasField('destinoReqId')\"><mat-icon [praxisIcon]=\"'bolt'\"></mat-icon><span>Rota → Destino (id)</span></button>\n <button mat-menu-item (click)=\"startTemplate(sel, 'rota-destino-propriedade')\" [disabled]=\"!hasField('rotaId') || !hasField('destinoReqId')\"><mat-icon [praxisIcon]=\"'bolt'\"></mat-icon><span>Rota + Destino → Propriedade (ids)</span></button>\n </mat-menu>\n </div>\n </div>\n\n <!-- Conflict banner (connections) -->\n <div class=\"banner\" *ngIf=\"hasConflict(sel)\">\n <mat-icon [praxisIcon]=\"'link_off'\"></mat-icon>\n <div>\n Connections atualizam este campo (filterCriteria). Considere desativar a cascata nativa ou usar ‘manual’.\n </div>\n <span class=\"spacer\"></span>\n <button mat-stroked-button color=\"primary\" (click)=\"quickSet(sel,'disable')\">Desativar</button>\n <button mat-stroked-button color=\"accent\" (click)=\"quickSet(sel,'manual')\">Definir manual</button>\n </div>\n\n <div *ngIf=\"importMode\" class=\"import-panel\">\n <div style=\"display:flex; gap:8px; align-items:center; margin-bottom:8px\"><mat-icon [praxisIcon]=\"'upload'\"></mat-icon><strong>Importar regras (JSON)</strong></div>\n <textarea matInput rows=\"6\" class=\"full\" [(ngModel)]=\"importJson\" placeholder='{ \"campo\": { \"dependencyFields\": [\"dep\"], ... } }'></textarea>\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding-top:8px\">\n <button mat-stroked-button (click)=\"toggleImport()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"applyImport()\">Aplicar</button>\n </div>\n </div>\n\n <div *ngIf=\"!ruleFor(sel)\">\n <div class=\"rules-empty\">Nenhuma cascata configurada. Clique em “Adicionar” para montar a dependência.</div>\n </div>\n <div *ngIf=\"ruleFor(sel) as rule\">\n <div class=\"rule-row\">\n <div>\n <div><strong>Dependentes:</strong> {{ rule.dependencyFields.join(', ') || '—' }}</div>\n <div style=\"opacity:.7\">Load on change: {{ rule.dependencyLoadOnChange || 'respectLoadOn' }} | Merge: {{ rule.dependencyMergeStrategy || 'merge' }}</div>\n </div>\n <div class=\"rule-actions\">\n <button mat-icon-button matTooltip=\"Editar\" (click)=\"startEdit(sel)\"><mat-icon [praxisIcon]=\"'edit'\"></mat-icon></button>\n <button mat-icon-button matTooltip=\"Duplicar\" disabled><mat-icon [praxisIcon]=\"'content_copy'\"></mat-icon></button>\n <button mat-icon-button matTooltip=\"Remover\" (click)=\"remove(sel)\"><mat-icon [praxisIcon]=\"'delete'\"></mat-icon></button>\n </div>\n </div>\n </div>\n\n <!-- Editor com seções (sem acordeão duplo) -->\n <div class=\"panel-surface\">\n <div class=\"panel-header\" style=\"padding: 12px 16px; border-bottom: 1px solid var(--md-sys-color-outline-variant);\">\n <mat-icon [praxisIcon]=\"'rule'\"></mat-icon>\n <div>\n <div>Cascata do campo</div>\n <small style=\"color: var(--md-sys-color-on-surface-variant);\">Defina dependentes, quando recarregar e como mapear filtros</small>\n </div>\n </div>\n\n <div class=\"panel-stack\">\n <!-- Básico -->\n <mat-expansion-panel [expanded]=\"true\" class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'tune'\"></mat-icon> Básico</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-grid\">\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>Campos dependentes</mat-label>\n <mat-select multiple [(ngModel)]=\"editDepList\" (ngModelChange)=\"onDepListChange()\">\n <mat-option *ngFor=\"let f of availableDependencyFields()\" [value]=\"f.name\">\n {{ labelFor(f.name) }} ({{ f.name }})\n </mat-option>\n </mat-select>\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Selecione os campos que controlam este valor'\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div class=\"form-row\">\n <mat-checkbox [(ngModel)]=\"editEnable\">Ativar cascata nativa</mat-checkbox>\n <mat-checkbox [(ngModel)]=\"editReset\">Resetar ao mudar</mat-checkbox>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Execução -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'schedule'\"></mat-icon> Execução</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Carregar ao mudar</mat-label>\n <mat-select [(ngModel)]=\"editLoadOn\">\n <mat-option value=\"respectLoadOn\">Respeitar loadOn</mat-option>\n <mat-option value=\"immediate\">Imediato</mat-option>\n <mat-option value=\"manual\">Manual</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>Merge de filtros</mat-label>\n <mat-select [(ngModel)]=\"editMerge\">\n <mat-option value=\"merge\">merge (padrão)</mat-option>\n <mat-option value=\"replace\">replace</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>Atraso (ms)</mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"editDebounce\">\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Extração de valor -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'call_split'\"></mat-icon> Extração de valor</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>ValuePath padrão</mat-label>\n <input matInput [(ngModel)]=\"editValuePath\" placeholder=\"id\">\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Preenchido automaticamente a partir de optionValueKey() ou \\\\'id\\\\''\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Mapeamento de filtros (tabela) -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'filter_alt'\"></mat-icon> Mapeamento de filtros</mat-panel-title>\n </mat-expansion-panel-header>\n <table class=\"map-table\" *ngIf=\"editMapRows.length; else noMap\">\n <thead>\n <tr>\n <th>Dependente</th>\n <th>Chave (dot‑path)</th>\n <th>ValuePath (opcional)</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of editMapRows; let i = index\">\n <td>{{ row.dep }}</td>\n <td>\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>Chave</mat-label>\n <input matInput [(ngModel)]=\"row.key\" [matAutocomplete]=\"autoKey\" [placeholder]=\"row.dep\">\n <mat-autocomplete #autoKey=\"matAutocomplete\">\n <mat-option *ngFor=\"let opt of getKeySuggestions(row.dep)\" [value]=\"opt\">{{ opt }}</mat-option>\n </mat-autocomplete>\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Use dot-notation (e.g. ' + row.dep + '.id) for nested objects'\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </td>\n <td>\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>ValuePath</mat-label>\n <input matInput [(ngModel)]=\"row.valuePath\" [matAutocomplete]=\"autoValue\" [placeholder]=\"editValuePath||'id'\">\n <mat-autocomplete #autoValue=\"matAutocomplete\">\n <mat-option *ngFor=\"let opt of getValuePathSuggestions(row.dep)\" [value]=\"opt\">{{ opt }}</mat-option>\n </mat-autocomplete>\n <button\n mat-icon-button\n matSuffix\n class=\"help-icon-button\"\n type=\"button\"\n [matTooltip]=\"'Opcional'\"\n matTooltipPosition=\"above\"\n >\n <mat-icon [praxisIcon]=\"'help_outline'\"></mat-icon>\n </button>\n </mat-form-field>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noMap>\n <div class=\"rules-empty\">Defina dependentes para sugerir o mapeamento.</div>\n </ng-template>\n </mat-expansion-panel>\n\n <!-- Preview -->\n <mat-expansion-panel class=\"stack-panel\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"panel-header\"><mat-icon [praxisIcon]=\"'visibility'\"></mat-icon> Preview</mat-panel-title>\n </mat-expansion-panel-header>\n <pre class=\"preview-box\">{{ buildPreview() }}</pre>\n <div style=\"display:flex; justify-content:flex-end; padding-top:6px\">\n <button mat-stroked-button (click)=\"copyPreview()\">Copiar</button>\n </div>\n </mat-expansion-panel>\n </div>\n\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding:8px 12px;\">\n <button mat-stroked-button (click)=\"cancelEdit()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"saveEdit(sel)\">Salvar</button>\n </div>\n </div>\n </div>\n </div>\n `,\n})\nexport class CascadeManagerTabComponent implements OnChanges {\n @Input() fields: Array<FieldDefinition | FieldMetadata> = [];\n @Input() connections?: Array<{ toFieldName: string; toInputPath: string }>; // optional signal for conflicts\n @Output() apply = new EventEmitter<Record<string, Partial<FieldDefinition>>>();\n @Output() cancel = new EventEmitter<void>();\n\n searchTerm = '';\n private searchTimer: any = null;\n private searchValue = '';\n private readonly rules = signal<Map<string, CascadeRuleViewModel>>(new Map());\n private readonly selectedFieldSig = signal<string | null>(null);\n // Inline editor state (MVP)\n readonly editing = signal(false);\n editDepList: string[] = [];\n editEnable = true;\n editReset = false;\n editMerge: 'merge' | 'replace' = 'merge';\n editLoadOn: 'respectLoadOn' | 'immediate' | 'manual' = 'respectLoadOn';\n editDebounce: number | null = 150;\n editValuePath = '';\n editFilterMapJson = '';\n importMode = false;\n importJson = '';\n editMapRows: Array<{ dep: string; key: string; valuePath?: string }> = [];\n\n constructor(private readonly svc: CascadeRulesService) { }\n\n ngOnInit(): void {\n console.log('CascadeManagerTabComponent ngOnInit', this.fields);\n // hydrate from input fields\n const map = new Map<string, CascadeRuleViewModel>();\n for (const f of this.fields) {\n const vm = this.svc.hydrateRule(f);\n if (vm) map.set(f.name, vm);\n }\n this.rules.set(map);\n if (!this.selectedFieldSig() && this.fields.length) {\n this.selectedFieldSig.set(this.fields[0].name);\n this.startEdit(this.fields[0].name);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('CascadeManagerTabComponent ngOnChanges', changes);\n if (changes['fields'] && !changes['fields'].firstChange) {\n // Re-hydrate rules from incoming fields while preserving existing ones when possible\n const incoming = this.fields || [];\n const next = new Map<string, CascadeRuleViewModel>();\n // keep existing for fields still present\n for (const f of incoming) {\n const existing = this.rules().get(f.name);\n const hydrated = this.svc.hydrateRule(f);\n if (hydrated) next.set(f.name, hydrated);\n else if (existing) next.set(f.name, existing);\n }\n this.rules.set(next);\n // preserve selection if still valid\n const sel = this.selectedField();\n if (sel && !incoming.some((f) => f.name === sel)) {\n this.selectedFieldSig.set(incoming[0]?.name ?? null);\n }\n }\n }\n\n private _logCount = 0;\n filteredFields(): Array<FieldDefinition | FieldMetadata> {\n const q = (this.searchValue || '').toLowerCase();\n const labelMap = this.svc.getFieldLabelMap(this.fields);\n const result = this.fields\n .filter((f) => !q || f.name.toLowerCase().includes(q) || (labelMap.get(f.name) || '').toLowerCase().includes(q))\n .sort((a, b) => (labelMap.get(a.name) || a.name).localeCompare(labelMap.get(b.name) || b.name));\n return result;\n }\n\n labelFor(name: string): string {\n return this.svc.getFieldLabelMap(this.fields).get(name) || name;\n }\n\n selectedField(): string | null {\n return this.selectedFieldSig();\n }\n\n selectField(name: string): void {\n this.selectedFieldSig.set(name);\n this.startEdit(name);\n }\n\n hasRule(name: string): boolean {\n return this.rules().has(name);\n }\n ruleFor(name: string): CascadeRuleViewModel | null {\n return this.rules().get(name) || null;\n }\n isCascadeEnabled(name: string): boolean {\n return (this.ruleFor(name)?.enableDependencyCascade ?? true) === true;\n }\n loadOnChange(name: string): 'respectLoadOn' | 'immediate' | 'manual' {\n return this.ruleFor(name)?.dependencyLoadOnChange || 'respectLoadOn';\n }\n hasConflict(name: string): boolean {\n if (!this.connections) return false;\n return this.connections.some((c) => c.toFieldName === name && (c.toInputPath || '').includes('filterCriteria'));\n }\n\n startEdit(name: string): void {\n const existing = this.ruleFor(name);\n const base: CascadeRuleViewModel = existing || {\n targetField: name,\n dependencyFields: [],\n enableDependencyCascade: true,\n resetOnDependentChange: false,\n dependencyFilterMap: {},\n dependencyValuePath: 'id',\n dependencyMergeStrategy: 'merge',\n dependencyDebounceMs: 150,\n dependencyLoadOnChange: 'respectLoadOn',\n };\n const suggested = this.svc.suggest(base, 'id');\n // Bind to inline editor\n this.editDepList = [...(suggested.dependencyFields || [])];\n this.editEnable = suggested.enableDependencyCascade;\n this.editReset = suggested.resetOnDependentChange;\n this.editMerge = suggested.dependencyMergeStrategy || 'merge';\n this.editLoadOn = suggested.dependencyLoadOnChange || 'respectLoadOn';\n this.editDebounce = suggested.dependencyDebounceMs ?? 150;\n this.editValuePath = (typeof suggested.dependencyValuePath === 'string' ? suggested.dependencyValuePath : 'id') || '';\n try { this.editFilterMapJson = suggested.dependencyFilterMap ? JSON.stringify(suggested.dependencyFilterMap, null, 2) : ''; } catch { this.editFilterMapJson = ''; }\n // Build mapping rows from dependencies\n this.buildMapRowsFromDeps();\n this.editing.set(true);\n }\n edit(name: string): void { this.startEdit(name); }\n cancelEdit(): void { this.editing.set(false); }\n\n saveEdit(name: string): void {\n // Build rule from editor\n const deps = this.editDepList.filter((s) => !!s && s !== name);\n // Build map from rows; fallback to JSON when provided\n let map: any = {};\n this.editMapRows.forEach((r) => { if (!r.key && r.dep) r.key = r.dep; if (r.dep) map[r.dep] = r.valuePath ? { key: r.key || r.dep, valuePath: r.valuePath } : (r.key || r.dep); });\n const raw = (this.editFilterMapJson || '').trim();\n if (raw) {\n try { const fromJson = JSON.parse(raw); map = { ...map, ...fromJson }; } catch { alert('Mapeamento de filtros inválido (JSON)'); return; }\n }\n const rule: CascadeRuleViewModel = {\n targetField: name,\n dependencyFields: deps,\n enableDependencyCascade: this.editEnable,\n resetOnDependentChange: this.editReset,\n dependencyFilterMap: map,\n dependencyValuePath: this.buildValuePathOverrides(deps),\n dependencyMergeStrategy: this.editMerge,\n dependencyDebounceMs: this.editDebounce ?? 150,\n dependencyLoadOnChange: this.editLoadOn,\n };\n const next = new Map(this.rules());\n next.set(name, rule);\n this.rules.set(next);\n this.emitPatch();\n this.editing.set(false);\n }\n\n remove(name: string): void {\n const next = new Map(this.rules());\n next.delete(name);\n this.rules.set(next);\n // Removing means clearing the cascade-related keys; send empty patch\n const patch: any = {\n [name]: {\n dependencyFields: [],\n enableDependencyCascade: false,\n resetOnDependentChange: false,\n dependencyFilterMap: undefined,\n dependencyValuePath: undefined,\n dependencyMergeStrategy: undefined,\n dependencyDebounceMs: undefined,\n dependencyLoadOnChange: undefined,\n },\n };\n this.apply.emit(patch);\n }\n\n quickSet(name: string, action: 'disable' | 'manual'): void {\n const current = this.ruleFor(name);\n if (!current) return;\n const next = { ...current };\n if (action === 'disable') next.enableDependencyCascade = false;\n if (action === 'manual') next.dependencyLoadOnChange = 'manual';\n const map = new Map(this.rules()); map.set(name, next); this.rules.set(map);\n this.emitPatch();\n }\n\n private emitPatch(): void {\n const out: Record<string, Partial<FieldDefinition>> = {};\n for (const [name, rule] of this.rules()) {\n out[name] = this.svc.dehydratePatch(rule);\n }\n this.apply.emit(out);\n }\n\n // Phase 2 helpers\n onSearchChange(val: string): void {\n this.searchTerm = val;\n if (this.searchTimer) clearTimeout(this.searchTimer);\n this.searchTimer = setTimeout(() => (this.searchValue = this.searchTerm), 150);\n }\n onFieldKeydown(event: KeyboardEvent, name: string): void {\n if (event.key === 'Enter') { this.edit(name); event.preventDefault(); }\n if (event.key.toLowerCase() === 'd' && (event.ctrlKey || event.metaKey)) { /* duplicate placeholder */ event.preventDefault(); }\n if (event.key === 'Delete') { this.remove(name); event.preventDefault(); }\n }\n hasField(name: string): boolean { return this.fields.some((f) => f.name === name); }\n toggleImport(): void { this.importMode = !this.importMode; this.importJson = ''; }\n exportRules(): void {\n const out: Record<string, Partial<FieldDefinition>> = {};\n for (const [name, rule] of this.rules()) out[name] = this.svc.dehydratePatch(rule);\n const json = JSON.stringify(out, null, 2);\n try { navigator.clipboard?.writeText(json); } catch { }\n alert('Regras exportadas para a área de transferência.');\n }\n applyImport(): void {\n let obj: any;\n try { obj = JSON.parse(this.importJson || '{}'); } catch { alert('JSON inválido'); return; }\n const next = new Map(this.rules());\n Object.keys(obj || {}).forEach((field) => {\n const patch = obj[field] || {};\n const vm: CascadeRuleViewModel = this.svc.hydrateRule({ ...(patch as any), name: field } as any) || ({\n targetField: field,\n dependencyFields: patch.dependencyFields || [],\n enableDependencyCascade: patch.enableDependencyCascade !== false,\n resetOnDependentChange: !!patch.resetOnDependentChange,\n dependencyFilterMap: patch.dependencyFilterMap || {},\n dependencyValuePath: patch.dependencyValuePath || 'id',\n dependencyMergeStrategy: patch.dependencyMergeStrategy || 'merge',\n dependencyDebounceMs: patch.dependencyDebounceMs ?? 150,\n dependencyLoadOnChange: patch.dependencyLoadOnChange || 'respectLoadOn',\n } as CascadeRuleViewModel);\n next.set(field, vm);\n });\n this.rules.set(next);\n this.emitPatch();\n this.importMode = false;\n }\n startTemplate(name: string, tpl: 'rota-destino' | 'rota-destino-propriedade'): void {\n const hasR = this.hasField('rotaId'); const hasD = this.hasField('destinoReqId');\n const deps = tpl === 'rota-destino' ? (hasR ? ['rotaId'] : []) : (hasR && hasD ? ['rotaId', 'destinoReqId'] : []);\n this.editDepList = [...deps];\n this.editEnable = true; this.editReset = true; this.editMerge = 'merge'; this.editLoadOn = 'respectLoadOn'; this.editDebounce = 150; this.editValuePath = 'id';\n this.buildMapRowsFromDeps();\n this.editing.set(true);\n }\n buildMapRowsFromDeps(): void {\n const deps = this.editDepList;\n const existing: any = (() => { try { return JSON.parse(this.editFilterMapJson || '{}'); } catch { return {}; } })();\n this.editMapRows = deps.map((dep) => {\n const entry = existing[dep];\n if (!entry) return { dep, key: dep };\n if (typeof entry === 'string') return { dep, key: entry };\n return { dep, key: entry.key || dep, valuePath: entry.valuePath };\n });\n }\n buildValuePathOverrides(deps: string[]): string | Record<string, string> {\n // If any row defines a valuePath, return a record; else return default string\n const record: Record<string, string> = {};\n this.editMapRows.forEach((r) => { if (r.valuePath) record[r.dep] = r.valuePath; });\n const hasAny = Object.keys(record).length > 0;\n return hasAny ? record : (this.editValuePath || 'id');\n }\n buildPreview(): string {\n try {\n const deps = this.editDepList;\n const frag: any = {};\n this.editMapRows.forEach((r) => {\n const example = r.valuePath ? 123 : 123; // simple placeholder id\n const parts = (r.key || r.dep).split('.'); let ref = frag;\n for (let i = 0; i < parts.length - 1; i++) { const p = parts[i]; ref[p] = ref[p] || {}; ref = ref[p]; }\n ref[parts[parts.length - 1]] = example;\n });\n return JSON.stringify(frag, null, 2);\n } catch { return '{}'; }\n }\n copyPreview(): void { try { navigator.clipboard?.writeText(this.buildPreview()); } catch { } }\n\n availableDependencyFields(): Array<FieldDefinition | FieldMetadata> {\n const current = this.selectedField();\n const labelMap = this.svc.getFieldLabelMap(this.fields);\n return this.fields\n .filter((f) => f.name !== current)\n .sort((a, b) => (labelMap.get(a.name) || a.name).localeCompare(labelMap.get(b.name) || b.name));\n }\n\n onDepListChange(): void {\n this.buildMapRowsFromDeps();\n }\n\n getKeySuggestions(dep: string): string[] {\n const suggestions = [dep, `${dep}.id`, `${dep}.value`];\n return [...new Set(suggestions)];\n }\n\n getValuePathSuggestions(dep: string): string[] {\n const field = this.fields.find(f => f.name === dep);\n const suggestions = ['id'];\n if (field) {\n // Cast to any to access potential metadata properties safely\n const f = field as any;\n if (f.optionValueKey) suggestions.push(f.optionValueKey);\n if (f.optionLabelKey) suggestions.push(f.optionLabelKey);\n }\n return [...new Set(suggestions)];\n }\n}\n","/**\n * Catálogo inicial de capacidades do editor de metadados (praxis-metadata-editor) para uso pela IA.\n * Estrutura básica com Alvo e propriedades placeholder; expandir conforme implementação evoluir.\n */\n\nimport type { AiCapability, AiCapabilityCatalog } from '@praxisui/core';\n\ninterface AiComponentProperty {\n name: string;\n type: string;\n description: string;\n intentExamples?: string[];\n safetyNotes?: string;\n}\n\ninterface AiComponentCapabilities {\n componentId: string;\n description: string;\n targets: string[];\n properties: AiComponentProperty[];\n}\n\nexport const METADATA_EDITOR_AI_CAPABILITIES: AiComponentCapabilities = {\n componentId: 'metadata-editor',\n description: 'Capacidades específicas para edição de FieldMetadata e auxiliares (regex/cascade).',\n targets: ['praxis-metadata-editor', 'praxis-field-editor', 'praxis-schema-viewer'],\n properties: [\n { name: 'schema', type: 'object', description: 'Schema de metadados disponível para edição.', intentExamples: ['editar schema de metadata', 'estrutura do campo', 'configurações do json'], safetyNotes: 'Validar contra FieldMetadata interface.' },\n { name: 'fieldDefinitions', type: 'object[]', description: 'Definições dos campos e tipos suportados.', intentExamples: ['tipos de campos disponíveis', 'definições de input', 'suporte a select e date'] },\n { name: 'validationHelpers', type: 'object', description: 'Configurações/ajuda de validação (regex, máscaras).', intentExamples: ['ajuda com regex', 'validar máscara', 'testar padrão de validação'] },\n { name: 'cascades', type: 'object[]', description: 'Configurações de cascata/dependências entre campos.', intentExamples: ['dependência entre campos', 'cascade estado cidade', 'configurar trigger de cascata'] },\n { name: 'preview', type: 'object', description: 'Preview/renderização do campo conforme as configurações.', intentExamples: ['pré-visualizar campo', 'ver como fica o input', 'renderizar exemplo'] },\n { name: 'permissions', type: 'object', description: 'Regras de acesso/edição por role ou contexto.', intentExamples: ['permissões de edição', 'quem pode ver este campo', 'bloquear por role'], safetyNotes: 'Não sobrescrever permissões críticas.' },\n ],\n};\n\nconst BASE_CAPABILITIES: AiCapability[] = [\n {\n path: 'config',\n category: 'misc',\n valueKind: 'object',\n description: 'Root configuration payload for the metadata editor.',\n },\n];\n\nexport const METADATA_EDITOR_AI_CAPABILITY_CATALOG: AiCapabilityCatalog = {\n version: '1.0.0',\n capabilities: BASE_CAPABILITIES,\n notes: [],\n enums: {},\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ContextValidatorRegistryService","FCT","i2","i3","i4","i7","cloneProperty","i1.ConfigRegistryService","i2.SchemaNormalizerService","i3.DynamicFormFactoryService","i4.ContextValidatorRegistryService","i5","i1.CascadeRulesService","i6","i8","i10"],"mappings":"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"}