@praxisui/metadata-editor 8.0.0-beta.99 → 9.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,7 +21,35 @@ Authoring de coleções editáveis: `projects/praxis-metadata-editor/docs/editab
21
21
  ## Instalação
22
22
 
23
23
  ```bash
24
- npm i @praxisui/metadata-editor
24
+ npm i @praxisui/metadata-editor@latest
25
+ ```
26
+
27
+ ## Minimal standalone field editor
28
+
29
+ ```ts
30
+ import { Component } from '@angular/core';
31
+ import { FieldControlType } from '@praxisui/core';
32
+ import { FieldMetadataEditorComponent } from '@praxisui/metadata-editor';
33
+
34
+ @Component({
35
+ selector: 'app-field-metadata-editor-host',
36
+ standalone: true,
37
+ imports: [FieldMetadataEditorComponent],
38
+ template: `
39
+ <praxis-field-metadata-editor
40
+ [controlType]="controlType"
41
+ [seed]="seed"
42
+ (applied)="applyPatch($event)" />
43
+ `,
44
+ })
45
+ export class FieldMetadataEditorHostComponent {
46
+ controlType = FieldControlType.INPUT;
47
+ seed = { name: 'title', label: 'Title' };
48
+
49
+ applyPatch(patch: unknown): void {
50
+ // Persist through the host-owned metadata/config flow.
51
+ }
52
+ }
25
53
  ```
26
54
 
27
55
  Peer dependencies (Angular v20): `@angular/core`, `@angular/common`.
@@ -467,6 +467,8 @@ class DynamicEditorRendererComponent {
467
467
  : undefined,
468
468
  options: Array.isArray(p.options) ? p.options : undefined,
469
469
  required: p.required,
470
+ searchable: p.searchable,
471
+ searchPlaceholder: p.searchPlaceholder,
470
472
  // meta auxiliar de agrupamento (não exportado)
471
473
  _group: p.group || 'Geral',
472
474
  _inline: p.inline || false,
@@ -891,6 +893,9 @@ const METADATA_EDITOR_EN_US = {
891
893
  'praxis.metadataEditor.arrayFields.control.entityLookup': 'Entity lookup',
892
894
  'praxis.metadataEditor.arrayFields.control.toggle': 'Toggle',
893
895
  'praxis.metadataEditor.arrayFields.control.date': 'Date',
896
+ 'praxis.metadataEditor.fieldResource.label': 'Governed resource',
897
+ 'praxis.metadataEditor.fieldResource.searchPlaceholder': 'Search by name, domain, or path',
898
+ 'praxis.metadataEditor.fieldResource.hint': 'Select from the host governed catalog. The saved value remains resourcePath.',
894
899
  };
895
900
 
896
901
  const METADATA_EDITOR_PT_BR = {
@@ -924,6 +929,9 @@ const METADATA_EDITOR_PT_BR = {
924
929
  'praxis.metadataEditor.arrayFields.control.entityLookup': 'Busca de entidade',
925
930
  'praxis.metadataEditor.arrayFields.control.toggle': 'Liga/desliga',
926
931
  'praxis.metadataEditor.arrayFields.control.date': 'Data',
932
+ 'praxis.metadataEditor.fieldResource.label': 'Recurso governado',
933
+ 'praxis.metadataEditor.fieldResource.searchPlaceholder': 'Buscar por nome, dom\u00ednio ou caminho',
934
+ 'praxis.metadataEditor.fieldResource.hint': 'Selecione no cat\u00e1logo governado do host. O valor gravado continua sendo resourcePath.',
927
935
  };
928
936
 
929
937
  function createPraxisMetadataEditorI18nConfig(options = {}) {
@@ -2049,6 +2057,92 @@ const selectProperties = [
2049
2057
  { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },
2050
2058
  { 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.' },
2051
2059
  { 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.' },
2060
+ {
2061
+ name: 'inlineOverlay.applyMode',
2062
+ label: 'Modo de confirmação',
2063
+ editorType: 'select',
2064
+ group: 'Ações',
2065
+ options: [
2066
+ { value: 'auto', text: 'Automático' },
2067
+ { value: 'explicit', text: 'Aplicar/Cancelar' },
2068
+ ],
2069
+ hint: 'Contrato compartilhado do painel inline. Em inlineMultiSelect, explicit mantém a seleção em rascunho até Aplicar.',
2070
+ },
2071
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
2072
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
2073
+ {
2074
+ name: 'inlineOverlay.actions.apply.appearance',
2075
+ label: 'Aplicar: aparência',
2076
+ editorType: 'select',
2077
+ group: 'Ações',
2078
+ options: [
2079
+ { value: 'filled', text: 'Filled' },
2080
+ { value: 'tonal', text: 'Tonal' },
2081
+ { value: 'outlined', text: 'Outlined' },
2082
+ { value: 'text', text: 'Text' },
2083
+ ],
2084
+ },
2085
+ {
2086
+ name: 'inlineOverlay.actions.apply.colorRole',
2087
+ label: 'Aplicar: papel de cor',
2088
+ editorType: 'select',
2089
+ group: 'Ações',
2090
+ options: [
2091
+ { value: 'primary', text: 'Primary' },
2092
+ { value: 'neutral', text: 'Neutral' },
2093
+ { value: 'danger', text: 'Danger' },
2094
+ ],
2095
+ },
2096
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
2097
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
2098
+ {
2099
+ name: 'inlineOverlay.actions.cancel.appearance',
2100
+ label: 'Cancelar: aparência',
2101
+ editorType: 'select',
2102
+ group: 'Ações',
2103
+ options: [
2104
+ { value: 'text', text: 'Text' },
2105
+ { value: 'outlined', text: 'Outlined' },
2106
+ { value: 'tonal', text: 'Tonal' },
2107
+ { value: 'filled', text: 'Filled' },
2108
+ ],
2109
+ },
2110
+ {
2111
+ name: 'inlineOverlay.actions.cancel.colorRole',
2112
+ label: 'Cancelar: papel de cor',
2113
+ editorType: 'select',
2114
+ group: 'Ações',
2115
+ options: [
2116
+ { value: 'neutral', text: 'Neutral' },
2117
+ { value: 'primary', text: 'Primary' },
2118
+ { value: 'danger', text: 'Danger' },
2119
+ ],
2120
+ },
2121
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
2122
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
2123
+ {
2124
+ name: 'inlineOverlay.actions.clear.appearance',
2125
+ label: 'Limpar: aparência',
2126
+ editorType: 'select',
2127
+ group: 'Ações',
2128
+ options: [
2129
+ { value: 'outlined', text: 'Outlined' },
2130
+ { value: 'text', text: 'Text' },
2131
+ { value: 'tonal', text: 'Tonal' },
2132
+ { value: 'filled', text: 'Filled' },
2133
+ ],
2134
+ },
2135
+ {
2136
+ name: 'inlineOverlay.actions.clear.colorRole',
2137
+ label: 'Limpar: papel de cor',
2138
+ editorType: 'select',
2139
+ group: 'Ações',
2140
+ options: [
2141
+ { value: 'neutral', text: 'Neutral' },
2142
+ { value: 'primary', text: 'Primary' },
2143
+ { value: 'danger', text: 'Danger' },
2144
+ ],
2145
+ },
2052
2146
  // 7) Aparência
2053
2147
  {
2054
2148
  name: 'materialDesign.appearance',
@@ -3565,6 +3659,67 @@ const dateProperties = [
3565
3659
  { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },
3566
3660
  { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2' },
3567
3661
  { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },
3662
+ {
3663
+ name: 'inlineOverlay.applyMode',
3664
+ label: 'Modo de confirmação inline',
3665
+ editorType: 'select',
3666
+ group: 'Ações',
3667
+ options: [
3668
+ { value: 'auto', text: 'Automático' },
3669
+ { value: 'explicit', text: 'Aplicar/Cancelar' },
3670
+ ],
3671
+ hint: 'Contrato compartilhado do painel inline. Em inlineDate, explicit mantém a seleção em rascunho até Aplicar.',
3672
+ },
3673
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
3674
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
3675
+ {
3676
+ name: 'inlineOverlay.actions.apply.appearance',
3677
+ label: 'Aplicar: aparência',
3678
+ editorType: 'select',
3679
+ group: 'Ações',
3680
+ options: [
3681
+ { value: 'filled', text: 'Filled' },
3682
+ { value: 'tonal', text: 'Tonal' },
3683
+ { value: 'outlined', text: 'Outlined' },
3684
+ { value: 'text', text: 'Text' },
3685
+ ],
3686
+ },
3687
+ {
3688
+ name: 'inlineOverlay.actions.apply.colorRole',
3689
+ label: 'Aplicar: papel de cor',
3690
+ editorType: 'select',
3691
+ group: 'Ações',
3692
+ options: [
3693
+ { value: 'primary', text: 'Primary' },
3694
+ { value: 'neutral', text: 'Neutral' },
3695
+ { value: 'danger', text: 'Danger' },
3696
+ ],
3697
+ },
3698
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
3699
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
3700
+ {
3701
+ name: 'inlineOverlay.actions.cancel.appearance',
3702
+ label: 'Cancelar: aparência',
3703
+ editorType: 'select',
3704
+ group: 'Ações',
3705
+ options: [
3706
+ { value: 'text', text: 'Text' },
3707
+ { value: 'outlined', text: 'Outlined' },
3708
+ { value: 'tonal', text: 'Tonal' },
3709
+ { value: 'filled', text: 'Filled' },
3710
+ ],
3711
+ },
3712
+ {
3713
+ name: 'inlineOverlay.actions.cancel.colorRole',
3714
+ label: 'Cancelar: papel de cor',
3715
+ editorType: 'select',
3716
+ group: 'Ações',
3717
+ options: [
3718
+ { value: 'neutral', text: 'Neutral' },
3719
+ { value: 'primary', text: 'Primary' },
3720
+ { value: 'danger', text: 'Danger' },
3721
+ ],
3722
+ },
3568
3723
  ];
3569
3724
 
3570
3725
  const dateRangeProperties = [
@@ -3664,15 +3819,70 @@ const dateRangeProperties = [
3664
3819
  { 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).' },
3665
3820
  { name: 'inlineQuickPresetsAriaLabel', label: 'ARIA atalhos inline', editorType: 'text', group: 'Atalhos', hint: 'Rótulo de acessibilidade do grupo de atalhos rápidos inline.' },
3666
3821
  {
3667
- name: 'inlineQuickPresetsApplyMode', label: 'Modo de aplicação', editorType: 'select', group: 'Atalhos', options: [
3668
- { value: 'auto', text: 'Auto apply' },
3669
- { value: 'confirm', text: 'Confirmar no rodapé' },
3670
- ], hint: 'No inlineDateRange: auto aplica imediatamente; confirm mantém seleção em rascunho até clicar em Aplicar.'
3822
+ name: 'inlineOverlay.applyMode',
3823
+ label: 'Modo de confirmação',
3824
+ editorType: 'select',
3825
+ group: 'Atalhos',
3826
+ options: [
3827
+ { value: 'auto', text: 'Automático' },
3828
+ { value: 'explicit', text: 'Aplicar no rodapé' },
3829
+ ],
3830
+ hint: 'Contrato compartilhado: auto aplica ao selecionar; explicit mantém calendário e presets em rascunho até Aplicar.'
3831
+ },
3832
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Atalhos', hint: 'Label canônico do botão Cancelar no contrato inlineOverlay.' },
3833
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Atalhos', hint: 'Descrição acessível canônica do botão Cancelar.' },
3834
+ {
3835
+ name: 'inlineOverlay.actions.cancel.appearance',
3836
+ label: 'Cancelar: aparência',
3837
+ editorType: 'select',
3838
+ group: 'Atalhos',
3839
+ options: [
3840
+ { value: 'text', text: 'Text' },
3841
+ { value: 'outlined', text: 'Outlined' },
3842
+ { value: 'tonal', text: 'Tonal' },
3843
+ { value: 'filled', text: 'Filled' },
3844
+ ],
3845
+ hint: 'Materializa os tokens do tema para o botão Cancelar.'
3846
+ },
3847
+ {
3848
+ name: 'inlineOverlay.actions.cancel.colorRole',
3849
+ label: 'Cancelar: papel de cor',
3850
+ editorType: 'select',
3851
+ group: 'Atalhos',
3852
+ options: [
3853
+ { value: 'neutral', text: 'Neutral' },
3854
+ { value: 'primary', text: 'Primary' },
3855
+ { value: 'danger', text: 'Danger' },
3856
+ ],
3857
+ hint: 'Papel semântico de cor do botão Cancelar.'
3858
+ },
3859
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Atalhos', hint: 'Label canônico do botão Aplicar no contrato inlineOverlay.' },
3860
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Atalhos', hint: 'Descrição acessível canônica do botão Aplicar.' },
3861
+ {
3862
+ name: 'inlineOverlay.actions.apply.appearance',
3863
+ label: 'Aplicar: aparência',
3864
+ editorType: 'select',
3865
+ group: 'Atalhos',
3866
+ options: [
3867
+ { value: 'filled', text: 'Filled' },
3868
+ { value: 'tonal', text: 'Tonal' },
3869
+ { value: 'outlined', text: 'Outlined' },
3870
+ { value: 'text', text: 'Text' },
3871
+ ],
3872
+ hint: 'Materializa os tokens do tema para o botão Aplicar.'
3873
+ },
3874
+ {
3875
+ name: 'inlineOverlay.actions.apply.colorRole',
3876
+ label: 'Aplicar: papel de cor',
3877
+ editorType: 'select',
3878
+ group: 'Atalhos',
3879
+ options: [
3880
+ { value: 'primary', text: 'Primary' },
3881
+ { value: 'neutral', text: 'Neutral' },
3882
+ { value: 'danger', text: 'Danger' },
3883
+ ],
3884
+ hint: 'Papel semântico de cor do botão Aplicar.'
3671
3885
  },
3672
- { name: 'inlineQuickPresetsCancelLabel', label: 'Label botão cancelar', editorType: 'text', group: 'Atalhos', hint: 'Texto do botão de cancelamento no rodapé do overlay.' },
3673
- { 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.' },
3674
- { name: 'inlineQuickPresetsApplyLabel', label: 'Label botão aplicar', editorType: 'text', group: 'Atalhos', hint: 'Texto do botão de aplicar no rodapé do overlay.' },
3675
- { 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.' },
3676
3886
  // Ações
3677
3887
  { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', hint: 'Mostra botão para limpar valor.' },
3678
3888
  { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: "Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar." },
@@ -4061,6 +4271,92 @@ const timeRangeProperties = [
4061
4271
  group: 'Formato/Comportamento',
4062
4272
  hint: 'JSON array com turnos para colorir a barra (ex.: [{\"id\":\"manha\",\"start\":\"06:00\",\"end\":\"12:00\",\"color\":\"#0a84ff\"}]).',
4063
4273
  },
4274
+ {
4275
+ name: 'inlineOverlay.applyMode',
4276
+ label: 'Modo de aplicação do painel',
4277
+ editorType: 'select',
4278
+ group: 'Ações',
4279
+ hint: 'Use explicit para manter alterações em rascunho até Aplicar.',
4280
+ options: [
4281
+ { text: 'Automático', value: 'auto' },
4282
+ { text: 'Explícito', value: 'explicit' },
4283
+ ],
4284
+ },
4285
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
4286
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
4287
+ {
4288
+ name: 'inlineOverlay.actions.apply.appearance',
4289
+ label: 'Aplicar: aparência',
4290
+ editorType: 'select',
4291
+ group: 'Ações',
4292
+ options: [
4293
+ { text: 'Filled', value: 'filled' },
4294
+ { text: 'Tonal', value: 'tonal' },
4295
+ { text: 'Outlined', value: 'outlined' },
4296
+ { text: 'Text', value: 'text' },
4297
+ ],
4298
+ },
4299
+ {
4300
+ name: 'inlineOverlay.actions.apply.colorRole',
4301
+ label: 'Aplicar: papel de cor',
4302
+ editorType: 'select',
4303
+ group: 'Ações',
4304
+ options: [
4305
+ { text: 'Primary', value: 'primary' },
4306
+ { text: 'Neutral', value: 'neutral' },
4307
+ { text: 'Danger', value: 'danger' },
4308
+ ],
4309
+ },
4310
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
4311
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
4312
+ {
4313
+ name: 'inlineOverlay.actions.cancel.appearance',
4314
+ label: 'Cancelar: aparência',
4315
+ editorType: 'select',
4316
+ group: 'Ações',
4317
+ options: [
4318
+ { text: 'Text', value: 'text' },
4319
+ { text: 'Outlined', value: 'outlined' },
4320
+ { text: 'Tonal', value: 'tonal' },
4321
+ { text: 'Filled', value: 'filled' },
4322
+ ],
4323
+ },
4324
+ {
4325
+ name: 'inlineOverlay.actions.cancel.colorRole',
4326
+ label: 'Cancelar: papel de cor',
4327
+ editorType: 'select',
4328
+ group: 'Ações',
4329
+ options: [
4330
+ { text: 'Neutral', value: 'neutral' },
4331
+ { text: 'Primary', value: 'primary' },
4332
+ { text: 'Danger', value: 'danger' },
4333
+ ],
4334
+ },
4335
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
4336
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
4337
+ {
4338
+ name: 'inlineOverlay.actions.clear.appearance',
4339
+ label: 'Limpar: aparência',
4340
+ editorType: 'select',
4341
+ group: 'Ações',
4342
+ options: [
4343
+ { text: 'Outlined', value: 'outlined' },
4344
+ { text: 'Text', value: 'text' },
4345
+ { text: 'Tonal', value: 'tonal' },
4346
+ { text: 'Filled', value: 'filled' },
4347
+ ],
4348
+ },
4349
+ {
4350
+ name: 'inlineOverlay.actions.clear.colorRole',
4351
+ label: 'Limpar: papel de cor',
4352
+ editorType: 'select',
4353
+ group: 'Ações',
4354
+ options: [
4355
+ { text: 'Neutral', value: 'neutral' },
4356
+ { text: 'Primary', value: 'primary' },
4357
+ { text: 'Danger', value: 'danger' },
4358
+ ],
4359
+ },
4064
4360
  { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', hint: 'Abre o seletor em modo tela cheia (UX mobile).' },
4065
4361
  { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },
4066
4362
  { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },
@@ -5025,6 +5321,95 @@ const rangeSliderProperties = [
5025
5321
  group: 'Formato/Comportamento',
5026
5322
  hint: 'Objeto JSON opcional. Ex.: {\"minLabel\":\"Mín.\",\"maxLabel\":\"Máx.\",\"valueLabel\":\"Valor\",\"quickPresetsLabel\":\"Faixas\"}',
5027
5323
  },
5324
+ {
5325
+ name: 'inlineOverlay.applyMode',
5326
+ label: 'Overlay: modo de aplicação',
5327
+ editorType: 'select',
5328
+ group: 'Ações',
5329
+ options: [
5330
+ { value: 'auto', text: 'Aplicar ao alterar' },
5331
+ { value: 'explicit', text: 'Aplicar/Cancelar' },
5332
+ ],
5333
+ hint: 'Define se o painel inline comita automaticamente ou mantém rascunho até Aplicar.',
5334
+ },
5335
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
5336
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
5337
+ {
5338
+ name: 'inlineOverlay.actions.apply.appearance',
5339
+ label: 'Aplicar: aparência',
5340
+ editorType: 'select',
5341
+ group: 'Ações',
5342
+ options: [
5343
+ { value: 'filled', text: 'Preenchido' },
5344
+ { value: 'tonal', text: 'Tonal' },
5345
+ { value: 'outlined', text: 'Contornado' },
5346
+ { value: 'text', text: 'Texto' },
5347
+ ],
5348
+ },
5349
+ {
5350
+ name: 'inlineOverlay.actions.apply.colorRole',
5351
+ label: 'Aplicar: cor semântica',
5352
+ editorType: 'select',
5353
+ group: 'Ações',
5354
+ options: [
5355
+ { value: 'primary', text: 'Primária' },
5356
+ { value: 'secondary', text: 'Secundária' },
5357
+ { value: 'neutral', text: 'Neutra' },
5358
+ { value: 'danger', text: 'Perigo' },
5359
+ ],
5360
+ },
5361
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
5362
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
5363
+ {
5364
+ name: 'inlineOverlay.actions.cancel.appearance',
5365
+ label: 'Cancelar: aparência',
5366
+ editorType: 'select',
5367
+ group: 'Ações',
5368
+ options: [
5369
+ { value: 'text', text: 'Texto' },
5370
+ { value: 'outlined', text: 'Contornado' },
5371
+ { value: 'tonal', text: 'Tonal' },
5372
+ { value: 'filled', text: 'Preenchido' },
5373
+ ],
5374
+ },
5375
+ {
5376
+ name: 'inlineOverlay.actions.cancel.colorRole',
5377
+ label: 'Cancelar: cor semântica',
5378
+ editorType: 'select',
5379
+ group: 'Ações',
5380
+ options: [
5381
+ { value: 'neutral', text: 'Neutra' },
5382
+ { value: 'secondary', text: 'Secundária' },
5383
+ { value: 'primary', text: 'Primária' },
5384
+ { value: 'danger', text: 'Perigo' },
5385
+ ],
5386
+ },
5387
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
5388
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
5389
+ {
5390
+ name: 'inlineOverlay.actions.clear.appearance',
5391
+ label: 'Limpar: aparência',
5392
+ editorType: 'select',
5393
+ group: 'Ações',
5394
+ options: [
5395
+ { value: 'outlined', text: 'Contornado' },
5396
+ { value: 'text', text: 'Texto' },
5397
+ { value: 'tonal', text: 'Tonal' },
5398
+ { value: 'filled', text: 'Preenchido' },
5399
+ ],
5400
+ },
5401
+ {
5402
+ name: 'inlineOverlay.actions.clear.colorRole',
5403
+ label: 'Limpar: cor semântica',
5404
+ editorType: 'select',
5405
+ group: 'Ações',
5406
+ options: [
5407
+ { value: 'neutral', text: 'Neutra' },
5408
+ { value: 'secondary', text: 'Secundária' },
5409
+ { value: 'primary', text: 'Primária' },
5410
+ { value: 'danger', text: 'Perigo' },
5411
+ ],
5412
+ },
5028
5413
  // Validação
5029
5414
  { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor mínimo permitido.' },
5030
5415
  { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true, hint: 'Valor máximo permitido.' },
@@ -5227,6 +5612,20 @@ const priceRangeProperties = [
5227
5612
  ],
5228
5613
  hint: 'Controla a exibição das marcações no slider inline.',
5229
5614
  },
5615
+ {
5616
+ name: 'marks',
5617
+ label: 'Marcadores (JSON)',
5618
+ editorType: 'textarea',
5619
+ group: 'Formato/Comportamento',
5620
+ hint: 'Array JSON usado pelo range monetário inline. Ex.: [{"value":0,"label":"Piso"},{"value":50000,"label":"Meta","tone":"info"}].',
5621
+ },
5622
+ {
5623
+ name: 'semanticBands',
5624
+ label: 'Bandas semânticas (JSON)',
5625
+ editorType: 'textarea',
5626
+ group: 'Formato/Comportamento',
5627
+ hint: 'Array JSON usado pelo range monetário inline. Ex.: [{"start":0,"end":30000,"label":"Baixo","tone":"warning"}].',
5628
+ },
5230
5629
  {
5231
5630
  name: 'currency',
5232
5631
  label: 'Moeda',
@@ -5282,6 +5681,95 @@ const priceRangeProperties = [
5282
5681
  { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', hint: 'Texto ao passar o mouse. Ex.: "Limpar".' },
5283
5682
  { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', hint: 'Descrição acessível. Ex.: "Limpar valores".' },
5284
5683
  { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', hint: 'Aparece só com valor. Ex.: evita botão vazio.' },
5684
+ {
5685
+ name: 'inlineOverlay.applyMode',
5686
+ label: 'Overlay: modo de aplicação',
5687
+ editorType: 'select',
5688
+ group: 'Ações',
5689
+ options: [
5690
+ { value: 'explicit', text: 'Aplicar/Cancelar' },
5691
+ { value: 'auto', text: 'Aplicar ao alterar' },
5692
+ ],
5693
+ hint: 'No range monetário inline, o padrão é Aplicar/Cancelar para evitar filtros acidentais.',
5694
+ },
5695
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
5696
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
5697
+ {
5698
+ name: 'inlineOverlay.actions.apply.appearance',
5699
+ label: 'Aplicar: aparência',
5700
+ editorType: 'select',
5701
+ group: 'Ações',
5702
+ options: [
5703
+ { value: 'filled', text: 'Preenchido' },
5704
+ { value: 'tonal', text: 'Tonal' },
5705
+ { value: 'outlined', text: 'Contornado' },
5706
+ { value: 'text', text: 'Texto' },
5707
+ ],
5708
+ },
5709
+ {
5710
+ name: 'inlineOverlay.actions.apply.colorRole',
5711
+ label: 'Aplicar: cor semântica',
5712
+ editorType: 'select',
5713
+ group: 'Ações',
5714
+ options: [
5715
+ { value: 'primary', text: 'Primária' },
5716
+ { value: 'secondary', text: 'Secundária' },
5717
+ { value: 'neutral', text: 'Neutra' },
5718
+ { value: 'danger', text: 'Perigo' },
5719
+ ],
5720
+ },
5721
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
5722
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
5723
+ {
5724
+ name: 'inlineOverlay.actions.cancel.appearance',
5725
+ label: 'Cancelar: aparência',
5726
+ editorType: 'select',
5727
+ group: 'Ações',
5728
+ options: [
5729
+ { value: 'text', text: 'Texto' },
5730
+ { value: 'outlined', text: 'Contornado' },
5731
+ { value: 'tonal', text: 'Tonal' },
5732
+ { value: 'filled', text: 'Preenchido' },
5733
+ ],
5734
+ },
5735
+ {
5736
+ name: 'inlineOverlay.actions.cancel.colorRole',
5737
+ label: 'Cancelar: cor semântica',
5738
+ editorType: 'select',
5739
+ group: 'Ações',
5740
+ options: [
5741
+ { value: 'neutral', text: 'Neutra' },
5742
+ { value: 'secondary', text: 'Secundária' },
5743
+ { value: 'primary', text: 'Primária' },
5744
+ { value: 'danger', text: 'Perigo' },
5745
+ ],
5746
+ },
5747
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
5748
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
5749
+ {
5750
+ name: 'inlineOverlay.actions.clear.appearance',
5751
+ label: 'Limpar: aparência',
5752
+ editorType: 'select',
5753
+ group: 'Ações',
5754
+ options: [
5755
+ { value: 'outlined', text: 'Contornado' },
5756
+ { value: 'text', text: 'Texto' },
5757
+ { value: 'tonal', text: 'Tonal' },
5758
+ { value: 'filled', text: 'Preenchido' },
5759
+ ],
5760
+ },
5761
+ {
5762
+ name: 'inlineOverlay.actions.clear.colorRole',
5763
+ label: 'Limpar: cor semântica',
5764
+ editorType: 'select',
5765
+ group: 'Ações',
5766
+ options: [
5767
+ { value: 'neutral', text: 'Neutra' },
5768
+ { value: 'secondary', text: 'Secundária' },
5769
+ { value: 'primary', text: 'Primária' },
5770
+ { value: 'danger', text: 'Perigo' },
5771
+ ],
5772
+ },
5285
5773
  // Aparência/Material
5286
5774
  { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Aparência/Material', hint: 'Estilo do campo. Ex.: outline para borda.', options: [
5287
5775
  { value: 'fill', text: 'Fill' },
@@ -5913,8 +6401,13 @@ function cloneProperty$5(prop) {
5913
6401
  : prop.options,
5914
6402
  };
5915
6403
  }
6404
+ function isSharedInlineOverlayProperty$3(prop) {
6405
+ return prop.name.startsWith('inlineOverlay.');
6406
+ }
5916
6407
  const inlineRelativePeriodProperties = [
5917
- ...selectProperties.map((prop) => cloneProperty$5(prop)),
6408
+ ...selectProperties
6409
+ .filter((prop) => !isSharedInlineOverlayProperty$3(prop))
6410
+ .map((prop) => cloneProperty$5(prop)),
5918
6411
  {
5919
6412
  name: 'relativePeriodSubtitle',
5920
6413
  label: 'Subtitulo do painel',
@@ -6011,6 +6504,92 @@ const inlineRelativePeriodProperties = [
6011
6504
  editorType: 'checkbox',
6012
6505
  group: 'Formato/Comportamento',
6013
6506
  },
6507
+ {
6508
+ name: 'inlineOverlay.applyMode',
6509
+ label: 'Modo de aplicação do painel',
6510
+ editorType: 'select',
6511
+ group: 'Ações',
6512
+ hint: 'Use explicit para manter alterações em rascunho até Aplicar.',
6513
+ options: [
6514
+ { text: 'Automático', value: 'auto' },
6515
+ { text: 'Explícito', value: 'explicit' },
6516
+ ],
6517
+ },
6518
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
6519
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
6520
+ {
6521
+ name: 'inlineOverlay.actions.apply.appearance',
6522
+ label: 'Aplicar: aparência',
6523
+ editorType: 'select',
6524
+ group: 'Ações',
6525
+ options: [
6526
+ { text: 'Filled', value: 'filled' },
6527
+ { text: 'Tonal', value: 'tonal' },
6528
+ { text: 'Outlined', value: 'outlined' },
6529
+ { text: 'Text', value: 'text' },
6530
+ ],
6531
+ },
6532
+ {
6533
+ name: 'inlineOverlay.actions.apply.colorRole',
6534
+ label: 'Aplicar: papel de cor',
6535
+ editorType: 'select',
6536
+ group: 'Ações',
6537
+ options: [
6538
+ { text: 'Primary', value: 'primary' },
6539
+ { text: 'Neutral', value: 'neutral' },
6540
+ { text: 'Danger', value: 'danger' },
6541
+ ],
6542
+ },
6543
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
6544
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
6545
+ {
6546
+ name: 'inlineOverlay.actions.cancel.appearance',
6547
+ label: 'Cancelar: aparência',
6548
+ editorType: 'select',
6549
+ group: 'Ações',
6550
+ options: [
6551
+ { text: 'Text', value: 'text' },
6552
+ { text: 'Outlined', value: 'outlined' },
6553
+ { text: 'Tonal', value: 'tonal' },
6554
+ { text: 'Filled', value: 'filled' },
6555
+ ],
6556
+ },
6557
+ {
6558
+ name: 'inlineOverlay.actions.cancel.colorRole',
6559
+ label: 'Cancelar: papel de cor',
6560
+ editorType: 'select',
6561
+ group: 'Ações',
6562
+ options: [
6563
+ { text: 'Neutral', value: 'neutral' },
6564
+ { text: 'Primary', value: 'primary' },
6565
+ { text: 'Danger', value: 'danger' },
6566
+ ],
6567
+ },
6568
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
6569
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
6570
+ {
6571
+ name: 'inlineOverlay.actions.clear.appearance',
6572
+ label: 'Limpar: aparência',
6573
+ editorType: 'select',
6574
+ group: 'Ações',
6575
+ options: [
6576
+ { text: 'Outlined', value: 'outlined' },
6577
+ { text: 'Text', value: 'text' },
6578
+ { text: 'Tonal', value: 'tonal' },
6579
+ { text: 'Filled', value: 'filled' },
6580
+ ],
6581
+ },
6582
+ {
6583
+ name: 'inlineOverlay.actions.clear.colorRole',
6584
+ label: 'Limpar: papel de cor',
6585
+ editorType: 'select',
6586
+ group: 'Ações',
6587
+ options: [
6588
+ { text: 'Neutral', value: 'neutral' },
6589
+ { text: 'Primary', value: 'primary' },
6590
+ { text: 'Danger', value: 'danger' },
6591
+ ],
6592
+ },
6014
6593
  {
6015
6594
  name: 'relativePeriodIcon',
6016
6595
  label: 'Icone do trigger',
@@ -6099,8 +6678,13 @@ function cloneProperty$4(prop) {
6099
6678
  : prop.options,
6100
6679
  };
6101
6680
  }
6681
+ function isSharedInlineOverlayProperty$2(prop) {
6682
+ return prop.name.startsWith('inlineOverlay.');
6683
+ }
6102
6684
  const inlineSentimentProperties = [
6103
- ...selectProperties.map((prop) => cloneProperty$4(prop)),
6685
+ ...selectProperties
6686
+ .filter((prop) => !isSharedInlineOverlayProperty$2(prop))
6687
+ .map((prop) => cloneProperty$4(prop)),
6104
6688
  {
6105
6689
  name: 'sentimentSubtitle',
6106
6690
  label: 'Subtitulo do painel',
@@ -6195,6 +6779,95 @@ const inlineSentimentProperties = [
6195
6779
  editorType: 'checkbox',
6196
6780
  group: 'Formato/Comportamento',
6197
6781
  },
6782
+ {
6783
+ name: 'inlineOverlay.applyMode',
6784
+ label: 'Overlay: modo de aplicação',
6785
+ editorType: 'select',
6786
+ group: 'Ações',
6787
+ options: [
6788
+ { value: 'auto', text: 'Aplicar ao alterar' },
6789
+ { value: 'explicit', text: 'Aplicar/Cancelar' },
6790
+ ],
6791
+ hint: 'Define se o painel inline comita automaticamente ou mantém rascunho até Aplicar.',
6792
+ },
6793
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
6794
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
6795
+ {
6796
+ name: 'inlineOverlay.actions.apply.appearance',
6797
+ label: 'Aplicar: aparência',
6798
+ editorType: 'select',
6799
+ group: 'Ações',
6800
+ options: [
6801
+ { value: 'filled', text: 'Preenchido' },
6802
+ { value: 'tonal', text: 'Tonal' },
6803
+ { value: 'outlined', text: 'Contornado' },
6804
+ { value: 'text', text: 'Texto' },
6805
+ ],
6806
+ },
6807
+ {
6808
+ name: 'inlineOverlay.actions.apply.colorRole',
6809
+ label: 'Aplicar: cor semântica',
6810
+ editorType: 'select',
6811
+ group: 'Ações',
6812
+ options: [
6813
+ { value: 'primary', text: 'Primária' },
6814
+ { value: 'secondary', text: 'Secundária' },
6815
+ { value: 'neutral', text: 'Neutra' },
6816
+ { value: 'danger', text: 'Perigo' },
6817
+ ],
6818
+ },
6819
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
6820
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
6821
+ {
6822
+ name: 'inlineOverlay.actions.cancel.appearance',
6823
+ label: 'Cancelar: aparência',
6824
+ editorType: 'select',
6825
+ group: 'Ações',
6826
+ options: [
6827
+ { value: 'text', text: 'Texto' },
6828
+ { value: 'outlined', text: 'Contornado' },
6829
+ { value: 'tonal', text: 'Tonal' },
6830
+ { value: 'filled', text: 'Preenchido' },
6831
+ ],
6832
+ },
6833
+ {
6834
+ name: 'inlineOverlay.actions.cancel.colorRole',
6835
+ label: 'Cancelar: cor semântica',
6836
+ editorType: 'select',
6837
+ group: 'Ações',
6838
+ options: [
6839
+ { value: 'neutral', text: 'Neutra' },
6840
+ { value: 'secondary', text: 'Secundária' },
6841
+ { value: 'primary', text: 'Primária' },
6842
+ { value: 'danger', text: 'Perigo' },
6843
+ ],
6844
+ },
6845
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
6846
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
6847
+ {
6848
+ name: 'inlineOverlay.actions.clear.appearance',
6849
+ label: 'Limpar: aparência',
6850
+ editorType: 'select',
6851
+ group: 'Ações',
6852
+ options: [
6853
+ { value: 'outlined', text: 'Contornado' },
6854
+ { value: 'text', text: 'Texto' },
6855
+ { value: 'tonal', text: 'Tonal' },
6856
+ { value: 'filled', text: 'Preenchido' },
6857
+ ],
6858
+ },
6859
+ {
6860
+ name: 'inlineOverlay.actions.clear.colorRole',
6861
+ label: 'Limpar: cor semântica',
6862
+ editorType: 'select',
6863
+ group: 'Ações',
6864
+ options: [
6865
+ { value: 'neutral', text: 'Neutra' },
6866
+ { value: 'secondary', text: 'Secundária' },
6867
+ { value: 'primary', text: 'Primária' },
6868
+ { value: 'danger', text: 'Perigo' },
6869
+ ],
6870
+ },
6198
6871
  {
6199
6872
  name: 'sentimentIcon',
6200
6873
  label: 'Icone do trigger',
@@ -6280,8 +6953,13 @@ function cloneProperty$3(prop) {
6280
6953
  : prop.options,
6281
6954
  };
6282
6955
  }
6956
+ function isSharedInlineOverlayProperty$1(prop) {
6957
+ return prop.name.startsWith('inlineOverlay.');
6958
+ }
6283
6959
  const inlineColorLabelProperties = [
6284
- ...selectProperties.map((prop) => cloneProperty$3(prop)),
6960
+ ...selectProperties
6961
+ .filter((prop) => !isSharedInlineOverlayProperty$1(prop))
6962
+ .map((prop) => cloneProperty$3(prop)),
6285
6963
  {
6286
6964
  name: 'colorLabelSubtitle',
6287
6965
  label: 'Subtitulo do painel',
@@ -6328,6 +7006,95 @@ const inlineColorLabelProperties = [
6328
7006
  group: 'Formato/Comportamento',
6329
7007
  hint: 'Em modo single, fecha o popover apos selecionar uma opcao.',
6330
7008
  },
7009
+ {
7010
+ name: 'inlineOverlay.applyMode',
7011
+ label: 'Overlay: modo de aplicação',
7012
+ editorType: 'select',
7013
+ group: 'Ações',
7014
+ options: [
7015
+ { value: 'auto', text: 'Aplicar ao alterar' },
7016
+ { value: 'explicit', text: 'Aplicar/Cancelar' },
7017
+ ],
7018
+ hint: 'Define se o painel inline comita automaticamente ou mantém rascunho até Aplicar.',
7019
+ },
7020
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
7021
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
7022
+ {
7023
+ name: 'inlineOverlay.actions.apply.appearance',
7024
+ label: 'Aplicar: aparência',
7025
+ editorType: 'select',
7026
+ group: 'Ações',
7027
+ options: [
7028
+ { value: 'filled', text: 'Preenchido' },
7029
+ { value: 'tonal', text: 'Tonal' },
7030
+ { value: 'outlined', text: 'Contornado' },
7031
+ { value: 'text', text: 'Texto' },
7032
+ ],
7033
+ },
7034
+ {
7035
+ name: 'inlineOverlay.actions.apply.colorRole',
7036
+ label: 'Aplicar: cor semântica',
7037
+ editorType: 'select',
7038
+ group: 'Ações',
7039
+ options: [
7040
+ { value: 'primary', text: 'Primária' },
7041
+ { value: 'secondary', text: 'Secundária' },
7042
+ { value: 'neutral', text: 'Neutra' },
7043
+ { value: 'danger', text: 'Perigo' },
7044
+ ],
7045
+ },
7046
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
7047
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
7048
+ {
7049
+ name: 'inlineOverlay.actions.cancel.appearance',
7050
+ label: 'Cancelar: aparência',
7051
+ editorType: 'select',
7052
+ group: 'Ações',
7053
+ options: [
7054
+ { value: 'text', text: 'Texto' },
7055
+ { value: 'outlined', text: 'Contornado' },
7056
+ { value: 'tonal', text: 'Tonal' },
7057
+ { value: 'filled', text: 'Preenchido' },
7058
+ ],
7059
+ },
7060
+ {
7061
+ name: 'inlineOverlay.actions.cancel.colorRole',
7062
+ label: 'Cancelar: cor semântica',
7063
+ editorType: 'select',
7064
+ group: 'Ações',
7065
+ options: [
7066
+ { value: 'neutral', text: 'Neutra' },
7067
+ { value: 'secondary', text: 'Secundária' },
7068
+ { value: 'primary', text: 'Primária' },
7069
+ { value: 'danger', text: 'Perigo' },
7070
+ ],
7071
+ },
7072
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
7073
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
7074
+ {
7075
+ name: 'inlineOverlay.actions.clear.appearance',
7076
+ label: 'Limpar: aparência',
7077
+ editorType: 'select',
7078
+ group: 'Ações',
7079
+ options: [
7080
+ { value: 'outlined', text: 'Contornado' },
7081
+ { value: 'text', text: 'Texto' },
7082
+ { value: 'tonal', text: 'Tonal' },
7083
+ { value: 'filled', text: 'Preenchido' },
7084
+ ],
7085
+ },
7086
+ {
7087
+ name: 'inlineOverlay.actions.clear.colorRole',
7088
+ label: 'Limpar: cor semântica',
7089
+ editorType: 'select',
7090
+ group: 'Ações',
7091
+ options: [
7092
+ { value: 'neutral', text: 'Neutra' },
7093
+ { value: 'secondary', text: 'Secundária' },
7094
+ { value: 'primary', text: 'Primária' },
7095
+ { value: 'danger', text: 'Perigo' },
7096
+ ],
7097
+ },
6331
7098
  {
6332
7099
  name: 'colorLabelSelectionTitle',
6333
7100
  label: 'Titulo dos badges',
@@ -6434,8 +7201,13 @@ function cloneProperty$2(prop) {
6434
7201
  : prop.options,
6435
7202
  };
6436
7203
  }
7204
+ function isSharedInlineOverlayProperty(prop) {
7205
+ return prop.name.startsWith('inlineOverlay.');
7206
+ }
6437
7207
  const inlinePipelineStatusProperties = [
6438
- ...selectProperties.map((prop) => cloneProperty$2(prop)),
7208
+ ...selectProperties
7209
+ .filter((prop) => !isSharedInlineOverlayProperty(prop))
7210
+ .map((prop) => cloneProperty$2(prop)),
6439
7211
  {
6440
7212
  name: 'pipelineSubtitle',
6441
7213
  label: 'Subtitulo do painel',
@@ -6520,6 +7292,92 @@ const inlinePipelineStatusProperties = [
6520
7292
  editorType: 'text',
6521
7293
  group: 'Formato/Comportamento',
6522
7294
  },
7295
+ {
7296
+ name: 'inlineOverlay.applyMode',
7297
+ label: 'Modo de aplicação do painel',
7298
+ editorType: 'select',
7299
+ group: 'Ações',
7300
+ hint: 'Use explicit para manter alterações em rascunho até Aplicar.',
7301
+ options: [
7302
+ { text: 'Automático', value: 'auto' },
7303
+ { text: 'Explícito', value: 'explicit' },
7304
+ ],
7305
+ },
7306
+ { name: 'inlineOverlay.actions.apply.label', label: 'Aplicar: label', editorType: 'text', group: 'Ações' },
7307
+ { name: 'inlineOverlay.actions.apply.ariaLabel', label: 'Aplicar: aria-label', editorType: 'text', group: 'Ações' },
7308
+ {
7309
+ name: 'inlineOverlay.actions.apply.appearance',
7310
+ label: 'Aplicar: aparência',
7311
+ editorType: 'select',
7312
+ group: 'Ações',
7313
+ options: [
7314
+ { text: 'Filled', value: 'filled' },
7315
+ { text: 'Tonal', value: 'tonal' },
7316
+ { text: 'Outlined', value: 'outlined' },
7317
+ { text: 'Text', value: 'text' },
7318
+ ],
7319
+ },
7320
+ {
7321
+ name: 'inlineOverlay.actions.apply.colorRole',
7322
+ label: 'Aplicar: papel de cor',
7323
+ editorType: 'select',
7324
+ group: 'Ações',
7325
+ options: [
7326
+ { text: 'Primary', value: 'primary' },
7327
+ { text: 'Neutral', value: 'neutral' },
7328
+ { text: 'Danger', value: 'danger' },
7329
+ ],
7330
+ },
7331
+ { name: 'inlineOverlay.actions.cancel.label', label: 'Cancelar: label', editorType: 'text', group: 'Ações' },
7332
+ { name: 'inlineOverlay.actions.cancel.ariaLabel', label: 'Cancelar: aria-label', editorType: 'text', group: 'Ações' },
7333
+ {
7334
+ name: 'inlineOverlay.actions.cancel.appearance',
7335
+ label: 'Cancelar: aparência',
7336
+ editorType: 'select',
7337
+ group: 'Ações',
7338
+ options: [
7339
+ { text: 'Text', value: 'text' },
7340
+ { text: 'Outlined', value: 'outlined' },
7341
+ { text: 'Tonal', value: 'tonal' },
7342
+ { text: 'Filled', value: 'filled' },
7343
+ ],
7344
+ },
7345
+ {
7346
+ name: 'inlineOverlay.actions.cancel.colorRole',
7347
+ label: 'Cancelar: papel de cor',
7348
+ editorType: 'select',
7349
+ group: 'Ações',
7350
+ options: [
7351
+ { text: 'Neutral', value: 'neutral' },
7352
+ { text: 'Primary', value: 'primary' },
7353
+ { text: 'Danger', value: 'danger' },
7354
+ ],
7355
+ },
7356
+ { name: 'inlineOverlay.actions.clear.label', label: 'Limpar: label', editorType: 'text', group: 'Ações' },
7357
+ { name: 'inlineOverlay.actions.clear.ariaLabel', label: 'Limpar: aria-label', editorType: 'text', group: 'Ações' },
7358
+ {
7359
+ name: 'inlineOverlay.actions.clear.appearance',
7360
+ label: 'Limpar: aparência',
7361
+ editorType: 'select',
7362
+ group: 'Ações',
7363
+ options: [
7364
+ { text: 'Outlined', value: 'outlined' },
7365
+ { text: 'Text', value: 'text' },
7366
+ { text: 'Tonal', value: 'tonal' },
7367
+ { text: 'Filled', value: 'filled' },
7368
+ ],
7369
+ },
7370
+ {
7371
+ name: 'inlineOverlay.actions.clear.colorRole',
7372
+ label: 'Limpar: papel de cor',
7373
+ editorType: 'select',
7374
+ group: 'Ações',
7375
+ options: [
7376
+ { text: 'Neutral', value: 'neutral' },
7377
+ { text: 'Primary', value: 'primary' },
7378
+ { text: 'Danger', value: 'danger' },
7379
+ ],
7380
+ },
6523
7381
  {
6524
7382
  name: 'pipelineChipMaxVisible',
6525
7383
  label: 'Max labels no chip',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/metadata-editor",
3
- "version": "8.0.0-beta.99",
3
+ "version": "9.0.0-beta.1",
4
4
  "description": "Metadata editor for Praxis UI fields and components with runtime integration.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -8,10 +8,10 @@
8
8
  "@angular/cdk": "^21.0.0",
9
9
  "@angular/forms": "^21.0.0",
10
10
  "@angular/material": "^21.0.0",
11
- "@praxisui/ai": "^8.0.0-beta.99",
12
- "@praxisui/core": "^8.0.0-beta.99",
13
- "@praxisui/dynamic-fields": "^8.0.0-beta.99",
14
- "@praxisui/settings-panel": "^8.0.0-beta.99",
11
+ "@praxisui/ai": "^9.0.0-beta.1",
12
+ "@praxisui/core": "^9.0.0-beta.1",
13
+ "@praxisui/dynamic-fields": "^9.0.0-beta.1",
14
+ "@praxisui/settings-panel": "^9.0.0-beta.1",
15
15
  "rxjs": "~7.8.0"
16
16
  },
17
17
  "dependencies": {