@praxisui/metadata-editor 1.0.0-beta.4 → 1.0.0-beta.41
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.
- package/README.md +7 -0
- package/fesm2022/praxisui-metadata-editor.mjs +3486 -971
- package/fesm2022/praxisui-metadata-editor.mjs.map +1 -1
- package/index.d.ts +54 -4
- package/package.json +4 -4
|
@@ -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/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/validators/context-validators.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/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]{2,}$/' },\n { label: 'URL básica (http/https)', pattern: '/^(https?:\\\\/\\\\/)?[\\\\w.-]+(\\\\\\\\.[\\\\w.-]+)+[\\\\w\\\\-._~:?#@!$&\\'()*+,;=\\\\/]*$/' },\n { label: 'Pelo menos 8 caracteres', pattern: '/^.{8,}$/' },\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).{8,}$/' },\n { label: 'IPv4', pattern: '/^(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)){3}$/' },\n { label: 'MAC address', pattern: '/^([0-9A-Fa-f]{2}:){5}[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 } 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 template: `\n <ng-template #item let-field=\"field\" let-index=\"index\" let-content=\"content\">\n <div class=\"editor-item\" style=\"position: relative;\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n <!-- Botão de ajuda para regex, posicionado como sufixo visual do campo -->\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 </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 padding: 8px 8px 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: color-mix(in srgb, var(--mat-sys-primary, #3f51b5) 20%, transparent);\n box-shadow: 0 2px 10px rgba(0,0,0,0.05);\n }\n .section-card .mat-expansion-panel-body {\n padding: 12px 12px 8px; /* add top space between header and first field */\n background: linear-gradient(180deg, color-mix(in srgb, var(--md-sys-color-surface, var(--sicoob-bg-elev-1)) 2%), transparent);\n }\n .section-header {\n /* Use host theme tokens with dark-friendly fallbacks */\n background: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--md-sys-color-surface, var(--sicoob-bg-elev-2)) 92%, var(--md-sys-color-primary, var(--sicoob-primary-default))) 0%,\n var(--md-sys-color-surface, var(--sicoob-bg-elev-2)) 100%\n );\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(--mat-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 .editor-row > praxis-field-shell[data-field-name=\"prefix\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffix\"],\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: 0 0 200px;\n min-width: 160px;\n }\n\n /* Decorators (botões flutuantes no campo) */\n .decorator-btn {\n position: absolute;\n right: 6px;\n top: 8px;\n z-index: 2;\n color: var(--mat-sys-primary, #3f51b5);\n opacity: 0.85;\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: rgba(255, 171, 0, 0.12); /* amber */\n border: 1px solid rgba(255, 171, 0, 0.35);\n color: #ffca28;\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 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 // 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 'prefixIcon',\n 'suffixIcon',\n 'prefixIconColor',\n 'suffixIconColor',\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 if (key.includes('valida')) return 'rule';\n if (key.includes('formato') || key.includes('másc')) return 'format_shapes';\n if (key.includes('apresent')) return 'display_settings';\n if (key.includes('lista') || key.includes('opç')) return 'list';\n return 'tune';\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' || path === 'suffixIcon' || path === 'icon' || /(^|\\.)icon$/.test(path);\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 (ex.: mi:search). 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 { 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: '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: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:list). 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 // 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',\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 },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\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',\n label: 'Recarregar ao mudar dependentes',\n editorType: 'select',\n group: 'Fonte Remota',\n 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 },\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento' },\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) 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 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\n // 7) 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', hint: '{ \"testId\": \"select-a\" }' },\n\n // 8) Ações (Clear)\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 transferListProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\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' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Fonte Remota', row: 'fonte.inline1', inline: true },\n\n // Formato/Comportamento\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', 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 // 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', hint: '{ \"testId\": \"transfer-a\" }' },\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' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\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\n // Dados/Opções\n {\n name: 'providerOptions',\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' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'text', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // Formato/Comportamento\n { name: 'color', label: 'Cor', 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: '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 // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\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' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Geral' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Geral' },\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' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // Formato/Comportamento\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'legacy', text: 'Legacy' },\n { value: 'standard', text: 'Standard' },\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 // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\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' },\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:[...] }]',\n },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'leafOnly', label: 'Permitir apenas folhas', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'autoExpandOnSearch', label: 'Auto-expansão ao buscar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true },\n { name: 'returnPath', label: 'Retornar caminho', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true },\n { name: 'returnObject', label: 'Retornar objeto', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true },\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 // 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', hint: '{ \"testId\": \"tree-a\" }' },\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' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Properties for Material Textarea editor (parity with INPUT where applicable)\nexport const textareaProperties: EditorProperty[] = [\n // Geral / Apresentação\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 (ex.: mi:edit). 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 { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', 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 // fase 2: minWords + mensagem\n // { name: 'validators.minWords', label: 'Mínimo de palavras', editorType: 'number', group: 'Validação', row: 'validacao.minwords' },\n // { name: 'validators.minWordsMessage', label: 'Mensagem: poucas palavras', editorType: 'text', group: 'Validação', row: 'validacao.minwords' },\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 },\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 { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'rows', label: 'Linhas (rows)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size' },\n { name: 'cols', label: 'Colunas (cols)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size' },\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 },\n { name: 'autoResize', label: 'Auto-resize (CDK)', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true },\n { name: 'minRows', label: 'Mín. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true },\n { name: 'maxRows', label: 'Máx. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true },\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 ] },\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 ] },\n { name: 'showStats', label: 'Mostrar estatísticas (palavras/linhas)', editorType: 'checkbox', group: 'Formato/Comportamento' },\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: 'readonly', label: 'Somente leitura', 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: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n { name: 'enableTabIndent', label: 'Tab: inserir indentação', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n { name: 'tabSize', label: 'Tamanho da indentação (espaços)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n { name: 'maxLines', label: 'Máx. de linhas (bloqueia Enter)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true },\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 { name: 'validators.validationDebounce', label: 'Debounce de validação (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.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 // 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 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\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', hint: '{ \"testId\": \"textarea-a\" }', group: 'Acessibilidade' },\n\n // Ações (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\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.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' },\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","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: 'defaultValue', label: 'Valor padrão', editorType: 'number', 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:...). 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 { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // 2) 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 },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true },\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 // 3) Formato/Comportamento\n { name: 'step', label: 'Step (incremento)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'numberFormat.decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true },\n { name: 'showGrouping', label: 'Agrupar milhares', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true, hint: 'Fase 1: aplica apenas formatação visual básica' },\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\n // 4) 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: '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) 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 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\n // 6) 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', hint: '{ \"testId\": \"number-a\" }' },\n\n // 7) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true },\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: '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: 'acoes.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'acoes.inline2' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true },\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: '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' },\n { name: 'defaultValue.startDate', label: 'Valor padrão (início)', editorType: 'date', group: 'Geral' },\n { name: 'defaultValue.endDate', label: 'Valor padrão (fim)', editorType: 'date', 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:date_range). 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 // Placeholders específicos\n { name: 'startPlaceholder', label: 'Placeholder (início)', editorType: 'text', group: 'Geral' },\n { name: 'endPlaceholder', label: 'Placeholder (fim)', 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\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\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: 'startAriaLabel', label: 'ARIA (início)', editorType: 'text', group: 'Acessibilidade' },\n { name: 'endAriaLabel', label: 'ARIA (fim)', 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","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","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","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: 'defaultValue', label: 'Valor padrão (HH:mm)', editorType: 'text', group: 'Geral', hint: 'Ex.: 08:30' },\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 { 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ínimo (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (HH:mm)', editorType: 'text', 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: 'step', label: 'Step (segundos)', editorType: 'number', group: '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 { name: 'inputMode', label: 'Modo de entrada', 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","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' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). 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 (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'interval', label: 'Intervalo (segundos ou 30m)', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'timeOptions', label: 'Opções (uma por linha)', editorType: 'textarea', group: 'Formato/Comportamento' },\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 },\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 { name: 'showSeconds', label: 'Exibir segundos', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'stepMinute', label: 'Passo (min)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true },\n { name: 'stepSecond', label: 'Passo (seg)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true },\n { name: 'timeFilter', label: 'Filtro (id função)', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material/A11y/Ações básicas\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","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: 'defaultValue.start', label: 'Início (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true },\n { name: 'defaultValue.end', label: 'Fim (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). 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: 'Min (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Max (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'touchUi', label: 'Touch UI', 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 // Material/A11y\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","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","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' },\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:date_range). 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-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n\n // Material/A11y\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","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","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 { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:lock). 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: '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: '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 // Comportamento\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 // Material/A11y\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];\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: 'defaultValue', label: 'Valor padrão (URL)', 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:link). 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: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', 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];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const searchInputProperties: EditorProperty[] = [\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 { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:search). 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 { 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 { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\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 { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:call). 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: 'validators.requiredMessage', label: 'Mensagem: obrigatório', 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","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const colorInputProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (#RRGGBB)', 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:palette). 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 // Palette / Preview\n { name: 'palettePreset', label: 'Paleta (preset)', editorType: 'select', group: 'Palette', 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: 'Palette', hint: \"JSON array ou uma cor por linha (#hex ou rgba/hsl)\" },\n { name: 'columns', label: 'Paleta: colunas', editorType: 'number', group: 'Palette', defaultValue: 8 },\n { name: 'popupWidth', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Preview/Popup', defaultValue: '320' },\n { name: 'preview', label: 'Mostrar preview', editorType: 'checkbox', group: 'Preview/Popup' },\n { name: 'showRecent', label: 'Mostrar recentes', editorType: 'checkbox', group: 'Preview/Popup' },\n { name: 'maxRecent', label: 'Qtd. de recentes', editorType: 'number', group: 'Preview/Popup', defaultValue: 12 },\n { name: 'showNativeOption', label: 'Mostrar seletor nativo', editorType: 'checkbox', group: 'Preview/Popup' },\n\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 { 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 { 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\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\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: '#rrggbb, rgba(), ...' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Geral' },\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\n // Views e Preview\n {\n name: 'views',\n label: \"Views (JSON: ['gradient','palette'])\",\n editorType: 'textarea',\n group: 'Views/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: 'Views/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: 'Views/Preview' },\n { name: 'clearButton', label: 'Botão Clear', editorType: 'checkbox', group: 'Views/Preview' },\n {\n name: 'actionsLayout',\n label: 'Ações (layout)',\n editorType: 'select',\n group: 'Views/Preview',\n defaultValue: 'end',\n options: [\n { value: 'start', text: 'Início' },\n { value: 'end', text: 'Fim' },\n ],\n },\n\n // Adaptive e Popup\n { name: 'adaptiveMode', label: 'Adaptive (BottomSheet/Drawer)', editorType: 'checkbox', group: 'Adaptive/Popup' },\n { name: 'adaptiveTitle', label: 'Adaptive title', editorType: 'text', group: 'Adaptive/Popup' },\n { name: 'adaptiveSubtitle', label: 'Adaptive subtitle', editorType: 'text', group: 'Adaptive/Popup' },\n { name: 'popupSettings.width', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Adaptive/Popup', defaultValue: '340' },\n\n // Gradient\n { name: 'gradientSettings.showOpacity', label: 'Gradiente: transparência (alpha)', editorType: 'checkbox', group: 'Gradient' },\n {\n name: 'gradientSettings.channel',\n label: 'Gradiente: canal',\n editorType: 'select',\n group: 'Gradient',\n defaultValue: 'hsv',\n options: [\n { value: 'hsv', text: 'HSV' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n\n // Palette\n {\n name: 'paletteSettings.preset',\n label: 'Palette: preset',\n editorType: 'select',\n group: 'Palette',\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: 'Palette',\n hint: \"JSON array ou uma cor por linha (#hex ou rgba/hsl)\",\n },\n { name: 'paletteSettings.columns', label: 'Palette: colunas', editorType: 'number', group: 'Palette', defaultValue: 8 },\n\n // Tema/Estilo\n {\n name: 'fillMode',\n label: 'Fill mode',\n editorType: 'select',\n group: 'Theming',\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: 'Theming',\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: 'Theming',\n defaultValue: 'medium',\n options: [\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n ],\n },\n { name: 'icon', label: 'Ícone', editorType: 'text', group: 'Theming', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'svgIcon', label: 'SVG icon', editorType: 'text', group: 'Theming' },\n { name: 'iconClass', label: 'Icon class (JSON/string)', editorType: 'textarea', group: 'Theming', hint: 'string | string[] | Record<string, boolean>' },\n\n // Acessibilidade/Comportamento\n { name: 'tabindex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\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 { name: 'max', label: 'Quantidade de itens', editorType: 'number', group: 'Formato/Comportamento', hint: 'Ex.: 5' },\n { name: 'allowHalf', label: 'Permitir meio ícone', editorType: 'checkbox', group: 'Formato/Comportamento' },\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: 'icon', label: 'Ícone preenchido', editorType: 'text', group: 'Formato/Comportamento', hint: 'Material Symbols (ex.: mi:star). Use o seletor ao lado para buscar.' },\n { name: 'emptyIcon', label: 'Ícone vazio', editorType: 'text', group: 'Formato/Comportamento', hint: 'Material Symbols (ex.: mi:star_border). Use o seletor ao lado para buscar.' },\n { name: 'svgIcon', label: 'SVG (preenchido)', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'svgIconOutline', label: 'SVG (vazio)', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Cores/Comportamento\n { name: 'ratingColor', label: 'Cor do preenchimento', editorType: 'color', group: 'Formato/Comportamento', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'outlineColor', label: 'Cor do contorno', editorType: 'color', group: 'Formato/Comportamento', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\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' },\n\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Resource Path (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true },\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 },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n\n // Formato/Comportamento\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'removable', label: 'Removível', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true },\n { name: 'addOnBlur', label: 'Adicionar ao sair', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true },\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'minLength', label: 'Mín. caracteres busca', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true },\n { name: 'validationDebounce', label: 'Debounce busca (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true },\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' },\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', hint: '{ \"testId\": \"chips-a\" }' },\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' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const checkboxGroupProperties: EditorProperty[] = [\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Recurso (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções' },\n { name: 'optionLabelKey', label: 'Chave rótulo', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n { name: 'optionValueKey', label: 'Chave valor', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento' },\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: 'color', label: 'Cor', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'indeterminate', label: 'Indeterminado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'linkText', label: 'Texto do link', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'linkUrl', label: 'URL do link', editorType: 'text', group: 'Formato/Comportamento' },\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 // Geral/Validação\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'label', label: 'Label', 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];\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' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Material Design\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n\n // Formato/Comportamento\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: 'hideIcon', label: 'Ocultar ícone', editorType: 'checkbox', group: 'Formato/Comportamento' },\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 // Validação\n { name: 'requiredTrue', label: 'Exigir verdadeiro', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredTrueMessage', label: 'Mensagem: exigir verdadeiro', 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 sliderProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\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 { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true },\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 ] },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true },\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const rangeSliderProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'mode', label: 'Modo', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'single', text: 'Único' },\n { value: 'range', text: 'Faixa' },\n ] },\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 { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento' },\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 ] },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'minDistance', label: 'Distância mínima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true },\n { name: 'maxDistance', label: 'Distância máxima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true },\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 { name: 'displayWith', label: 'DisplayWith (id função)', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'showInputs', label: 'Mostrar inputs', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\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' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', 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:...). 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 { 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í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.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: 'numberFormat.currency', label: 'Moeda', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'numberFormat.currencyPosition', label: 'Posição moeda', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'numberFormat.decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'numberFormat.locale', label: 'Locale', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'showGrouping', label: 'Agrupar milhares', editorType: 'checkbox', 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 // Sem Clear: componente não implementa botão de limpar\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' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:badge). 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: '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 // 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' },\n { name: 'unmaskOnSubmit', label: 'Enviar sem máscara (modelo)', editorType: 'checkbox', group: 'Formato/Comportamento' },\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 // 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\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 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 { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY)', editorType: 'number', 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_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: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/Comportamento\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 },\n { name: 'maxYear', label: 'Ano máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'step', label: 'Step', editorType: 'number', 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","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 { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\nimport { ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport type { FieldControlType, FieldDefinition } 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 { FieldControlType as FCT } from '@praxisui/core';\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 { cpfCnpjProperties } from '../../config/cpf-cnpj.config';\nimport { fileUploadProperties } from '../../config/file-upload.config';\nimport { yearInputProperties } from '../../config/year.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';\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).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).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_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 ];\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\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 }\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 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 (this.controlType as any) === 'searchable-select' ||\n (this.controlType as any) === 'async-select'\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).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).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 (\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 // Inject default for providerOptions from seed.options when present (radio/editor-friendly name)\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 // 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.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 // Defer baseline capture until next tick to absorb any programmatic value patches\n setTimeout(() => {\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 (deferred)');\n } catch {\n this.baselineReady = true;\n }\n }, 0);\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 // 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 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 e valores nulos/strings vazias (exceto boolean/zero).\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 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 const isNullish = cv === null || cv === undefined;\n const isEmptyString = typeof cv === 'string' && cv.trim() === '';\n // Preservar false/0 explicitamente; descartar null/undefined e strings vazias\n if (isNullish || isEmptyString) continue;\n if (isObject(cv)) {\n const nested = this.buildDeltaPatch(cv, isObject(bv) ? bv : undefined);\n if (nested && Object.keys(nested).length) changed[k] = nested;\n } else {\n // Incluir apenas se mudou em relação ao baseline ou se baseline não existe\n if (baseline === null || baseline === undefined || 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 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 { 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 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 rgba(0,0,0,0.06); 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: 6px 4px; cursor: pointer; border-radius: 6px; }\n .field-item.selected { background: rgba(0,0,0,0.04); }\n .rule-badges { display: inline-flex; gap: 6px; }\n .rule-badge { font-size: 10px; padding: 2px 6px; border-radius: 10px; }\n .b-active { background: #e8f5e9; color: #2e7d32; }\n .b-manual { background: #eceff1; color: #455a64; }\n .b-immediate { background: #fff3e0; color: #ef6c00; }\n .b-conflict { background: #ffebee; color: #c62828; }\n .cm-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }\n .rules-empty { opacity: .7; font-style: italic; padding: 8px 0; }\n .rule-row { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 8px 0; border-bottom: 1px dashed rgba(0,0,0,0.06); }\n .rule-actions button { margin-left: 4px; }\n .banner { background: #fff8e1; color: #6d4c41; padding: 8px 12px; border: 1px solid #ffe082; border-radius: 6px; margin-bottom: 8px; display: flex; gap: 8px; align-items: center; }\n .import-panel { background: #f5f5f5; border: 1px solid #e0e0e0; border-radius: 6px; padding: 8px; margin-bottom: 8px; }\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: 6px 8px; border-bottom: 1px dashed rgba(0,0,0,0.06); }\n .kbd { font-family: monospace; background: #eee; padding: 0 4px; border-radius: 3px; }\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 regra de cascata. Clique em “Adicionar”.</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)=\"edit(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 -->\n <mat-expansion-panel [expanded]=\"editing()\">\n <mat-expansion-panel-header>\n <mat-panel-title>Edição de Regra</mat-panel-title>\n <mat-panel-description>Configurar dependentes, execução e mapeamento</mat-panel-description>\n </mat-expansion-panel-header>\n\n <!-- Básico -->\n <mat-expansion-panel [expanded]=\"true\">\n <mat-expansion-panel-header>\n <mat-panel-title>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>Dependentes (CSV)</mat-label>\n <input matInput [(ngModel)]=\"editDepCsv\">\n <mat-hint>Ex.: rotaId,destinoReqId</mat-hint>\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>\n <mat-expansion-panel-header>\n <mat-panel-title>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>\n <mat-expansion-panel-header>\n <mat-panel-title>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 <mat-hint>Preenchido automaticamente a partir de optionValueKey() ou 'id'</mat-hint>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Mapeamento de filtros (tabela) -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>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 <input matInput [(ngModel)]=\"row.key\" placeholder=\"{{row.dep}}\">\n </td>\n <td>\n <input matInput [(ngModel)]=\"row.valuePath\" placeholder=\"{{editValuePath||'id'}}\">\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>\n <mat-expansion-panel-header>\n <mat-panel-title>Preview</mat-panel-title>\n </mat-expansion-panel-header>\n <pre style=\"white-space: pre-wrap; background:#fafafa; padding:8px; border:1px solid #eee; border-radius:6px\">{{ 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\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding:8px 0;\">\n <button mat-stroked-button (click)=\"cancelEdit()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"saveEdit(sel)\">Salvar</button>\n </div>\n </mat-expansion-panel>\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 editDepCsv = '';\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 // 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 }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\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 filteredFields(): Array<FieldDefinition | FieldMetadata> {\n const q = (this.searchValue || '').toLowerCase();\n const labelMap = this.svc.getFieldLabelMap(this.fields);\n return 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 }\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.editing.set(false);\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.editDepCsv = suggested.dependencyFields.join(',');\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.editDepCsv || '')\n .split(',')\n .map((s) => s.trim())\n .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.editDepCsv = deps.join(',');\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.editDepCsv || '').split(',').map((s) => s.trim()).filter(Boolean);\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.editDepCsv || '').split(',').map((s) => s.trim()).filter(Boolean);\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ContextValidatorRegistryService","FCT","i2","i3","i4","i7","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/config/filter-inline-distance-radius.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/filter-inline-relative-period.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/filter-inline-sentiment.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/filter-inline-color-label.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/filter-inline-pipeline-status.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/filter-inline-rating.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/filter-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]{2,}$/' },\n { label: 'URL básica (http/https)', pattern: '/^(https?:\\\\/\\\\/)?[\\\\w.-]+(\\\\\\\\.[\\\\w.-]+)+[\\\\w\\\\-._~:?#@!$&\\'()*+,;=\\\\/]*$/' },\n { label: 'Pelo menos 8 caracteres', pattern: '/^.{8,}$/' },\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).{8,}$/' },\n { label: 'IPv4', pattern: '/^(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)){3}$/' },\n { label: 'MAC address', pattern: '/^([0-9A-Fa-f]{2}:){5}[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\n // Dados/Opções\n {\n name: 'providerOptions',\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. 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: '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 filter-date-range-inline, 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 filter-date-range-inline.' },\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 filter-date-range-inline: 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\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: '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: '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: '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: '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 { EditorProperty } from '../types/editor-property.types';\nimport { rangeSliderProperties } from './range-slider.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 filterInlineDistanceRadiusProperties: 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: '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';\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 filterInlineRelativePeriodProperties: 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: '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';\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 filterInlineSentimentProperties: 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: '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 filterInlineColorLabelProperties: 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';\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 filterInlinePipelineStatusProperties: 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: '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';\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 filterInlineRatingProperties: 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: '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';\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 filterInlineScorePriorityProperties: 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: '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 resolveInlineFilterControlTypeAlias,\n} from '@praxisui/core';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport { dateProperties } from './date.config';\nimport { dateRangeProperties } from './date-range.config';\nimport { filterInlineDistanceRadiusProperties } from './filter-inline-distance-radius.config';\nimport { filterInlineRelativePeriodProperties } from './filter-inline-relative-period.config';\nimport { filterInlineSentimentProperties } from './filter-inline-sentiment.config';\nimport { filterInlineColorLabelProperties } from './filter-inline-color-label.config';\nimport { filterInlinePipelineStatusProperties } from './filter-inline-pipeline-status.config';\nimport { filterInlineRatingProperties } from './filter-inline-rating.config';\nimport { filterInlineScorePriorityProperties } from './filter-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]: filterInlineRatingProperties,\n [INLINE_FILTER_CONTROL_TYPES.DISTANCE_RADIUS]:\n filterInlineDistanceRadiusProperties,\n [INLINE_FILTER_CONTROL_TYPES.PIPELINE_STATUS]:\n filterInlinePipelineStatusProperties,\n [INLINE_FILTER_CONTROL_TYPES.SCORE_PRIORITY]:\n filterInlineScorePriorityProperties,\n [INLINE_FILTER_CONTROL_TYPES.RELATIVE_PERIOD]:\n filterInlineRelativePeriodProperties,\n [INLINE_FILTER_CONTROL_TYPES.SENTIMENT]:\n filterInlineSentimentProperties,\n [INLINE_FILTER_CONTROL_TYPES.COLOR_LABEL]:\n filterInlineColorLabelProperties,\n});\n\nexport function resolveInlineFilterEditorProperties(\n controlType: unknown,\n): EditorProperty[] | undefined {\n const inlineType = resolveInlineFilterControlTypeAlias(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 // Inject default for providerOptions from seed.options when present (radio/editor-friendly name)\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\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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"}
|