@praxisui/core 3.0.0-beta.6 → 3.0.0-beta.8

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Type, Provider, ErrorHandler, EnvironmentProviders, EventEmitter, OnInit, OnChanges, OnDestroy, SimpleChanges, ElementRef, Renderer2 } from '@angular/core';
2
+ import { InjectionToken, Type, Provider, ErrorHandler, EnvironmentProviders, OnChanges, EventEmitter, SimpleChanges, OnInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { Observable, BehaviorSubject } from 'rxjs';
5
5
  import { HttpHeaders, HttpContext, HttpClient, HttpParams, HttpInterceptorFn, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpFeature, HttpFeatureKind, HttpContextToken } from '@angular/common/http';
@@ -91,261 +91,6 @@ interface OptionSourceMetadata {
91
91
  includeIds?: boolean;
92
92
  }
93
93
 
94
- /**
95
- * Contrato de saída do normalizador de esquema (SchemaNormalizerService):
96
- * - Converte metadados `x-ui` em FieldDefinition tipado.
97
- * - Todas as funções expostas são funções reais (nunca strings):
98
- * - conditionalDisplay: () => boolean
99
- * - conditionalRequired: () => boolean
100
- * - transformValueFunction: (val: any) => any
101
- * - Suporte completo a ValidatorOptions (sincronos e assíncronos),
102
- * incluindo mensagens e comportamento de validação (gatilhos, debounce, exibição de erros).
103
- */
104
- interface FieldDefinition {
105
- name: string;
106
- label?: string;
107
- description?: string;
108
- type?: string;
109
- controlType?: string;
110
- mode?: string;
111
- placeholder?: string;
112
- defaultValue?: any;
113
- group?: string;
114
- order?: number;
115
- width?: number | string;
116
- isFlex?: boolean;
117
- displayOrientation?: string;
118
- selectionMode?: 'boolean' | 'single' | 'multiple';
119
- variant?: string;
120
- density?: 'compact' | 'comfortable' | 'spacious';
121
- layout?: 'horizontal' | 'vertical';
122
- disabled?: boolean;
123
- readOnly?: boolean;
124
- multiple?: boolean;
125
- editable?: boolean;
126
- validationMode?: string;
127
- unique?: boolean;
128
- mask?: string;
129
- sortable?: boolean;
130
- /** Função que define obrigatoriedade condicional. */
131
- conditionalRequired?: () => boolean;
132
- viewOnlyStyle?: string;
133
- /** Lista de gatilhos de validação, ex.: ["blur", "change"]. */
134
- validationTriggers?: string[];
135
- hidden?: boolean;
136
- tableHidden?: boolean;
137
- formHidden?: boolean;
138
- filterable?: boolean;
139
- /** Função que controla se o campo é exibido. */
140
- conditionalDisplay?: () => boolean;
141
- dependentField?: string;
142
- resetOnDependentChange?: boolean;
143
- inlineEditing?: boolean;
144
- /** Função de transformação de valor antes de salvar/exibir. */
145
- transformValueFunction?: (val: any) => any;
146
- debounceTime?: number;
147
- helpText?: string;
148
- hint?: string;
149
- hiddenCondition?: any;
150
- tooltipOnHover?: boolean;
151
- icon?: string;
152
- iconPosition?: string;
153
- iconSize?: string | number;
154
- iconColor?: string;
155
- iconClass?: string;
156
- iconStyle?: string;
157
- iconFontSize?: string | number;
158
- valueField?: string;
159
- displayField?: string;
160
- filterField?: string;
161
- endpoint?: string;
162
- resourcePath?: string;
163
- optionSource?: OptionSourceMetadata;
164
- emptyOptionText?: string;
165
- options?: {
166
- key: string;
167
- value: string;
168
- }[];
169
- filter?: any;
170
- filterCriteria?: any;
171
- searchable?: boolean;
172
- selectAll?: boolean;
173
- maxSelections?: number;
174
- optionLabelKey?: string;
175
- optionValueKey?: string;
176
- filterOptions?: any[];
177
- numericFormat?: string;
178
- numericStep?: number;
179
- numericMin?: number;
180
- numericMax?: number;
181
- numericMaxLength?: number;
182
- optionGroups?: {
183
- key: string;
184
- value: string;
185
- }[];
186
- disabledOptions?: string[];
187
- buttons?: any[];
188
- /** Obrigatório. */
189
- required?: boolean;
190
- requiredMessage?: string;
191
- /** Tamanho mínimo/máximo (strings). */
192
- minLength?: number;
193
- minLengthMessage?: string;
194
- maxLength?: number;
195
- maxLengthMessage?: string;
196
- /** Limites numéricos. */
197
- min?: number;
198
- max?: number;
199
- /** Mensagens dedicadas para min/max numéricos. */
200
- minMessage?: string;
201
- maxMessage?: string;
202
- /** Mensagem quando ambos limites (range) são aplicados. */
203
- rangeMessage?: string;
204
- /** Padrão (regex). Aceita pattern/regex. */
205
- pattern?: string;
206
- patternMessage?: string;
207
- /** Validação de e-mail. */
208
- email?: boolean;
209
- emailMessage?: string;
210
- /** Validação de URL. */
211
- url?: boolean;
212
- urlMessage?: string;
213
- /** Requer que valor combine com outro campo. */
214
- matchField?: string;
215
- matchFieldMessage?: string;
216
- /** Requer que o checkbox esteja marcado. */
217
- requiredChecked?: boolean;
218
- /** Tipos de arquivo permitidos e tamanho máximo. */
219
- allowedFileTypes?: string[];
220
- fileTypeMessage?: string;
221
- maxFileSize?: number;
222
- /** Validador customizado síncrono. */
223
- customValidator?: (value: any, model?: any) => any;
224
- /** Validador customizado assíncrono. */
225
- asyncValidator?: (value: any, model?: any) => Promise<any>;
226
- /** Validador de unicidade (ex.: consulta ao backend). */
227
- uniqueValidator?: (value: any, model?: any) => boolean | Promise<boolean>;
228
- uniqueMessage?: string;
229
- /** Validação condicional baseada em outro(s) campos/estado. */
230
- conditionalValidation?: (value: any, model?: any) => boolean | string | Promise<boolean | string>;
231
- /** Mínimo de palavras (para textos longos). */
232
- minWords?: number;
233
- /** Gatilho(s) de validação (alias de validationTriggers). */
234
- /** Tempo de debounce (ms) para executar validação. */
235
- validationDebounce?: number;
236
- /** Exibir erros inline no campo. */
237
- showInlineErrors?: boolean;
238
- /** Posição preferida da mensagem de erro (ex.: below, right). */
239
- errorPosition?: string;
240
- [key: string]: any;
241
- }
242
-
243
- declare enum ApiEndpoint {
244
- Default = "default",
245
- HumanResources = "humanResources",
246
- UiWrappersTest = "uiWrappersTest"
247
- }
248
-
249
- interface ApiUrlEntry {
250
- baseUrl?: string;
251
- path?: string;
252
- fullUrl?: string;
253
- version?: string;
254
- headers?: HttpHeaders | Record<string, string | string[]>;
255
- }
256
- interface ApiUrlConfig {
257
- [key: string]: ApiUrlEntry;
258
- }
259
- declare const API_URL: InjectionToken<ApiUrlConfig>;
260
- declare function buildApiUrl(entry: ApiUrlEntry): string;
261
- declare function buildHeaders(entry: ApiUrlEntry): HttpHeaders | undefined;
262
-
263
- /**
264
- * SchemaNormalizerService
265
- * -----------------------
266
- * Serviço responsável por converter um esquema bruto (OpenAPI + x-ui) em uma
267
- * lista tipada de FieldDefinition consumida pelo restante do sistema
268
- * (mapeadores de metadata, criador de FormGroup, carregador de campos dinâmicos, etc.).
269
- *
270
- * Entrada esperada
271
- * - Objeto JSON no formato OpenAPI/JSON Schema contendo:
272
- * - properties: { [name: string]: { type, title, description, ... , 'x-ui': { ... } } }
273
- * - Em cada propriedade, o objeto 'x-ui' define aspectos de UI/validação.
274
- *
275
- * Saída (FieldDefinition[])
276
- * - Tipagem forte de campos com funções reais (nunca strings) para regras condicionais e validadores customizados.
277
- * - Todas as propriedades de validação e comportamento consolidadas no mesmo objeto do campo.
278
- *
279
- * Segurança e observações
280
- * - Este serviço aceita funções em formato string dentro do x-ui (ex.: uniqueValidator, conditionalValidation),
281
- * e as converte via new Function. Isso exige backend confiável e controlado.
282
- * Em ambientes não confiáveis, evite funções como string ou implemente um sandbox/whitelist.
283
- * - Valores booleanos/numéricos são normalizados para tipos nativos.
284
- * - Arrays de opções são convertidos para pares { key, value } previsíveis.
285
- *
286
- * Exemplo mínimo de entrada
287
- * const schema = {
288
- * properties: {
289
- * email: {
290
- * type: 'string',
291
- * title: 'E-mail',
292
- * 'x-ui': { controlType: 'input', type: 'string', required: true, email: true }
293
- * }
294
- * }
295
- * };
296
- * const fields = normalizer.normalizeSchema(schema);
297
- * // fields: [{ name: 'email', label: 'E-mail', type: 'string', controlType: 'input', required: true, email: true }]
298
- */
299
- declare class SchemaNormalizerService {
300
- /** Convert value to boolean. Accepts boolean, string or number. */
301
- private parseBoolean;
302
- /** Ensure an array of strings from various inputs. */
303
- private parseStringArray;
304
- /** Parse option arrays into `{ key, value }` objects. */
305
- private parseOptions;
306
- private parseOptionSource;
307
- /**
308
- * Converte string/Function em função real.
309
- * Atenção: usa `new Function` para avaliar strings – requer backend confiável.
310
- */
311
- private parseFunction;
312
- /** Parse a predicate function: () => boolean */
313
- private parsePredicateFunction;
314
- /** Parse a transform function: (val: any) => any */
315
- private parseTransformFunction;
316
- /**
317
- * Parse de validador condicional: (value: any, model?: any) => boolean | string | Promise<boolean | string>
318
- */
319
- private parseConditionalValidator;
320
- /**
321
- * Extrai e normaliza propriedades de validação a partir do objeto x-ui.
322
- * Suporta: required, min/max, minLength/maxLength, pattern/regex, email, url,
323
- * matchField, uniqueValidator (+message), conditionalValidation, requiredChecked,
324
- * arquivos (allowedFileTypes, fileTypeMessage, maxFileSize), custom/async validators,
325
- * minWords e comportamento (validationTrigger(s), validationDebounce, showInlineErrors, errorPosition).
326
- */
327
- private parseValidators;
328
- /** Parse array of button definitions. */
329
- private parseButtons;
330
- private resolveNonEmptyStringToken;
331
- private isNumericSchemaType;
332
- private resolveNumericFormatToken;
333
- /**
334
- * Converte o schema bruto do backend (OpenAPI + x-ui) em FieldDefinition[] tipado.
335
- * Regras:
336
- * - Ignora propriedades sem x-ui.
337
- * - Garante ordenação por 'order' quando presente.
338
- * - Funções condicionais/transformações sempre viram funções reais.
339
- *
340
- * @param schema Objeto OpenAPI/JSON Schema com properties e x-ui por propriedade.
341
- * @returns FieldDefinition[] prontos para mapeamento/uso no restante do sistema.
342
- */
343
- normalizeSchema(schema: any): FieldDefinition[];
344
- private resolveFieldType;
345
- static ɵfac: i0.ɵɵFactoryDeclaration<SchemaNormalizerService, never>;
346
- static ɵprov: i0.ɵɵInjectableDeclaration<SchemaNormalizerService>;
347
- }
348
-
349
94
  /**
350
95
  * Nova arquitetura modular do TableConfig v2.0
351
96
  * Preparada para crescimento exponencial e alinhada com as 5 abas do editor
@@ -2093,53 +1838,335 @@ interface KeyboardAccessibilityConfig {
2093
1838
  * Estrutura modular alinhada com as 5 abas do editor
2094
1839
  * Preparada para crescimento exponencial
2095
1840
  */
2096
- interface TableConfigV2 {
2097
- /** Metadados da configuração */
2098
- meta?: ConfigMetadata;
2099
- /** Definições de colunas */
2100
- columns: ColumnDefinition[];
2101
- /** Comportamento geral da tabela (Aba: Visão Geral & Comportamento) */
2102
- behavior?: TableBehaviorConfig;
2103
- /** Configurações de aparência e layout (Aba: Visão Geral & Comportamento) */
2104
- appearance?: TableAppearanceConfig;
2105
- /** Barra de ferramentas (Aba: Barra de Ferramentas & Ações) */
2106
- toolbar?: ToolbarConfig;
2107
- /** Ações por linha e em lote (Aba: Barra de Ferramentas & Ações) */
2108
- actions?: TableActionsConfig;
2109
- /** Configurações de exportação (Aba: Barra de Ferramentas & Ações) */
2110
- export?: ExportConfig;
2111
- /** Mensagens personalizadas (Aba: Mensagens & Localização) */
2112
- messages?: MessagesConfig;
2113
- /** Localização e i18n (Aba: Mensagens & Localização) */
2114
- localization?: LocalizationConfig;
2115
- /** Configurações avançadas de dados */
2116
- data?: DataConfig;
2117
- /** Temas e customização visual */
2118
- theme?: ThemeConfig;
2119
- /** Configurações de performance */
2120
- performance?: PerformanceConfig;
2121
- /** Plugins e extensões */
2122
- plugins?: PluginConfig[];
2123
- /** Configurações de acessibilidade */
2124
- accessibility?: AccessibilityConfig;
1841
+ interface TableConfigV2 {
1842
+ /** Metadados da configuração */
1843
+ meta?: ConfigMetadata;
1844
+ /** Definições de colunas */
1845
+ columns: ColumnDefinition[];
1846
+ /** Comportamento geral da tabela (Aba: Visão Geral & Comportamento) */
1847
+ behavior?: TableBehaviorConfig;
1848
+ /** Configurações de aparência e layout (Aba: Visão Geral & Comportamento) */
1849
+ appearance?: TableAppearanceConfig;
1850
+ /** Barra de ferramentas (Aba: Barra de Ferramentas & Ações) */
1851
+ toolbar?: ToolbarConfig;
1852
+ /** Ações por linha e em lote (Aba: Barra de Ferramentas & Ações) */
1853
+ actions?: TableActionsConfig;
1854
+ /** Configurações de exportação (Aba: Barra de Ferramentas & Ações) */
1855
+ export?: ExportConfig;
1856
+ /** Mensagens personalizadas (Aba: Mensagens & Localização) */
1857
+ messages?: MessagesConfig;
1858
+ /** Localização e i18n (Aba: Mensagens & Localização) */
1859
+ localization?: LocalizationConfig;
1860
+ /** Configurações avançadas de dados */
1861
+ data?: DataConfig;
1862
+ /** Temas e customização visual */
1863
+ theme?: ThemeConfig;
1864
+ /** Configurações de performance */
1865
+ performance?: PerformanceConfig;
1866
+ /** Plugins e extensões */
1867
+ plugins?: PluginConfig[];
1868
+ /** Configurações de acessibilidade */
1869
+ accessibility?: AccessibilityConfig;
1870
+ /**
1871
+ * Regras de estilo condicionais aplicadas à linha inteira (escopo global)
1872
+ */
1873
+ rowConditionalStyles?: Array<{
1874
+ condition: string;
1875
+ cssClass?: string;
1876
+ style?: {
1877
+ [key: string]: string;
1878
+ };
1879
+ description?: string;
1880
+ }>;
1881
+ /** Estado serializado do construtor para regras de linha (round‑trip) */
1882
+ _rowStyleRulesState?: any;
1883
+ }
1884
+ /**
1885
+ * Type guard to check if config is V2
1886
+ */
1887
+ declare function isTableConfigV2(config: any): config is TableConfigV2;
1888
+
1889
+ type ValuePresentationType = 'string' | 'number' | 'currency' | 'percentage' | 'date' | 'datetime' | 'time' | 'boolean';
1890
+ type ValuePresentationStyle = 'default' | 'short' | 'medium' | 'long' | 'full' | 'compact';
1891
+ interface ValuePresentationConfig {
1892
+ type: ValuePresentationType;
1893
+ style?: ValuePresentationStyle;
1894
+ format?: string;
1895
+ currency?: Partial<CurrencyLocaleConfig>;
1896
+ number?: Partial<NumberLocaleConfig>;
1897
+ }
1898
+ interface ValuePresentationResolutionContext {
1899
+ localization?: LocalizationConfig | null;
1900
+ surfaceLocale?: string | null;
1901
+ appLocale?: string | null;
1902
+ valueLocale?: string | null;
1903
+ }
1904
+ interface ResolvedValuePresentation {
1905
+ type: ValuePresentationType;
1906
+ locale: string;
1907
+ style?: ValuePresentationStyle;
1908
+ format?: string;
1909
+ currency?: CurrencyLocaleConfig;
1910
+ number?: NumberLocaleConfig;
1911
+ dateTime?: DateTimeLocaleConfig;
1912
+ }
1913
+
1914
+ /**
1915
+ * Contrato de saída do normalizador de esquema (SchemaNormalizerService):
1916
+ * - Converte metadados `x-ui` em FieldDefinition tipado.
1917
+ * - Todas as funções expostas são funções reais (nunca strings):
1918
+ * - conditionalDisplay: () => boolean
1919
+ * - conditionalRequired: () => boolean
1920
+ * - transformValueFunction: (val: any) => any
1921
+ * - Suporte completo a ValidatorOptions (sincronos e assíncronos),
1922
+ * incluindo mensagens e comportamento de validação (gatilhos, debounce, exibição de erros).
1923
+ */
1924
+ interface FieldDefinition {
1925
+ name: string;
1926
+ label?: string;
1927
+ description?: string;
1928
+ type?: string;
1929
+ controlType?: string;
1930
+ mode?: string;
1931
+ placeholder?: string;
1932
+ defaultValue?: any;
1933
+ group?: string;
1934
+ order?: number;
1935
+ width?: number | string;
1936
+ isFlex?: boolean;
1937
+ displayOrientation?: string;
1938
+ selectionMode?: 'boolean' | 'single' | 'multiple';
1939
+ variant?: string;
1940
+ density?: 'compact' | 'comfortable' | 'spacious';
1941
+ layout?: 'horizontal' | 'vertical';
1942
+ disabled?: boolean;
1943
+ readOnly?: boolean;
1944
+ multiple?: boolean;
1945
+ editable?: boolean;
1946
+ validationMode?: string;
1947
+ unique?: boolean;
1948
+ mask?: string;
1949
+ sortable?: boolean;
1950
+ /** Função que define obrigatoriedade condicional. */
1951
+ conditionalRequired?: () => boolean;
1952
+ viewOnlyStyle?: string;
1953
+ /** Lista de gatilhos de validação, ex.: ["blur", "change"]. */
1954
+ validationTriggers?: string[];
1955
+ hidden?: boolean;
1956
+ tableHidden?: boolean;
1957
+ formHidden?: boolean;
1958
+ filterable?: boolean;
1959
+ /** Função que controla se o campo é exibido. */
1960
+ conditionalDisplay?: () => boolean;
1961
+ dependentField?: string;
1962
+ resetOnDependentChange?: boolean;
1963
+ inlineEditing?: boolean;
1964
+ /** Função de transformação de valor antes de salvar/exibir. */
1965
+ transformValueFunction?: (val: any) => any;
1966
+ debounceTime?: number;
1967
+ helpText?: string;
1968
+ hint?: string;
1969
+ hiddenCondition?: any;
1970
+ tooltipOnHover?: boolean;
1971
+ icon?: string;
1972
+ iconPosition?: string;
1973
+ iconSize?: string | number;
1974
+ iconColor?: string;
1975
+ iconClass?: string;
1976
+ iconStyle?: string;
1977
+ iconFontSize?: string | number;
1978
+ valueField?: string;
1979
+ displayField?: string;
1980
+ filterField?: string;
1981
+ endpoint?: string;
1982
+ resourcePath?: string;
1983
+ optionSource?: OptionSourceMetadata;
1984
+ emptyOptionText?: string;
1985
+ options?: {
1986
+ key: string;
1987
+ value: string;
1988
+ }[];
1989
+ filter?: any;
1990
+ filterCriteria?: any;
1991
+ searchable?: boolean;
1992
+ selectAll?: boolean;
1993
+ maxSelections?: number;
1994
+ optionLabelKey?: string;
1995
+ optionValueKey?: string;
1996
+ filterOptions?: any[];
1997
+ numericFormat?: string;
1998
+ valuePresentation?: ValuePresentationConfig;
1999
+ numericStep?: number;
2000
+ numericMin?: number;
2001
+ numericMax?: number;
2002
+ numericMaxLength?: number;
2003
+ optionGroups?: {
2004
+ key: string;
2005
+ value: string;
2006
+ }[];
2007
+ disabledOptions?: string[];
2008
+ buttons?: any[];
2009
+ /** Obrigatório. */
2010
+ required?: boolean;
2011
+ requiredMessage?: string;
2012
+ /** Tamanho mínimo/máximo (strings). */
2013
+ minLength?: number;
2014
+ minLengthMessage?: string;
2015
+ maxLength?: number;
2016
+ maxLengthMessage?: string;
2017
+ /** Limites numéricos. */
2018
+ min?: number;
2019
+ max?: number;
2020
+ /** Mensagens dedicadas para min/max numéricos. */
2021
+ minMessage?: string;
2022
+ maxMessage?: string;
2023
+ /** Mensagem quando ambos limites (range) são aplicados. */
2024
+ rangeMessage?: string;
2025
+ /** Padrão (regex). Aceita pattern/regex. */
2026
+ pattern?: string;
2027
+ patternMessage?: string;
2028
+ /** Validação de e-mail. */
2029
+ email?: boolean;
2030
+ emailMessage?: string;
2031
+ /** Validação de URL. */
2032
+ url?: boolean;
2033
+ urlMessage?: string;
2034
+ /** Requer que valor combine com outro campo. */
2035
+ matchField?: string;
2036
+ matchFieldMessage?: string;
2037
+ /** Requer que o checkbox esteja marcado. */
2038
+ requiredChecked?: boolean;
2039
+ /** Tipos de arquivo permitidos e tamanho máximo. */
2040
+ allowedFileTypes?: string[];
2041
+ fileTypeMessage?: string;
2042
+ maxFileSize?: number;
2043
+ /** Validador customizado síncrono. */
2044
+ customValidator?: (value: any, model?: any) => any;
2045
+ /** Validador customizado assíncrono. */
2046
+ asyncValidator?: (value: any, model?: any) => Promise<any>;
2047
+ /** Validador de unicidade (ex.: consulta ao backend). */
2048
+ uniqueValidator?: (value: any, model?: any) => boolean | Promise<boolean>;
2049
+ uniqueMessage?: string;
2050
+ /** Validação condicional baseada em outro(s) campos/estado. */
2051
+ conditionalValidation?: (value: any, model?: any) => boolean | string | Promise<boolean | string>;
2052
+ /** Mínimo de palavras (para textos longos). */
2053
+ minWords?: number;
2054
+ /** Gatilho(s) de validação (alias de validationTriggers). */
2055
+ /** Tempo de debounce (ms) para executar validação. */
2056
+ validationDebounce?: number;
2057
+ /** Exibir erros inline no campo. */
2058
+ showInlineErrors?: boolean;
2059
+ /** Posição preferida da mensagem de erro (ex.: below, right). */
2060
+ errorPosition?: string;
2061
+ [key: string]: any;
2062
+ }
2063
+
2064
+ declare enum ApiEndpoint {
2065
+ Default = "default",
2066
+ HumanResources = "humanResources",
2067
+ UiWrappersTest = "uiWrappersTest"
2068
+ }
2069
+
2070
+ interface ApiUrlEntry {
2071
+ baseUrl?: string;
2072
+ path?: string;
2073
+ fullUrl?: string;
2074
+ version?: string;
2075
+ headers?: HttpHeaders | Record<string, string | string[]>;
2076
+ }
2077
+ interface ApiUrlConfig {
2078
+ [key: string]: ApiUrlEntry;
2079
+ }
2080
+ declare const API_URL: InjectionToken<ApiUrlConfig>;
2081
+ declare function buildApiUrl(entry: ApiUrlEntry): string;
2082
+ declare function buildHeaders(entry: ApiUrlEntry): HttpHeaders | undefined;
2083
+
2084
+ /**
2085
+ * SchemaNormalizerService
2086
+ * -----------------------
2087
+ * Serviço responsável por converter um esquema bruto (OpenAPI + x-ui) em uma
2088
+ * lista tipada de FieldDefinition consumida pelo restante do sistema
2089
+ * (mapeadores de metadata, criador de FormGroup, carregador de campos dinâmicos, etc.).
2090
+ *
2091
+ * Entrada esperada
2092
+ * - Objeto JSON no formato OpenAPI/JSON Schema contendo:
2093
+ * - properties: { [name: string]: { type, title, description, ... , 'x-ui': { ... } } }
2094
+ * - Em cada propriedade, o objeto 'x-ui' define aspectos de UI/validação.
2095
+ *
2096
+ * Saída (FieldDefinition[])
2097
+ * - Tipagem forte de campos com funções reais (nunca strings) para regras condicionais e validadores customizados.
2098
+ * - Todas as propriedades de validação e comportamento consolidadas no mesmo objeto do campo.
2099
+ *
2100
+ * Segurança e observações
2101
+ * - Este serviço aceita funções em formato string dentro do x-ui (ex.: uniqueValidator, conditionalValidation),
2102
+ * e as converte via new Function. Isso exige backend confiável e controlado.
2103
+ * Em ambientes não confiáveis, evite funções como string ou implemente um sandbox/whitelist.
2104
+ * - Valores booleanos/numéricos são normalizados para tipos nativos.
2105
+ * - Arrays de opções são convertidos para pares { key, value } previsíveis.
2106
+ *
2107
+ * Exemplo mínimo de entrada
2108
+ * const schema = {
2109
+ * properties: {
2110
+ * email: {
2111
+ * type: 'string',
2112
+ * title: 'E-mail',
2113
+ * 'x-ui': { controlType: 'input', type: 'string', required: true, email: true }
2114
+ * }
2115
+ * }
2116
+ * };
2117
+ * const fields = normalizer.normalizeSchema(schema);
2118
+ * // fields: [{ name: 'email', label: 'E-mail', type: 'string', controlType: 'input', required: true, email: true }]
2119
+ */
2120
+ declare class SchemaNormalizerService {
2121
+ /** Convert value to boolean. Accepts boolean, string or number. */
2122
+ private parseBoolean;
2123
+ /** Ensure an array of strings from various inputs. */
2124
+ private parseStringArray;
2125
+ /** Parse option arrays into `{ key, value }` objects. */
2126
+ private parseOptions;
2127
+ private parseOptionSource;
2128
+ private parseValuePresentation;
2125
2129
  /**
2126
- * Regras de estilo condicionais aplicadas à linha inteira (escopo global)
2130
+ * Converte string/Function em função real.
2131
+ * Atenção: usa `new Function` para avaliar strings – requer backend confiável.
2127
2132
  */
2128
- rowConditionalStyles?: Array<{
2129
- condition: string;
2130
- cssClass?: string;
2131
- style?: {
2132
- [key: string]: string;
2133
- };
2134
- description?: string;
2135
- }>;
2136
- /** Estado serializado do construtor para regras de linha (round‑trip) */
2137
- _rowStyleRulesState?: any;
2133
+ private parseFunction;
2134
+ /** Parse a predicate function: () => boolean */
2135
+ private parsePredicateFunction;
2136
+ /** Parse a transform function: (val: any) => any */
2137
+ private parseTransformFunction;
2138
+ /**
2139
+ * Parse de validador condicional: (value: any, model?: any) => boolean | string | Promise<boolean | string>
2140
+ */
2141
+ private parseConditionalValidator;
2142
+ /**
2143
+ * Extrai e normaliza propriedades de validação a partir do objeto x-ui.
2144
+ * Suporta: required, min/max, minLength/maxLength, pattern/regex, email, url,
2145
+ * matchField, uniqueValidator (+message), conditionalValidation, requiredChecked,
2146
+ * arquivos (allowedFileTypes, fileTypeMessage, maxFileSize), custom/async validators,
2147
+ * minWords e comportamento (validationTrigger(s), validationDebounce, showInlineErrors, errorPosition).
2148
+ */
2149
+ private parseValidators;
2150
+ /** Parse array of button definitions. */
2151
+ private parseButtons;
2152
+ private resolveNonEmptyStringToken;
2153
+ private isNumericSchemaType;
2154
+ private resolveNumericFormatToken;
2155
+ /**
2156
+ * Converte o schema bruto do backend (OpenAPI + x-ui) em FieldDefinition[] tipado.
2157
+ * Regras:
2158
+ * - Ignora propriedades sem x-ui.
2159
+ * - Garante ordenação por 'order' quando presente.
2160
+ * - Funções condicionais/transformações sempre viram funções reais.
2161
+ *
2162
+ * @param schema Objeto OpenAPI/JSON Schema com properties e x-ui por propriedade.
2163
+ * @returns FieldDefinition[] prontos para mapeamento/uso no restante do sistema.
2164
+ */
2165
+ normalizeSchema(schema: any): FieldDefinition[];
2166
+ private resolveFieldType;
2167
+ static ɵfac: i0.ɵɵFactoryDeclaration<SchemaNormalizerService, never>;
2168
+ static ɵprov: i0.ɵɵInjectableDeclaration<SchemaNormalizerService>;
2138
2169
  }
2139
- /**
2140
- * Type guard to check if config is V2
2141
- */
2142
- declare function isTableConfigV2(config: any): config is TableConfigV2;
2143
2170
 
2144
2171
  type TableConfig = TableConfigV2;
2145
2172
 
@@ -2528,6 +2555,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
2528
2555
  private schemaNormalizer;
2529
2556
  private globalConfig;
2530
2557
  private static readonly ERROR_MESSAGES;
2558
+ private static readonly unavailableFilteredSchemaUrls;
2531
2559
  private baseApiUrl;
2532
2560
  private apiUrl;
2533
2561
  private endpoints;
@@ -2610,6 +2638,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
2610
2638
  * ```
2611
2639
  */
2612
2640
  getSchema(options?: CrudOperationOptions): Observable<FieldDefinition[]>;
2641
+ private fetchDirectSchema;
2613
2642
  /** Retorna o campo identificador do recurso (ex.: 'id', 'codigo'), quando derivado do schema. */
2614
2643
  getResourceIdField(): string | undefined;
2615
2644
  /** Retorna o último schemaId e hash conhecidos após getSchema()/getFilteredSchema(). */
@@ -3157,6 +3186,8 @@ declare const API_CONFIG_STORAGE_OPTIONS: InjectionToken<ApiConfigStorageOptions
3157
3186
  * HTTP-based storage that talks to praxis-config-starter user-config API.
3158
3187
  */
3159
3188
  declare class ApiConfigStorage implements AsyncConfigStorage {
3189
+ private static readonly unavailableLoadBaseUrls;
3190
+ private static readonly loadAvailabilityProbes;
3160
3191
  private readonly http;
3161
3192
  private readonly opts;
3162
3193
  private readonly baseUrl;
@@ -3165,7 +3196,11 @@ declare class ApiConfigStorage implements AsyncConfigStorage {
3165
3196
  private readonly componentTypeResolver;
3166
3197
  private readonly cache;
3167
3198
  constructor();
3199
+ private shouldLogLoadError;
3200
+ private shouldLogSaveError;
3201
+ private shouldLogClearError;
3168
3202
  loadConfig<T>(key: string): Observable<T | null>;
3203
+ private executeLoadConfigRequest;
3169
3204
  saveConfig<T>(key: string, config: T): Observable<void>;
3170
3205
  private shouldPropagateSaveError;
3171
3206
  private shouldPropagateClearError;
@@ -3195,6 +3230,14 @@ type GlobalActionContext = {
3195
3230
  payload?: any;
3196
3231
  pageContext?: Record<string, any> | null;
3197
3232
  meta?: Record<string, any>;
3233
+ runtime?: {
3234
+ row?: any;
3235
+ item?: any;
3236
+ selection?: any;
3237
+ formData?: any;
3238
+ value?: any;
3239
+ state?: any;
3240
+ };
3198
3241
  };
3199
3242
  type GlobalActionHandler = (payload?: any, context?: GlobalActionContext) => Promise<GlobalActionResult> | GlobalActionResult;
3200
3243
  interface GlobalActionHandlerEntry {
@@ -3250,10 +3293,12 @@ declare class GlobalActionService {
3250
3293
  private readonly registry;
3251
3294
  private readonly globalConfig;
3252
3295
  private readonly dialog;
3296
+ private readonly surface;
3253
3297
  private readonly toast;
3254
3298
  private readonly analytics;
3255
3299
  private readonly api;
3256
3300
  private readonly guardResolver;
3301
+ private readonly surfaceBindingRuntime;
3257
3302
  constructor();
3258
3303
  register(id: string, handler: GlobalActionHandler): void;
3259
3304
  has(id: string): boolean;
@@ -3265,6 +3310,69 @@ declare class GlobalActionService {
3265
3310
  static ɵprov: i0.ɵɵInjectableDeclaration<GlobalActionService>;
3266
3311
  }
3267
3312
 
3313
+ type ActionDefinition = {
3314
+ /** Global action id to execute (e.g., 'navigation.back', 'dialog.alert'). */
3315
+ type?: string;
3316
+ /** Optional payload template for the action. */
3317
+ params?: Record<string, any>;
3318
+ };
3319
+ interface WidgetDefinition {
3320
+ /** Component id registered in ComponentMetadataRegistry */
3321
+ id: string;
3322
+ /** Optional author-defined identity for nested widget instances inside composite containers. */
3323
+ childWidgetKey?: string;
3324
+ /** Inputs to bind into the component instance */
3325
+ inputs?: Record<string, any>;
3326
+ /** Map of component output name to action (global action or 'emit'). */
3327
+ outputs?: Record<string, ActionDefinition | 'emit'>;
3328
+ /**
3329
+ * Optional explicit order for applying inputs. Keys listed here are applied first
3330
+ * (in order) with change detection flush between each, then remaining inputs are applied.
3331
+ */
3332
+ bindingOrder?: string[];
3333
+ }
3334
+
3335
+ type SurfacePresentation = 'modal' | 'drawer';
3336
+ type SurfaceBindingMode = 'path' | 'template' | 'constant';
3337
+ interface SurfaceBinding {
3338
+ from?: string;
3339
+ to: string;
3340
+ mode?: SurfaceBindingMode;
3341
+ value?: any;
3342
+ }
3343
+ interface SurfaceSizeConfig {
3344
+ width?: string;
3345
+ height?: string;
3346
+ minWidth?: string;
3347
+ maxWidth?: string;
3348
+ minHeight?: string;
3349
+ maxHeight?: string;
3350
+ }
3351
+ interface SurfaceOpenPayload {
3352
+ presentation: SurfacePresentation;
3353
+ title?: string;
3354
+ subtitle?: string;
3355
+ icon?: string;
3356
+ size?: SurfaceSizeConfig;
3357
+ widget: WidgetDefinition;
3358
+ bindings?: SurfaceBinding[];
3359
+ context?: Record<string, any>;
3360
+ }
3361
+
3362
+ declare class SurfaceBindingRuntimeService {
3363
+ resolveWidget(widget: WidgetDefinition, bindings: SurfaceBinding[] | undefined, actionPayload?: any, actionContext?: GlobalActionContext, explicitContext?: Record<string, any>): WidgetDefinition;
3364
+ extractByPath(obj: any, path?: string): any;
3365
+ resolveTemplate(node: any, context: any): any;
3366
+ setValueAtPath<T extends object>(obj: T, rawPath: string, value: any): T;
3367
+ private buildContext;
3368
+ private resolveBindingValue;
3369
+ private normalizeTargetPath;
3370
+ private tokenizePath;
3371
+ private clone;
3372
+ static ɵfac: i0.ɵɵFactoryDeclaration<SurfaceBindingRuntimeService, never>;
3373
+ static ɵprov: i0.ɵɵInjectableDeclaration<SurfaceBindingRuntimeService>;
3374
+ }
3375
+
3268
3376
  interface ConnectionConfigV1 {
3269
3377
  resourcePath: string;
3270
3378
  version: 1;
@@ -3829,6 +3937,14 @@ interface FieldMetadata extends ComponentMetadata {
3829
3937
  mask?: string;
3830
3938
  /** Format for display values */
3831
3939
  format?: string;
3940
+ /**
3941
+ * Canonical value-presentation semantics used by read-only/display surfaces.
3942
+ *
3943
+ * When provided, this metadata should be preferred over legacy formatting
3944
+ * hints such as `format`, `currency`, `locale`, or control-specific
3945
+ * heuristics.
3946
+ */
3947
+ valuePresentation?: ValuePresentationConfig;
3832
3948
  /** Material Design specific configuration */
3833
3949
  materialDesign?: MaterialDesignConfig;
3834
3950
  /** Fields this field depends on */
@@ -6027,6 +6143,46 @@ declare class ErrorMessageService {
6027
6143
  static ɵprov: i0.ɵɵInjectableDeclaration<ErrorMessageService>;
6028
6144
  }
6029
6145
 
6146
+ type PortDirection = 'input' | 'output';
6147
+ type PortSemanticKind = 'event' | 'value' | 'selection' | 'collection' | 'query-context' | 'view-context' | 'config-fragment' | 'command' | 'status' | 'diagnostic' | 'trigger';
6148
+ type PortCardinality = 'one' | 'many' | 'stream';
6149
+ type PortSchemaKind = 'json-schema' | 'ts-type' | 'opaque' | 'structural-shape';
6150
+ type PortSchemaMode = 'strict' | 'structural' | 'opaque';
6151
+ interface PortSchemaRef {
6152
+ id: string;
6153
+ kind: PortSchemaKind;
6154
+ ref?: string;
6155
+ description?: string;
6156
+ }
6157
+ interface PortCompatibilityRuleSet {
6158
+ acceptsSemanticKinds?: PortSemanticKind[];
6159
+ rejectsSemanticKinds?: PortSemanticKind[];
6160
+ acceptsCardinality?: PortCardinality[];
6161
+ requiresTransformWhenSourceKinds?: PortSemanticKind[];
6162
+ schemaMode?: PortSchemaMode;
6163
+ }
6164
+ interface PortExposure {
6165
+ public: boolean;
6166
+ advanced?: boolean;
6167
+ deprecated?: boolean;
6168
+ internalPath?: string;
6169
+ group?: string;
6170
+ }
6171
+ interface PortContract {
6172
+ id: string;
6173
+ label: string;
6174
+ direction: PortDirection;
6175
+ semanticKind: PortSemanticKind;
6176
+ schema?: PortSchemaRef;
6177
+ cardinality?: PortCardinality;
6178
+ required?: boolean;
6179
+ mutable?: boolean;
6180
+ description?: string;
6181
+ compatibility?: PortCompatibilityRuleSet;
6182
+ exposure?: PortExposure;
6183
+ examples?: unknown[];
6184
+ }
6185
+
6030
6186
  /**
6031
6187
  * Documentation metadata for dynamically added components.
6032
6188
  *
@@ -6111,6 +6267,8 @@ interface ComponentDocMeta {
6111
6267
  example?: any;
6112
6268
  };
6113
6269
  }>;
6270
+ /** Optional canonical semantic ports that complement legacy inputs/outputs metadata. */
6271
+ ports?: PortContract[];
6114
6272
  /** Tags or categories for search */
6115
6273
  tags?: string[];
6116
6274
  /** Source library for the component */
@@ -6126,6 +6284,107 @@ interface ComponentDocMeta {
6126
6284
  };
6127
6285
  }
6128
6286
 
6287
+ type PraxisLocale = string;
6288
+ interface PraxisTranslationParams {
6289
+ [key: string]: string | number | boolean | null | undefined;
6290
+ }
6291
+ interface PraxisI18nMessageDescriptor {
6292
+ key?: string;
6293
+ text?: string;
6294
+ params?: PraxisTranslationParams;
6295
+ }
6296
+ type PraxisTextValue = string | PraxisI18nMessageDescriptor;
6297
+ interface PraxisI18nDictionary {
6298
+ [key: string]: string;
6299
+ }
6300
+ interface PraxisI18nNamespaceDictionary {
6301
+ [locale: string]: PraxisI18nDictionary;
6302
+ }
6303
+ interface PraxisI18nNamespaceConfig {
6304
+ [namespace: string]: PraxisI18nNamespaceDictionary;
6305
+ }
6306
+ interface PraxisI18nConfig {
6307
+ locale?: PraxisLocale;
6308
+ fallbackLocale?: PraxisLocale;
6309
+ dictionaries?: Record<PraxisLocale, PraxisI18nDictionary>;
6310
+ namespaces?: PraxisI18nNamespaceConfig;
6311
+ }
6312
+ interface PraxisI18nTranslator {
6313
+ translate(key: string, params?: PraxisTranslationParams, fallback?: string): string;
6314
+ }
6315
+
6316
+ interface ComponentMetadataEditorialBindingDescriptor {
6317
+ name: string;
6318
+ type: string;
6319
+ description?: PraxisTextValue;
6320
+ label?: PraxisTextValue;
6321
+ default?: unknown;
6322
+ }
6323
+ interface ComponentMetadataEditorialDescriptor {
6324
+ controlType: string;
6325
+ componentMetaId: string;
6326
+ selector?: string;
6327
+ component?: Type<unknown>;
6328
+ friendlyName: PraxisTextValue;
6329
+ description?: PraxisTextValue;
6330
+ tooltip?: PraxisTextValue;
6331
+ icon?: string;
6332
+ family?: string;
6333
+ track?: string;
6334
+ tags?: string[];
6335
+ inputs?: ComponentMetadataEditorialBindingDescriptor[];
6336
+ outputs?: ComponentMetadataEditorialBindingDescriptor[];
6337
+ lib?: string;
6338
+ }
6339
+ interface ResolvedComponentMetadataEditorialBinding {
6340
+ name: string;
6341
+ type: string;
6342
+ description?: string;
6343
+ label?: string;
6344
+ default?: unknown;
6345
+ }
6346
+ interface ResolvedComponentMetadataEditorialMeta {
6347
+ controlType: string;
6348
+ componentMetaId: string;
6349
+ selector?: string;
6350
+ component?: Type<unknown>;
6351
+ friendlyName: string;
6352
+ description?: string;
6353
+ tooltip?: string;
6354
+ icon?: string;
6355
+ family?: string;
6356
+ track?: string;
6357
+ tags?: string[];
6358
+ inputs?: ResolvedComponentMetadataEditorialBinding[];
6359
+ outputs?: ResolvedComponentMetadataEditorialBinding[];
6360
+ lib?: string;
6361
+ source: 'component-doc-meta' | 'editorial-descriptor';
6362
+ }
6363
+ interface ComponentEditorialResolveOptions {
6364
+ namespace?: string;
6365
+ }
6366
+
6367
+ declare class PraxisI18nService {
6368
+ private readonly configs;
6369
+ private readonly translator;
6370
+ private readonly globalConfig;
6371
+ private readonly bootstrapOptions;
6372
+ constructor(configs: Array<Partial<PraxisI18nConfig>> | Partial<PraxisI18nConfig> | null, translator: PraxisI18nTranslator | null);
6373
+ getLocale(): string;
6374
+ getFallbackLocale(): string;
6375
+ t(key: string, params?: PraxisTranslationParams, fallback?: string, namespace?: string): string;
6376
+ resolve(message: PraxisTextValue | null | undefined, fallback?: string, namespace?: string): string;
6377
+ formatDate(value: Date | string | number, options?: Intl.DateTimeFormatOptions): string;
6378
+ formatNumber(value: number, options?: Intl.NumberFormatOptions): string;
6379
+ formatCurrency(value: number, currency: string, options?: Intl.NumberFormatOptions): string;
6380
+ private getConfig;
6381
+ private lookup;
6382
+ private translateExternally;
6383
+ private stringifyInvalidValue;
6384
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisI18nService, [{ optional: true; }, { optional: true; }]>;
6385
+ static ɵprov: i0.ɵɵInjectableDeclaration<PraxisI18nService>;
6386
+ }
6387
+
6129
6388
  /**
6130
6389
  * Simple in-memory registry of component documentation metadata.
6131
6390
  *
@@ -6133,21 +6392,46 @@ interface ComponentDocMeta {
6133
6392
  * visual builders or configurators can discover them.
6134
6393
  */
6135
6394
  declare class ComponentMetadataRegistry {
6395
+ private readonly i18n;
6396
+ constructor(i18n?: PraxisI18nService | null);
6136
6397
  private readonly metadataMap;
6398
+ private readonly rawMetadataMap;
6399
+ private readonly editorialMetadataMap;
6400
+ private readonly editorialControlTypeIndex;
6401
+ private readonly legacyControlTypeIndex;
6137
6402
  private readonly componentTypeAliases;
6138
6403
  /** Register a component metadata entry. */
6139
6404
  register(meta: ComponentDocMeta): void;
6405
+ /** Register an editorial descriptor that can later be resolved by controlType or metadata id. */
6406
+ registerEditorial(meta: ComponentMetadataEditorialDescriptor): void;
6140
6407
  /** Retrieve metadata by its unique id. */
6141
6408
  get(id: string): ComponentDocMeta | undefined;
6409
+ /** Retrieve an editorial descriptor by its id or controlType. */
6410
+ getEditorial(idOrControlType: string): ComponentMetadataEditorialDescriptor | undefined;
6142
6411
  /** List all registered metadata entries. */
6143
6412
  getAll(): ComponentDocMeta[];
6413
+ /** List all registered editorial descriptors. */
6414
+ getAllEditorial(): ComponentMetadataEditorialDescriptor[];
6415
+ /**
6416
+ * Resolve metadata editorial already localized for a component id, controlType or raw metadata.
6417
+ */
6418
+ resolveEditorial(target: string | ComponentDocMeta | ComponentMetadataEditorialDescriptor, options?: ComponentEditorialResolveOptions): ResolvedComponentMetadataEditorialMeta | undefined;
6144
6419
  /**
6145
6420
  * Ensure friendly labels/descriptions for common inputs/outputs when missing.
6146
6421
  * This helps diagrams/builders present consistent naming across components.
6147
6422
  */
6148
6423
  private normalizeMeta;
6424
+ private normalizeEditorialDescriptor;
6425
+ private resolveEditorialDescriptor;
6426
+ private resolveComponentDocMeta;
6427
+ private findLegacyMetadata;
6428
+ private resolveEditorialBinding;
6429
+ private resolveTextValue;
6430
+ private resolveOptionalTextValue;
6431
+ private isEditorialDescriptor;
6432
+ private clonePortContract;
6149
6433
  private normalizeComponentType;
6150
- static ɵfac: i0.ɵɵFactoryDeclaration<ComponentMetadataRegistry, never>;
6434
+ static ɵfac: i0.ɵɵFactoryDeclaration<ComponentMetadataRegistry, [{ optional: true; }]>;
6151
6435
  static ɵprov: i0.ɵɵInjectableDeclaration<ComponentMetadataRegistry>;
6152
6436
  }
6153
6437
 
@@ -6651,37 +6935,8 @@ declare function provideGlobalConfigReady(): Provider;
6651
6935
  /** Seed global config once when no storage exists yet (idempotent). */
6652
6936
  declare function provideGlobalConfigSeed(seed: Partial<GlobalConfig>): Provider;
6653
6937
  /** Fetch remote JSON and merge as global config at boot. */
6654
- declare function provideRemoteGlobalConfig(url: string): Provider;
6655
- declare function providePraxisGlobalConfigBootstrap(options?: PraxisGlobalConfigBootstrapOptions): Provider[];
6656
-
6657
- type PraxisLocale = string;
6658
- interface PraxisTranslationParams {
6659
- [key: string]: string | number | boolean | null | undefined;
6660
- }
6661
- interface PraxisI18nMessageDescriptor {
6662
- key?: string;
6663
- text?: string;
6664
- params?: PraxisTranslationParams;
6665
- }
6666
- type PraxisTextValue = string | PraxisI18nMessageDescriptor;
6667
- interface PraxisI18nDictionary {
6668
- [key: string]: string;
6669
- }
6670
- interface PraxisI18nNamespaceDictionary {
6671
- [locale: string]: PraxisI18nDictionary;
6672
- }
6673
- interface PraxisI18nNamespaceConfig {
6674
- [namespace: string]: PraxisI18nNamespaceDictionary;
6675
- }
6676
- interface PraxisI18nConfig {
6677
- locale?: PraxisLocale;
6678
- fallbackLocale?: PraxisLocale;
6679
- dictionaries?: Record<PraxisLocale, PraxisI18nDictionary>;
6680
- namespaces?: PraxisI18nNamespaceConfig;
6681
- }
6682
- interface PraxisI18nTranslator {
6683
- translate(key: string, params?: PraxisTranslationParams, fallback?: string): string;
6684
- }
6938
+ declare function provideRemoteGlobalConfig(url: string): Provider;
6939
+ declare function providePraxisGlobalConfigBootstrap(options?: PraxisGlobalConfigBootstrapOptions): Provider[];
6685
6940
 
6686
6941
  declare const PRAXIS_I18N_CONFIG: InjectionToken<Partial<PraxisI18nConfig>>;
6687
6942
  declare const PRAXIS_I18N_TRANSLATOR: InjectionToken<PraxisI18nTranslator>;
@@ -6729,7 +6984,12 @@ declare function getGlobalActionCatalog(catalog: ReadonlyArray<GlobalActionCatal
6729
6984
  declare const PRAXIS_GLOBAL_ACTION_CATALOG: GlobalActionCatalogEntry[];
6730
6985
  declare function providePraxisGlobalActionCatalog(): Provider[];
6731
6986
 
6732
- type GlobalActionId = 'navigate' | 'openUrl' | 'showAlert' | 'log' | 'openDialog' | 'confirm' | 'alert' | 'prompt' | 'submitForm' | 'resetForm' | 'validateForm' | 'clearValidation' | 'saveFormDraft' | 'loadFormDraft' | 'clearFormDraft' | 'apiCall' | 'download' | 'copyToClipboard' | 'refreshOptions' | 'loadDependentData';
6987
+ interface GlobalSurfaceService {
6988
+ open: (payload: SurfaceOpenPayload, context?: GlobalActionContext) => Promise<any> | any;
6989
+ }
6990
+ declare const GLOBAL_SURFACE_SERVICE: InjectionToken<GlobalSurfaceService>;
6991
+
6992
+ type GlobalActionId = 'navigate' | 'openUrl' | 'surface.open' | 'showAlert' | 'log' | 'openDialog' | 'confirm' | 'alert' | 'prompt' | 'submitForm' | 'resetForm' | 'validateForm' | 'clearValidation' | 'saveFormDraft' | 'loadFormDraft' | 'clearFormDraft' | 'apiCall' | 'download' | 'copyToClipboard' | 'refreshOptions' | 'loadDependentData';
6733
6993
  type GlobalActionParam = {
6734
6994
  required?: boolean;
6735
6995
  label?: string;
@@ -6745,9 +7005,13 @@ interface GlobalActionSpec {
6745
7005
  }
6746
7006
  declare const GLOBAL_ACTION_CATALOG: GlobalActionSpec[];
6747
7007
 
7008
+ declare const SURFACE_OPEN_I18N_NAMESPACE = "surfaceOpen";
7009
+ declare const SURFACE_OPEN_I18N_CONFIG: Partial<PraxisI18nConfig>;
7010
+
6748
7011
  interface SettingsPanelRef<T = any> {
6749
7012
  applied$: Observable<T>;
6750
7013
  saved$: Observable<T>;
7014
+ closed$?: Observable<any>;
6751
7015
  }
6752
7016
  interface SettingsPanelOpenContent<TInputs = any> {
6753
7017
  component: Type<any>;
@@ -6756,6 +7020,7 @@ interface SettingsPanelOpenContent<TInputs = any> {
6756
7020
  interface SettingsPanelOpenOptions<TInputs = any> {
6757
7021
  id: string;
6758
7022
  title: string;
7023
+ titleIcon?: string;
6759
7024
  content: SettingsPanelOpenContent<TInputs>;
6760
7025
  }
6761
7026
  interface SettingsPanelBridge {
@@ -6779,30 +7044,222 @@ declare const DYNAMIC_PAGE_CONFIG_EDITOR: InjectionToken<Type<any>>;
6779
7044
 
6780
7045
  declare const PRAXIS_LOADING_CTX: HttpContextToken<LoadingContext | null>;
6781
7046
 
6782
- declare class PraxisI18nService {
6783
- private readonly configs;
6784
- private readonly translator;
6785
- private readonly globalConfig;
6786
- private readonly bootstrapOptions;
6787
- constructor(configs: Array<Partial<PraxisI18nConfig>> | Partial<PraxisI18nConfig> | null, translator: PraxisI18nTranslator | null);
6788
- getLocale(): string;
6789
- getFallbackLocale(): string;
6790
- t(key: string, params?: PraxisTranslationParams, fallback?: string, namespace?: string): string;
6791
- resolve(message: PraxisTextValue | null | undefined, fallback?: string, namespace?: string): string;
6792
- formatDate(value: Date | string | number, options?: Intl.DateTimeFormatOptions): string;
6793
- formatNumber(value: number, options?: Intl.NumberFormatOptions): string;
6794
- formatCurrency(value: number, currency: string, options?: Intl.NumberFormatOptions): string;
6795
- private getConfig;
6796
- private lookup;
6797
- private translateExternally;
6798
- private stringifyInvalidValue;
6799
- static ɵfac: i0.ɵɵFactoryDeclaration<PraxisI18nService, [{ optional: true; }, { optional: true; }]>;
6800
- static ɵprov: i0.ɵɵInjectableDeclaration<PraxisI18nService>;
6801
- }
6802
-
6803
7047
  declare function interpolatePraxisTranslation(template: string, params?: PraxisTranslationParams): string;
6804
7048
  declare function mergePraxisI18nConfigs(...configs: Array<Partial<PraxisI18nConfig> | null | undefined>): PraxisI18nConfig;
6805
7049
 
7050
+ declare function resolveValuePresentation(config: ValuePresentationConfig, context?: ValuePresentationResolutionContext): ResolvedValuePresentation;
7051
+ declare function resolveValuePresentationLocale(context?: ValuePresentationResolutionContext, localization?: LocalizationConfig | null): string;
7052
+ declare function supportsImplicitValuePresentation(type: ValuePresentationType | null | undefined): boolean;
7053
+ declare function resolveDefaultValuePresentationFormat(type: ValuePresentationType, style: ValuePresentationStyle | undefined, context: {
7054
+ localization?: LocalizationConfig | null;
7055
+ number: NumberLocaleConfig;
7056
+ currency: CurrencyLocaleConfig;
7057
+ dateTime: DateTimeLocaleConfig;
7058
+ }): string | undefined;
7059
+
7060
+ type TransformPhase = 'link-propagation' | 'state-materialization';
7061
+ type TransformKind = 'identity' | 'constant' | 'pick-path' | 'template' | 'object-template' | 'array-template' | 'coalesce' | 'merge-objects' | 'select-case' | 'format-value' | 'aggregate-array' | 'group-top' | 'build-field-list';
7062
+ type TransformBindingSource = 'event' | 'payload' | 'state' | 'context' | 'constant';
7063
+ interface TransformBinding {
7064
+ source?: TransformBindingSource;
7065
+ path?: string;
7066
+ alias?: string;
7067
+ value?: unknown;
7068
+ optional?: boolean;
7069
+ }
7070
+ type TransformSemanticKind = 'event' | 'value' | 'selection' | 'collection' | 'query-context' | 'view-context' | 'config-fragment' | 'status' | 'diagnostic';
7071
+ interface TransformOutputHint {
7072
+ semanticKind?: TransformSemanticKind;
7073
+ cardinality?: 'one' | 'many' | 'stream';
7074
+ schemaId?: string;
7075
+ schemaRef?: string;
7076
+ materializationHint?: 'replace' | 'merge' | 'append';
7077
+ stableShape?: boolean;
7078
+ description?: string;
7079
+ }
7080
+ interface TransformStepCondition {
7081
+ source?: Exclude<TransformBindingSource, 'constant'>;
7082
+ path?: string;
7083
+ truthy?: boolean;
7084
+ equals?: unknown;
7085
+ notEquals?: unknown;
7086
+ notEmpty?: boolean;
7087
+ }
7088
+ interface TransformStep {
7089
+ id?: string;
7090
+ kind: TransformKind;
7091
+ phase: TransformPhase;
7092
+ label?: string;
7093
+ when?: TransformStepCondition;
7094
+ input?: TransformBinding;
7095
+ inputs?: TransformBinding[];
7096
+ config?: Record<string, unknown>;
7097
+ output?: TransformOutputHint;
7098
+ notes?: string;
7099
+ }
7100
+ interface TransformPipeline {
7101
+ id?: string;
7102
+ version?: '2.0';
7103
+ phase: TransformPhase;
7104
+ mode: 'single-value' | 'object-fragment' | 'collection';
7105
+ sourceBindings?: TransformBinding[];
7106
+ steps: TransformStep[];
7107
+ output?: TransformOutputHint;
7108
+ fallbackValue?: unknown;
7109
+ debugLabel?: string;
7110
+ }
7111
+ type TransformCatalogCategory = 'projection' | 'templating' | 'branching' | 'composition' | 'aggregation' | 'formatting';
7112
+ type TransformLegacyReplacement = 'map' | 'set' | 'derived.template' | 'derived.operator';
7113
+ interface TransformCatalogEntry {
7114
+ kind: TransformKind;
7115
+ phase: TransformPhase;
7116
+ label: string;
7117
+ description: string;
7118
+ category: TransformCatalogCategory;
7119
+ replacesCurrent?: TransformLegacyReplacement[];
7120
+ acceptsSources: TransformBindingSource[];
7121
+ emitsSemanticKinds?: TransformSemanticKind[];
7122
+ stableForPhase2A: boolean;
7123
+ }
7124
+
7125
+ interface ComponentPortEndpointRef {
7126
+ kind: 'component-port';
7127
+ ref: {
7128
+ widget: string;
7129
+ port: string;
7130
+ direction: 'input' | 'output';
7131
+ componentType?: string;
7132
+ bindingPath?: string;
7133
+ };
7134
+ }
7135
+ interface StateEndpointRef {
7136
+ kind: 'state';
7137
+ ref: {
7138
+ path: string;
7139
+ layer?: 'values' | 'derived' | 'transient';
7140
+ writable?: boolean;
7141
+ };
7142
+ }
7143
+ type EndpointRef = ComponentPortEndpointRef | StateEndpointRef;
7144
+ type LinkIntent = 'event-propagation' | 'state-write' | 'state-read' | 'command-dispatch' | 'selection-sync' | 'data-projection' | 'status-propagation';
7145
+ type LinkConditionKind = 'always' | 'expression' | 'equals' | 'present' | 'changed' | 'matches-port-kind';
7146
+ interface LinkCondition {
7147
+ kind: LinkConditionKind;
7148
+ expression?: string;
7149
+ path?: string;
7150
+ value?: unknown;
7151
+ negate?: boolean;
7152
+ description?: string;
7153
+ }
7154
+ interface LinkPolicy {
7155
+ debounceMs?: number;
7156
+ distinct?: boolean;
7157
+ distinctBy?: string;
7158
+ delivery?: 'sync' | 'microtask' | 'batched';
7159
+ missingValuePolicy?: 'propagate-undefined' | 'skip' | 'use-default';
7160
+ errorPolicy?: 'diagnostic' | 'drop' | 'halt-page';
7161
+ }
7162
+ interface LinkMetadata {
7163
+ label?: string;
7164
+ description?: string;
7165
+ tags?: string[];
7166
+ deprecated?: boolean;
7167
+ source?: 'legacy-widget-connection' | 'native-composition-link';
7168
+ traceKey?: string;
7169
+ }
7170
+ interface CompositionLink {
7171
+ id: string;
7172
+ from: EndpointRef;
7173
+ to: EndpointRef;
7174
+ intent: LinkIntent;
7175
+ transform?: TransformPipeline;
7176
+ conditions?: LinkCondition[];
7177
+ policy?: LinkPolicy;
7178
+ metadata?: LinkMetadata;
7179
+ }
7180
+
7181
+ type DiagnosticSeverity = 'info' | 'warning' | 'error' | 'fatal';
7182
+ type DiagnosticPhase = 'catalog-lint' | 'page-lint' | 'semantic-validation' | 'runtime-bootstrap' | 'runtime-dispatch' | 'runtime-transform' | 'runtime-state' | 'runtime-delivery' | 'runtime-diagnostic';
7183
+ type DiagnosticSubjectKind = 'page' | 'widget' | 'port' | 'state' | 'derived-state' | 'link' | 'transform-step' | 'runtime-event' | 'runtime-snapshot';
7184
+ interface DiagnosticSubjectRef {
7185
+ kind: DiagnosticSubjectKind;
7186
+ pageId?: string;
7187
+ widgetKey?: string;
7188
+ widgetType?: string;
7189
+ portId?: string;
7190
+ statePath?: string;
7191
+ linkId?: string;
7192
+ transformIndex?: number;
7193
+ eventId?: string;
7194
+ path?: string;
7195
+ label?: string;
7196
+ }
7197
+ type DiagnosticSource = 'catalog' | 'authoring' | 'semantic-validator' | 'runtime-engine' | 'runtime-adapter';
7198
+ interface DiagnosticRecord {
7199
+ id: string;
7200
+ code: string;
7201
+ severity: DiagnosticSeverity;
7202
+ phase: DiagnosticPhase;
7203
+ message: string;
7204
+ summary?: string;
7205
+ subject: DiagnosticSubjectRef;
7206
+ related?: DiagnosticSubjectRef[];
7207
+ details?: Record<string, unknown>;
7208
+ suggestion?: string;
7209
+ source: DiagnosticSource;
7210
+ blocking?: boolean;
7211
+ transient?: boolean;
7212
+ createdAt: string;
7213
+ }
7214
+ type RuntimeTracePhase = 'event-received' | 'source-resolved' | 'transform-start' | 'transform-step' | 'transform-complete' | 'state-read' | 'state-write' | 'target-delivery' | 'delivery-skipped' | 'diagnostic-emitted';
7215
+ interface RuntimePayloadSummary {
7216
+ shape?: 'scalar' | 'object' | 'array' | 'null' | 'unknown';
7217
+ keys?: string[];
7218
+ preview?: unknown;
7219
+ }
7220
+ interface RuntimeTraceEntry {
7221
+ id: string;
7222
+ traceId: string;
7223
+ sequence: number;
7224
+ timestamp: string;
7225
+ phase: RuntimeTracePhase;
7226
+ linkId?: string;
7227
+ subject: DiagnosticSubjectRef;
7228
+ payloadSummary?: RuntimePayloadSummary;
7229
+ inputSnapshot?: unknown;
7230
+ outputSnapshot?: unknown;
7231
+ details?: Record<string, unknown>;
7232
+ diagnostics?: string[];
7233
+ }
7234
+ type RuntimeLinkStatus = 'idle' | 'ready' | 'running' | 'delivered' | 'skipped' | 'failed';
7235
+ interface RuntimeLinkSnapshot {
7236
+ linkId: string;
7237
+ status: RuntimeLinkStatus;
7238
+ source: DiagnosticSubjectRef;
7239
+ target: DiagnosticSubjectRef;
7240
+ lastEventAt?: string;
7241
+ lastDispatchTraceId?: string;
7242
+ lastDeliveredValuePreview?: unknown;
7243
+ diagnostics: DiagnosticRecord[];
7244
+ }
7245
+ interface RuntimeStateSnapshot {
7246
+ primaryValues: Record<string, unknown>;
7247
+ derivedValues: Record<string, unknown>;
7248
+ transientValues?: Record<string, unknown>;
7249
+ changedPaths?: string[];
7250
+ diagnostics: DiagnosticRecord[];
7251
+ }
7252
+ type RuntimeSnapshotStatus = 'booting' | 'ready' | 'degraded' | 'failed';
7253
+ interface RuntimeSnapshot {
7254
+ pageId?: string;
7255
+ status: RuntimeSnapshotStatus;
7256
+ generatedAt: string;
7257
+ links: RuntimeLinkSnapshot[];
7258
+ state: RuntimeStateSnapshot;
7259
+ diagnostics: DiagnosticRecord[];
7260
+ traceTail: RuntimeTraceEntry[];
7261
+ }
7262
+
6806
7263
  interface MaterialTimeTrackShift {
6807
7264
  id?: string;
6808
7265
  label?: string;
@@ -6915,26 +7372,6 @@ interface FormHooksLayout {
6915
7372
  onError?: FormHookDeclarationLite[];
6916
7373
  }
6917
7374
 
6918
- type ActionDefinition = {
6919
- /** Global action id to execute (e.g., 'navigation.back', 'dialog.alert'). */
6920
- type?: string;
6921
- /** Optional payload template for the action. */
6922
- params?: Record<string, any>;
6923
- };
6924
- interface WidgetDefinition {
6925
- /** Component id registered in ComponentMetadataRegistry */
6926
- id: string;
6927
- /** Inputs to bind into the component instance */
6928
- inputs?: Record<string, any>;
6929
- /** Map of component output name to action (global action or 'emit'). */
6930
- outputs?: Record<string, ActionDefinition | 'emit'>;
6931
- /**
6932
- * Optional explicit order for applying inputs. Keys listed here are applied first
6933
- * (in order) with change detection flush between each, then remaining inputs are applied.
6934
- */
6935
- bindingOrder?: string[];
6936
- }
6937
-
6938
7375
  interface Specification<T extends object = any> {
6939
7376
  isSatisfiedBy(obj: T): boolean;
6940
7377
  }
@@ -7327,8 +7764,37 @@ interface FormSection {
7327
7764
  headerAlign?: 'start' | 'center';
7328
7765
  /** Optional tooltip for the section header */
7329
7766
  headerTooltip?: string;
7767
+ /**
7768
+ * Optional icon actions rendered on the trailing edge of the section header.
7769
+ * Intended for contextual section-level affordances such as help, refresh or drill-down.
7770
+ */
7771
+ headerActions?: FormSectionHeaderAction[];
7330
7772
  rows: FormRow[];
7331
7773
  }
7774
+ interface FormSectionHeaderAction {
7775
+ /** Stable identifier used by runtime events, rule overrides and authoring surfaces. */
7776
+ id: string;
7777
+ /** Accessible label used for tooltip/aria even when the action is rendered as icon-only. */
7778
+ label: string;
7779
+ /** Icon rendered in the section header action slot. */
7780
+ icon: string;
7781
+ /** Optional action name emitted by the runtime; defaults to `id` when omitted. */
7782
+ action?: string;
7783
+ /** Optional tooltip override. Falls back to `label` when omitted. */
7784
+ tooltip?: string;
7785
+ /** Optional theme color mapped to Angular Material button tones. */
7786
+ color?: 'primary' | 'accent' | 'warn' | 'basic';
7787
+ /** Optional visibility flag. Defaults to visible when omitted. */
7788
+ visible?: boolean;
7789
+ /** Optional disabled state. */
7790
+ disabled?: boolean;
7791
+ /** Optional loading/busy state. */
7792
+ loading?: boolean;
7793
+ /** Optional CSS class applied to the action button. */
7794
+ className?: string;
7795
+ /** Optional inline styles applied to the action button. */
7796
+ style?: Record<string, any>;
7797
+ }
7332
7798
  type FormSectionHeaderMode = 'icon' | 'avatar-image' | 'avatar-initials' | 'auto';
7333
7799
  type FormSectionHeaderEmptyState = 'fallback-icon' | 'placeholder-avatar' | 'none';
7334
7800
  type FormSectionHeaderSize = 'sm' | 'md' | 'lg';
@@ -7612,7 +8078,8 @@ interface FormCustomActionEvent {
7612
8078
  actionId: string;
7613
8079
  formData: any;
7614
8080
  isValid: boolean;
7615
- source: 'button' | 'shortcut';
8081
+ source: 'button' | 'shortcut' | 'section-header';
8082
+ sectionId?: string;
7616
8083
  }
7617
8084
  interface FormActionConfirmationEvent {
7618
8085
  actionId: 'submit' | 'cancel' | 'reset' | string;
@@ -8256,6 +8723,50 @@ interface WidgetConnection {
8256
8723
  };
8257
8724
  }
8258
8725
  type WidgetPageOrientation = 'vertical' | 'columns';
8726
+ type WidgetPageDeviceKind = 'desktop' | 'tablet' | 'mobile';
8727
+ interface WidgetPageSlotDefinition {
8728
+ id: string;
8729
+ label: string;
8730
+ description?: string;
8731
+ required?: boolean;
8732
+ accepts?: string[];
8733
+ minItems?: number;
8734
+ maxItems?: number;
8735
+ }
8736
+ interface WidgetPageWidgetSuggestion {
8737
+ slot: string;
8738
+ widgetType?: string;
8739
+ label?: string;
8740
+ priority?: 'primary' | 'secondary' | 'optional';
8741
+ description?: string;
8742
+ }
8743
+ interface WidgetPageDevicePolicy {
8744
+ stacking?: 'preserve' | 'compress' | 'linearize';
8745
+ hideSecondaryContentOnMobile?: boolean;
8746
+ preferTabsOnMobile?: boolean;
8747
+ }
8748
+ interface WidgetPageLayoutPresetDefinition {
8749
+ id: string;
8750
+ label: string;
8751
+ description?: string;
8752
+ category?: 'analytics' | 'operations' | 'master-detail' | 'workspace';
8753
+ defaultLayout: WidgetPageLayout;
8754
+ defaultGrouping?: WidgetPageGroupingDefinition[];
8755
+ defaultThemePreset?: string;
8756
+ slotModel: WidgetPageSlotDefinition[];
8757
+ widgetSuggestions?: WidgetPageWidgetSuggestion[];
8758
+ devicePolicy?: WidgetPageDevicePolicy;
8759
+ }
8760
+ interface WidgetPageThemePresetDefinition {
8761
+ id: string;
8762
+ label: string;
8763
+ description?: string;
8764
+ shellPreset?: string;
8765
+ tokens?: Record<string, string>;
8766
+ chartThemePreset?: string;
8767
+ density?: 'comfortable' | 'compact';
8768
+ motion?: 'none' | 'subtle' | 'expressive';
8769
+ }
8259
8770
  interface WidgetStateNode {
8260
8771
  /** Optional semantic type for tooling and validation. */
8261
8772
  type?: string;
@@ -8319,46 +8830,127 @@ interface WidgetPageLayout {
8319
8830
  xl?: number;
8320
8831
  };
8321
8832
  }
8322
- interface WidgetPageDefinition {
8323
- widgets: WidgetInstance[];
8324
- connections?: WidgetConnection[];
8325
- /** Optional declarative page state shared across widgets and connections */
8326
- state?: WidgetPageStateInput;
8327
- /** Optional page-wide context available to all widgets */
8328
- context?: Record<string, any>;
8329
- /** Optional layout configuration for the widget grid */
8330
- layout?: WidgetPageLayout;
8833
+ interface WidgetPageCanvasConstraints {
8834
+ minColSpan?: number;
8835
+ minRowSpan?: number;
8836
+ maxColSpan?: number;
8837
+ maxRowSpan?: number;
8838
+ lockPosition?: boolean;
8839
+ lockSize?: boolean;
8331
8840
  }
8332
-
8333
- interface GridItemLayout {
8334
- /** 1-based column start */
8841
+ interface WidgetPageCanvasItem {
8335
8842
  col: number;
8336
- /** number of columns to span */
8337
- colSpan: number;
8338
- /** 1-based row start */
8339
8843
  row: number;
8340
- /** number of rows to span */
8844
+ colSpan: number;
8341
8845
  rowSpan: number;
8846
+ zIndex?: number;
8847
+ constraints?: WidgetPageCanvasConstraints;
8848
+ }
8849
+ type WidgetPageCanvasCollisionPolicy = 'block' | 'swap';
8850
+ interface WidgetPageCanvasLayout {
8851
+ mode: 'grid';
8852
+ columns: number;
8853
+ rowUnit?: string;
8854
+ gap?: string;
8855
+ autoRows?: 'fixed' | 'content';
8856
+ collisionPolicy?: WidgetPageCanvasCollisionPolicy;
8857
+ items: Record<string, WidgetPageCanvasItem>;
8858
+ }
8859
+ interface WidgetPageCanvasItemOverride {
8860
+ col?: number;
8861
+ row?: number;
8862
+ colSpan?: number;
8863
+ rowSpan?: number;
8864
+ hidden?: boolean;
8865
+ zIndex?: number;
8866
+ constraints?: WidgetPageCanvasConstraints;
8342
8867
  }
8343
- interface GridWidgetInstance {
8344
- key: string;
8345
- definition: WidgetDefinition;
8346
- layout: GridItemLayout;
8868
+ interface WidgetPageCanvasLayoutVariant {
8869
+ columns?: number;
8870
+ rowUnit?: string;
8871
+ gap?: string;
8872
+ autoRows?: 'fixed' | 'content';
8873
+ collisionPolicy?: WidgetPageCanvasCollisionPolicy;
8874
+ items?: Record<string, WidgetPageCanvasItemOverride>;
8875
+ }
8876
+ interface WidgetPageWidgetLayoutOverride {
8347
8877
  className?: string;
8348
- shell?: WidgetShellConfig;
8878
+ span?: number;
8879
+ order?: number;
8880
+ hidden?: boolean;
8881
+ }
8882
+ interface WidgetPageGroupingTabDefinition {
8883
+ id: string;
8884
+ label: string;
8885
+ widgetKeys: string[];
8886
+ }
8887
+ type WidgetPageGroupingDefinition = {
8888
+ kind: 'section';
8889
+ id: string;
8890
+ label?: string;
8891
+ widgetKeys: string[];
8892
+ layout?: 'stack' | 'grid' | 'row';
8893
+ } | {
8894
+ kind: 'tabs';
8895
+ id: string;
8896
+ label?: string;
8897
+ tabs: WidgetPageGroupingTabDefinition[];
8898
+ } | {
8899
+ kind: 'hero';
8900
+ id: string;
8901
+ widgetKeys: string[];
8902
+ emphasis?: 'high' | 'medium';
8903
+ } | {
8904
+ kind: 'rail';
8905
+ id: string;
8906
+ side: 'left' | 'right';
8907
+ widgetKeys: string[];
8908
+ };
8909
+ interface WidgetPageGroupingOverride {
8910
+ id: string;
8911
+ hidden?: boolean;
8912
+ widgetKeys?: string[];
8913
+ tabs?: WidgetPageGroupingTabDefinition[];
8914
+ }
8915
+ interface WidgetPageLayoutVariant {
8916
+ layout?: WidgetPageLayout;
8917
+ canvas?: WidgetPageCanvasLayoutVariant;
8918
+ groupingOverrides?: WidgetPageGroupingOverride[];
8919
+ widgetOverrides?: Record<string, WidgetPageWidgetLayoutOverride>;
8349
8920
  }
8350
- interface GridPageDefinition {
8351
- widgets: GridWidgetInstance[];
8921
+ interface WidgetPageDeviceLayouts {
8922
+ desktop?: WidgetPageLayoutVariant;
8923
+ tablet?: WidgetPageLayoutVariant;
8924
+ mobile?: WidgetPageLayoutVariant;
8925
+ }
8926
+ /**
8927
+ * Canonical slot occupancy for preset-driven pages.
8928
+ * Maps widget keys to semantic slot ids from the active layout preset.
8929
+ */
8930
+ type WidgetPageSlotAssignments = Record<string, string>;
8931
+ interface WidgetPageDefinition {
8932
+ widgets: WidgetInstance[];
8352
8933
  connections?: WidgetConnection[];
8353
- /** Optional declarative page state shared with builders and future runtime bridges. */
8934
+ /** Optional declarative page state shared across widgets and connections */
8354
8935
  state?: WidgetPageStateInput;
8936
+ /** Optional page-wide context available to all widgets */
8355
8937
  context?: Record<string, any>;
8356
- /** Grid options */
8357
- options?: {
8358
- cols?: number;
8359
- rowHeight?: number;
8360
- gap?: number;
8361
- };
8938
+ /** Optional layout configuration for the widget grid */
8939
+ layout?: WidgetPageLayout;
8940
+ /** Optional canonical spatial canvas rendered over CSS Grid. */
8941
+ canvas?: WidgetPageCanvasLayout;
8942
+ /** Optional canonical preset id that describes the structural intent of the page. */
8943
+ layoutPreset?: string;
8944
+ /** Optional preset-specific options consumed by builders and future runtimes. */
8945
+ layoutPresetOptions?: Record<string, any>;
8946
+ /** Optional semantic grouping model for sections, tabs, hero areas and rails. */
8947
+ grouping?: WidgetPageGroupingDefinition[];
8948
+ /** Optional canonical semantic slot occupancy for preset-driven pages. */
8949
+ slotAssignments?: WidgetPageSlotAssignments;
8950
+ /** Optional device-specific layout variants. */
8951
+ deviceLayouts?: WidgetPageDeviceLayouts;
8952
+ /** Optional theme preset id for shell/chart/density defaults. */
8953
+ themePreset?: string;
8362
8954
  }
8363
8955
 
8364
8956
  /**
@@ -8380,14 +8972,14 @@ interface PageIdentity {
8380
8972
  * Minimal persisted widget instance record with a stable unique id.
8381
8973
  * The `key` continues to serve as logical name within the page.
8382
8974
  */
8383
- interface PersistedWidgetInstance extends GridWidgetInstance {
8975
+ interface PersistedWidgetInstance extends WidgetInstance {
8384
8976
  /** Stable unique id for the widget instance (uuid) */
8385
8977
  id: string;
8386
8978
  }
8387
8979
  /**
8388
8980
  * Page definition with widget-level ids added. Use for persistence payloads.
8389
8981
  */
8390
- interface GridPageDefinitionWithIds extends Omit<GridPageDefinition, 'widgets'> {
8982
+ interface PersistedPageDefinitionWithIds extends Omit<WidgetPageDefinition, 'widgets'> {
8391
8983
  widgets: PersistedWidgetInstance[];
8392
8984
  }
8393
8985
  /**
@@ -8410,7 +9002,7 @@ interface PersistedPageConfig {
8410
9002
  /** Lifecycle status */
8411
9003
  status: 'draft' | 'published' | 'archived';
8412
9004
  /** Actual page structure with widget ids */
8413
- page: GridPageDefinitionWithIds;
9005
+ page: PersistedPageDefinitionWithIds;
8414
9006
  /** Audit */
8415
9007
  owner?: string;
8416
9008
  createdAt: string;
@@ -8426,15 +9018,15 @@ declare function buildPageKey(identity: PageIdentity): string;
8426
9018
  * Ensure that each widget has a stable id. If missing, assigns a new one.
8427
9019
  * Returns the new page definition (immutable) and an index by key/id.
8428
9020
  */
8429
- declare function ensurePageIds(page: GridPageDefinition): {
8430
- page: GridPageDefinitionWithIds;
9021
+ declare function ensurePageIds(page: WidgetPageDefinition): {
9022
+ page: PersistedPageDefinitionWithIds;
8431
9023
  byKey: Map<string, PersistedWidgetInstance>;
8432
9024
  byId: Map<string, PersistedWidgetInstance>;
8433
9025
  };
8434
9026
  /**
8435
9027
  * Create a persisted page record from an in-memory page definition and identity.
8436
9028
  */
8437
- declare function createPersistedPage(identity: PageIdentity, page: GridPageDefinition, opts?: {
9029
+ declare function createPersistedPage(identity: PageIdentity, page: WidgetPageDefinition, opts?: {
8438
9030
  id?: string;
8439
9031
  title?: string;
8440
9032
  description?: string;
@@ -8464,6 +9056,19 @@ interface BackConfig {
8464
9056
  confirmOnDirty?: boolean;
8465
9057
  }
8466
9058
 
9059
+ interface PraxisDataQueryContext {
9060
+ filters?: Record<string, unknown> | null;
9061
+ sort?: string[] | null;
9062
+ limit?: number | null;
9063
+ page?: {
9064
+ index?: number | null;
9065
+ size?: number | null;
9066
+ } | null;
9067
+ meta?: Record<string, unknown> | null;
9068
+ }
9069
+ declare function normalizePraxisDataQueryContext(context?: PraxisDataQueryContext | null): PraxisDataQueryContext | null;
9070
+ declare function resolvePraxisFilterCriteria(filterCriteria?: Record<string, unknown> | null, queryContext?: PraxisDataQueryContext | null): Record<string, unknown>;
9071
+
8467
9072
  type LoadingPhase = 'config' | 'schema' | 'render' | 'data' | 'idle';
8468
9073
  type LoadingStatus = 'loading' | 'success' | 'error';
8469
9074
  interface LoadingState {
@@ -8802,10 +9407,83 @@ interface GlobalActionUiSchema {
8802
9407
  id: GlobalActionId;
8803
9408
  label: string;
8804
9409
  fields: GlobalActionField[];
9410
+ editorMode?: 'default' | 'surface-open';
8805
9411
  }
8806
9412
  declare const GLOBAL_ACTION_UI_SCHEMAS: GlobalActionUiSchema[];
8807
9413
  declare function getGlobalActionUiSchema(id: string | undefined): GlobalActionUiSchema | undefined;
8808
9414
 
9415
+ interface SurfaceOpenPreset {
9416
+ id: string;
9417
+ label: string;
9418
+ description: string;
9419
+ payload: SurfaceOpenPayload;
9420
+ }
9421
+ declare const SURFACE_OPEN_PRESETS: SurfaceOpenPreset[];
9422
+
9423
+ type SurfaceSizeField = keyof NonNullable<SurfaceOpenPayload['size']>;
9424
+ declare class SurfaceOpenActionEditorComponent implements OnChanges {
9425
+ value?: SurfaceOpenPayload | null;
9426
+ hostKind?: string | null;
9427
+ valueChange: EventEmitter<SurfaceOpenPayload>;
9428
+ draft: SurfaceOpenPayload;
9429
+ inputJsonDrafts: Record<string, string>;
9430
+ inputErrors: Record<string, string>;
9431
+ contextDraft: string;
9432
+ contextError: string;
9433
+ private readonly registry;
9434
+ private readonly i18n;
9435
+ private static nextInstanceId;
9436
+ private readonly instanceId;
9437
+ readonly sourceSuggestionsListId: string;
9438
+ readonly targetSuggestionsListId: string;
9439
+ get availablePresets(): SurfaceOpenPreset[];
9440
+ get componentOptions(): ComponentDocMeta[];
9441
+ get selectedComponentMeta(): ComponentDocMeta | undefined;
9442
+ get selectedInputs(): NonNullable<ComponentDocMeta['inputs']>;
9443
+ get bindingOrderText(): string;
9444
+ get bindingSourceSuggestions(): string[];
9445
+ get bindingTargetSuggestions(): string[];
9446
+ get bindingSourceSuggestionsPreview(): string;
9447
+ get bindingTargetSuggestionsPreview(): string;
9448
+ ngOnChanges(changes: SimpleChanges): void;
9449
+ updatePresentation(value: SurfaceOpenPayload['presentation']): void;
9450
+ updateTextField(field: 'title' | 'subtitle' | 'icon', value: string): void;
9451
+ updateSizeField(field: SurfaceSizeField, value: string): void;
9452
+ updateWidgetId(componentId: string): void;
9453
+ updateBindingOrder(value: string): void;
9454
+ applyPreset(preset: SurfaceOpenPreset): void;
9455
+ isBooleanType(type?: string): boolean;
9456
+ isNumberType(type?: string): boolean;
9457
+ isJsonType(type?: string): boolean;
9458
+ getBooleanInputValue(name: string): boolean;
9459
+ getScalarInputValue(name: string): any;
9460
+ getJsonInputDraft(name: string): string;
9461
+ scalarPlaceholder(input: NonNullable<ComponentDocMeta['inputs']>[number]): string;
9462
+ jsonPlaceholder(input: NonNullable<ComponentDocMeta['inputs']>[number]): string;
9463
+ updateBooleanInput(name: string, value: boolean): void;
9464
+ updateScalarInput(name: string, type: string, value: any): void;
9465
+ updateJsonInput(name: string, value: string): void;
9466
+ addBinding(): void;
9467
+ updateBinding(index: number, field: keyof SurfaceBinding, value: any): void;
9468
+ removeBinding(index: number): void;
9469
+ updateContext(value: string): void;
9470
+ presetLabel(preset: SurfaceOpenPreset): string;
9471
+ presetDescription(preset: SurfaceOpenPreset): string;
9472
+ t(key: string, fallback: string, params?: Record<string, string | number | boolean | null | undefined>): string;
9473
+ private refreshJsonDrafts;
9474
+ private emitDraft;
9475
+ private ensureWidgetInputs;
9476
+ private reconcileInputsForComponent;
9477
+ private assignTextField;
9478
+ private normalizePayload;
9479
+ private createDefaultPayload;
9480
+ private stringifyJson;
9481
+ private clone;
9482
+ private uniqueStrings;
9483
+ static ɵfac: i0.ɵɵFactoryDeclaration<SurfaceOpenActionEditorComponent, never>;
9484
+ static ɵcmp: i0.ɵɵComponentDeclaration<SurfaceOpenActionEditorComponent, "praxis-surface-open-action-editor", never, { "value": { "alias": "value"; "required": false; }; "hostKind": { "alias": "hostKind"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
9485
+ }
9486
+
8809
9487
  type AiValueKind = 'boolean' | 'string' | 'number' | 'enum' | 'expression' | 'object' | 'array';
8810
9488
  interface AiCapabilityCategoryMap {
8811
9489
  identity: true;
@@ -8977,6 +9655,31 @@ interface ComponentMergePatch<TConfig extends Record<string, unknown> = Record<s
8977
9655
 
8978
9656
  declare const DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK: ComponentContextPack;
8979
9657
 
9658
+ interface WidgetEventPathSegment {
9659
+ kind: 'tabs' | 'tab' | 'nav' | 'link' | 'expansion' | 'panel' | 'stepper' | 'step' | 'slot' | 'group';
9660
+ id?: string;
9661
+ index?: number;
9662
+ }
9663
+ interface WidgetEventEnvelope {
9664
+ /** Optional top-level page widget key that owns the event tree. */
9665
+ ownerWidgetKey?: string;
9666
+ /** Registered component id of the emitting widget/component instance. */
9667
+ sourceComponentId: string;
9668
+ /** Optional author-defined key for nested widget instances inside a container/composite. */
9669
+ sourceChildWidgetKey?: string;
9670
+ output?: string;
9671
+ payload?: any;
9672
+ path?: WidgetEventPathSegment[];
9673
+ }
9674
+ type WidgetResolutionPhase = 'ready' | 'metadata-missing' | 'create-error' | 'validation-error' | 'bind-error';
9675
+ interface WidgetResolutionDiagnostic {
9676
+ componentId?: string;
9677
+ childWidgetKey?: string;
9678
+ phase: WidgetResolutionPhase;
9679
+ message?: string;
9680
+ error?: unknown;
9681
+ }
9682
+
8980
9683
  type EditorialContentFormat = 'plain' | 'markdown';
8981
9684
  interface EditorialLinkDefinition {
8982
9685
  label: string;
@@ -9170,16 +9873,14 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
9170
9873
  private readonly vcRef;
9171
9874
  private readonly registry;
9172
9875
  widget?: WidgetDefinition | string;
9876
+ ownerWidgetKey?: string | null;
9173
9877
  context?: Record<string, any> | null;
9174
9878
  /** When true, invalid inputs/outputs cause errors; otherwise only warnings. */
9175
9879
  strictValidation: boolean;
9176
9880
  /** When true, auto-subscribes to all outputs declared in metadata if outputs map is empty. Useful in editor/runtime to propagate events without explicit mapping. */
9177
9881
  autoWireOutputs: boolean;
9178
- widgetEvent: EventEmitter<{
9179
- sourceId: string;
9180
- output?: string;
9181
- payload?: any;
9182
- }>;
9882
+ widgetEvent: EventEmitter<WidgetEventEnvelope>;
9883
+ widgetDiagnostic: EventEmitter<WidgetResolutionDiagnostic>;
9183
9884
  private compRef?;
9184
9885
  private currentId?;
9185
9886
  private outputSubs;
@@ -9195,11 +9896,13 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
9195
9896
  private bindInputs;
9196
9897
  private bindOutputs;
9197
9898
  private resolveValue;
9899
+ private get widgetDefinition();
9900
+ private emitDiagnostic;
9198
9901
  private lookup;
9199
9902
  private validateAgainstMetadata;
9200
9903
  private coercePrimitive;
9201
9904
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetLoaderDirective, never>;
9202
- static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicWidgetLoaderDirective, "[dynamicWidgetLoader]", ["dynamicWidgetLoader"], { "widget": { "alias": "dynamicWidgetLoader"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoWireOutputs": { "alias": "autoWireOutputs"; "required": false; }; }, { "widgetEvent": "widgetEvent"; }, never, never, true, never>;
9905
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicWidgetLoaderDirective, "[dynamicWidgetLoader]", ["dynamicWidgetLoader"], { "widget": { "alias": "dynamicWidgetLoader"; "required": false; }; "ownerWidgetKey": { "alias": "ownerWidgetKey"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoWireOutputs": { "alias": "autoWireOutputs"; "required": false; }; }, { "widgetEvent": "widgetEvent"; "widgetDiagnostic": "widgetDiagnostic"; }, never, never, true, never>;
9203
9906
  }
9204
9907
 
9205
9908
  type ActionList = WidgetShellAction[];
@@ -9208,7 +9911,11 @@ declare const BUILTIN_SHELL_PRESETS: Record<string, NonNullable<Appearance>>;
9208
9911
  declare class WidgetShellComponent implements OnChanges {
9209
9912
  shell?: WidgetShellConfig | null;
9210
9913
  context?: Record<string, any> | null;
9914
+ dragSurfaceEnabled: boolean;
9915
+ dragSurfaceLabel: string | null;
9211
9916
  action: EventEmitter<WidgetShellActionEvent>;
9917
+ dragSurfacePointerDown: EventEmitter<PointerEvent>;
9918
+ dragSurfaceKeydown: EventEmitter<KeyboardEvent>;
9212
9919
  loader?: DynamicWidgetLoaderDirective;
9213
9920
  get appearance(): WidgetShellConfig['appearance'];
9214
9921
  collapsed: boolean;
@@ -9223,6 +9930,8 @@ declare class WidgetShellComponent implements OnChanges {
9223
9930
  private get maxHeaderActions();
9224
9931
  get windowActions(): ActionList;
9225
9932
  onAction(action: WidgetShellAction, ev: MouseEvent): void;
9933
+ onHeaderPointerDown(event: PointerEvent): void;
9934
+ onHeaderKeydown(event: KeyboardEvent): void;
9226
9935
  stopIfExpanded(ev: MouseEvent): void;
9227
9936
  closeOverlay(): void;
9228
9937
  private handleWindowAction;
@@ -9230,10 +9939,14 @@ declare class WidgetShellComponent implements OnChanges {
9230
9939
  private isVisible;
9231
9940
  private resolvePresetAppearance;
9232
9941
  private mergeAppearance;
9942
+ private isInteractiveHeaderTarget;
9233
9943
  static ɵfac: i0.ɵɵFactoryDeclaration<WidgetShellComponent, never>;
9234
- static ɵcmp: i0.ɵɵComponentDeclaration<WidgetShellComponent, "praxis-widget-shell", never, { "shell": { "alias": "shell"; "required": false; }; "context": { "alias": "context"; "required": false; }; }, { "action": "action"; }, ["loader"], ["*"], true, never>;
9944
+ static ɵcmp: i0.ɵɵComponentDeclaration<WidgetShellComponent, "praxis-widget-shell", never, { "shell": { "alias": "shell"; "required": false; }; "context": { "alias": "context"; "required": false; }; "dragSurfaceEnabled": { "alias": "dragSurfaceEnabled"; "required": false; }; "dragSurfaceLabel": { "alias": "dragSurfaceLabel"; "required": false; }; }, { "action": "action"; "dragSurfacePointerDown": "dragSurfacePointerDown"; "dragSurfaceKeydown": "dragSurfaceKeydown"; }, ["loader"], ["*"], true, never>;
9235
9945
  }
9236
9946
 
9947
+ declare const BUILTIN_PAGE_LAYOUT_PRESETS: Record<string, WidgetPageLayoutPresetDefinition>;
9948
+ declare const BUILTIN_PAGE_THEME_PRESETS: Record<string, WidgetPageThemePresetDefinition>;
9949
+
9237
9950
  declare class ConnectionManagerService {
9238
9951
  /** Extract value from an object using dot-path (e.g., 'payload.row.id'). */
9239
9952
  extractByPath(obj: any, path: string | undefined): any;
@@ -9242,7 +9955,7 @@ declare class ConnectionManagerService {
9242
9955
  /** Find connections triggered by a state-path update. */
9243
9956
  findStateMatches(connections: WidgetConnection[] | undefined, statePath: string): WidgetConnection[];
9244
9957
  /** Apply a single match into widgets array, supporting dot-path in target input. Returns a new array. */
9245
- applyMatch(widgets: GridWidgetInstance[], match: WidgetConnection & {
9958
+ applyMatch(widgets: WidgetInstance[], match: WidgetConnection & {
9246
9959
  to: {
9247
9960
  widget: string;
9248
9961
  input: string;
@@ -9250,7 +9963,7 @@ declare class ConnectionManagerService {
9250
9963
  };
9251
9964
  }, event: {
9252
9965
  payload?: any;
9253
- }): GridWidgetInstance[];
9966
+ }): WidgetInstance[];
9254
9967
  resolveConnectionValue(match: Pick<WidgetConnection, 'map' | 'set'>, event: {
9255
9968
  payload?: any;
9256
9969
  } | Record<string, any>): any;
@@ -9287,21 +10000,277 @@ declare class WidgetPageStateRuntimeService {
9287
10000
  private computeDerivedNode;
9288
10001
  private resolveNamedSource;
9289
10002
  private resolveSourceValues;
10003
+ private aggregateArray;
10004
+ private buildFieldList;
10005
+ private groupTop;
10006
+ private selectCase;
10007
+ private matchesCase;
10008
+ private resolveCaseValue;
9290
10009
  private resolveTemplate;
9291
10010
  private readPath;
9292
10011
  private isPlainObject;
9293
10012
  private isEqual;
10013
+ private isEmptyValue;
10014
+ private readMetricValue;
10015
+ private toNumber;
10016
+ private formatFieldValue;
9294
10017
  private clone;
9295
10018
  static ɵfac: i0.ɵɵFactoryDeclaration<WidgetPageStateRuntimeService, never>;
9296
10019
  static ɵprov: i0.ɵɵInjectableDeclaration<WidgetPageStateRuntimeService>;
9297
10020
  }
9298
10021
 
9299
- declare class DynamicWidgetPageComponent implements OnChanges {
10022
+ declare function adaptWidgetConnectionToCompositionLink(connection: WidgetConnection): CompositionLink;
10023
+ declare function adaptWidgetConnectionsToCompositionLinks(connections: WidgetConnection[] | undefined): CompositionLink[];
10024
+
10025
+ interface WidgetPageCompositionState {
10026
+ primaryValues: Record<string, unknown>;
10027
+ schema: Record<string, WidgetStateNode>;
10028
+ /** Definitions carried forward for a later derived-state materialization phase. */
10029
+ derivedDefinitions: Record<string, WidgetDerivedStateNode>;
10030
+ }
10031
+ interface WidgetPageComposition {
10032
+ widgetOrder: string[];
10033
+ widgetsByKey: Record<string, WidgetInstance>;
10034
+ links: CompositionLink[];
10035
+ state: WidgetPageCompositionState;
10036
+ context: Record<string, unknown>;
10037
+ }
10038
+
10039
+ interface CompositionRuntimeStoreInit {
10040
+ pageId?: string;
10041
+ status?: RuntimeSnapshotStatus;
10042
+ generatedAt?: string;
10043
+ links?: RuntimeLinkSnapshot[];
10044
+ state?: Partial<RuntimeStateSnapshot>;
10045
+ diagnostics?: DiagnosticRecord[];
10046
+ traceTail?: RuntimeTraceEntry[];
10047
+ }
10048
+ interface RuntimeLinkSnapshotPatch {
10049
+ linkId: string;
10050
+ status?: RuntimeLinkStatus;
10051
+ lastEventAt?: string;
10052
+ lastDispatchTraceId?: string;
10053
+ lastDeliveredValuePreview?: unknown;
10054
+ diagnostics?: DiagnosticRecord[];
10055
+ }
10056
+ interface CompositionRuntimeStoreCycleUpdate {
10057
+ generatedAt?: string;
10058
+ status?: RuntimeSnapshotStatus;
10059
+ stateSnapshot?: RuntimeStateSnapshot;
10060
+ primaryValuesPatch?: Record<string, unknown>;
10061
+ derivedValuesPatch?: Record<string, unknown>;
10062
+ transientValuesPatch?: Record<string, unknown>;
10063
+ changedPaths?: string[];
10064
+ linkPatches?: RuntimeLinkSnapshotPatch[];
10065
+ diagnostics?: DiagnosticRecord[];
10066
+ traceTail?: RuntimeTraceEntry[];
10067
+ }
10068
+ type CompositionRuntimeSnapshotListener = (snapshot: RuntimeSnapshot) => void;
10069
+ declare class CompositionRuntimeStore {
10070
+ private snapshot;
10071
+ private readonly listeners;
10072
+ constructor(init?: CompositionRuntimeStoreInit);
10073
+ getSnapshot(): RuntimeSnapshot;
10074
+ subscribe(listener: CompositionRuntimeSnapshotListener): () => void;
10075
+ reset(init?: CompositionRuntimeStoreInit): RuntimeSnapshot;
10076
+ applyCycle(update: CompositionRuntimeStoreCycleUpdate): RuntimeSnapshot;
10077
+ private emit;
10078
+ }
10079
+
10080
+ interface TransformRuntimeContext {
10081
+ event?: unknown;
10082
+ payload?: unknown;
10083
+ state?: Record<string, unknown>;
10084
+ derived?: Record<string, unknown>;
10085
+ transient?: Record<string, unknown>;
10086
+ context?: Record<string, unknown>;
10087
+ }
10088
+
10089
+ interface LinkExecutorPathAccessor {
10090
+ extractByPath(source: unknown, path: string): unknown;
10091
+ setValueAtPath(source: unknown, path: string, value: unknown): any;
10092
+ }
10093
+ interface LinkExecutorTransformRunner {
10094
+ executePipeline(pipeline: CompositionLink['transform'] extends infer T ? Exclude<T, undefined> : never, runtime: TransformRuntimeContext): {
10095
+ value: unknown;
10096
+ diagnostics: DiagnosticRecord[];
10097
+ failed: boolean;
10098
+ };
10099
+ }
10100
+ interface LinkExecutionContext {
10101
+ snapshot: Pick<RuntimeSnapshot, 'state'> | {
10102
+ state: RuntimeStateSnapshot;
10103
+ };
10104
+ event?: unknown;
10105
+ payload?: unknown;
10106
+ context?: Record<string, unknown>;
10107
+ now?: string;
10108
+ lastDeliveredValue?: unknown;
10109
+ lastDeliveredAt?: string;
10110
+ }
10111
+ interface LinkExecutionDelivery {
10112
+ kind: 'state' | 'component-port';
10113
+ value: unknown;
10114
+ statePath?: string;
10115
+ stateLayer?: 'values' | 'derived' | 'transient';
10116
+ widgetKey?: string;
10117
+ portId?: string;
10118
+ bindingPath?: string;
10119
+ }
10120
+ interface LinkExecutionResult {
10121
+ status: 'delivered' | 'skipped' | 'failed';
10122
+ value: unknown;
10123
+ diagnostics: DiagnosticRecord[];
10124
+ snapshot: RuntimeStateSnapshot;
10125
+ delivery?: LinkExecutionDelivery;
10126
+ skippedReason?: string;
10127
+ }
10128
+ declare class LinkExecutorService {
10129
+ private readonly transforms;
10130
+ private readonly pathAccessor;
10131
+ constructor(transforms?: LinkExecutorTransformRunner, pathAccessor?: LinkExecutorPathAccessor);
10132
+ executeLink(link: CompositionLink, context: LinkExecutionContext): LinkExecutionResult;
10133
+ private resolveSourceValue;
10134
+ private matchesConditions;
10135
+ private evaluateCondition;
10136
+ private evaluateExpression;
10137
+ private resolveExpressionOperand;
10138
+ private readConditionValue;
10139
+ private matchesPortKind;
10140
+ private buildTransformContext;
10141
+ private resolveMissingValuePolicy;
10142
+ private resolvePolicySkip;
10143
+ private deliverValue;
10144
+ private readStatePath;
10145
+ private buildEffectiveState;
10146
+ private createDiagnostic;
10147
+ private isEmptyValue;
10148
+ private isEqual;
10149
+ private cloneSnapshot;
10150
+ private clone;
10151
+ }
10152
+
10153
+ interface RuntimeTraceEntryInput {
10154
+ timestamp: string;
10155
+ phase: RuntimeTracePhase;
10156
+ subject: DiagnosticSubjectRef;
10157
+ linkId?: string;
10158
+ payload?: unknown;
10159
+ inputSnapshot?: unknown;
10160
+ outputSnapshot?: unknown;
10161
+ details?: Record<string, unknown>;
10162
+ diagnostics?: string[];
10163
+ }
10164
+ declare class RuntimeTraceService {
10165
+ createEntry(traceId: string, sequence: number, input: RuntimeTraceEntryInput): RuntimeTraceEntry;
10166
+ summarizePayload(payload: unknown): RuntimePayloadSummary | undefined;
10167
+ private clone;
10168
+ }
10169
+
10170
+ type CompositionRuntimeDefinition = WidgetPageComposition;
10171
+ interface CompositionDispatchEvent {
10172
+ eventId: string;
10173
+ source: EndpointRef;
10174
+ payload?: unknown;
10175
+ occurredAt?: string;
10176
+ }
10177
+ interface CompositionRuntimeCycleResult {
10178
+ cycleId: string;
10179
+ matchedLinkIds: string[];
10180
+ snapshot: RuntimeSnapshot;
10181
+ diagnostics: DiagnosticRecord[];
10182
+ }
10183
+ interface CompositionRuntimeEngineOptions {
10184
+ now?: () => string;
10185
+ store?: CompositionRuntimeStore;
10186
+ linkExecutor?: LinkExecutorService;
10187
+ stateRuntime?: WidgetPageStateRuntimeService;
10188
+ traceService?: RuntimeTraceService;
10189
+ }
10190
+ interface CompositionStateWidgetPreviewOptions {
10191
+ widgets?: WidgetInstance[];
10192
+ state?: RuntimeStateSnapshot;
10193
+ now?: string;
10194
+ }
10195
+ interface CompositionStateWidgetPreviewResult {
10196
+ widgets: WidgetInstance[];
10197
+ matchedLinkIds: string[];
10198
+ diagnostics: DiagnosticRecord[];
10199
+ }
10200
+ declare class CompositionRuntimeEngine {
10201
+ private readonly store;
10202
+ private readonly linkExecutor;
10203
+ private readonly stateRuntime;
10204
+ private readonly traceService;
10205
+ private readonly pathAccessor;
10206
+ private definition;
10207
+ private readonly now;
10208
+ constructor(options?: CompositionRuntimeEngineOptions);
10209
+ bootstrap(definition: CompositionRuntimeDefinition): RuntimeSnapshot;
10210
+ dispatch(event: CompositionDispatchEvent): CompositionRuntimeCycleResult;
10211
+ getSnapshot(): RuntimeSnapshot;
10212
+ getStore(): CompositionRuntimeStore;
10213
+ projectStateWidgetInputs(definition: CompositionRuntimeDefinition, options?: CompositionStateWidgetPreviewOptions): CompositionStateWidgetPreviewResult;
10214
+ private createLinkSnapshot;
10215
+ private applyBootstrapHydration;
10216
+ private materializeDerivedState;
10217
+ private createDerivedDiagnostic;
10218
+ private clonePreviewWidgets;
10219
+ private cloneJson;
10220
+ }
10221
+
10222
+ interface CompositionRuntimeFacadeOptions {
10223
+ engine?: CompositionRuntimeEngine;
10224
+ engineOptions?: CompositionRuntimeEngineOptions;
10225
+ }
10226
+ declare class CompositionRuntimeFacade {
10227
+ private readonly engine;
10228
+ private readonly snapshotSubject;
10229
+ private readonly unsubscribeFromStore;
10230
+ readonly snapshot$: Observable<RuntimeSnapshot>;
10231
+ readonly diagnostics$: Observable<DiagnosticRecord[]>;
10232
+ readonly traceTail$: Observable<RuntimeTraceEntry[]>;
10233
+ constructor(options?: CompositionRuntimeFacadeOptions);
10234
+ bootstrap(definition: CompositionRuntimeDefinition): RuntimeSnapshot;
10235
+ dispatch(event: CompositionDispatchEvent): CompositionRuntimeCycleResult;
10236
+ projectStateWidgetInputs(definition: CompositionRuntimeDefinition, options?: CompositionStateWidgetPreviewOptions): CompositionStateWidgetPreviewResult;
10237
+ getSnapshot(): RuntimeSnapshot;
10238
+ getEngine(): CompositionRuntimeEngine;
10239
+ destroy(): void;
10240
+ }
10241
+
10242
+ interface RenderedWidgetInstance extends WidgetInstance {
10243
+ renderClassName?: string;
10244
+ renderSpan?: number;
10245
+ renderCanvasItem?: WidgetPageCanvasItem;
10246
+ }
10247
+ interface RenderedTabsGroup {
10248
+ id: string;
10249
+ label?: string;
10250
+ widgets: RenderedWidgetInstance[];
10251
+ }
10252
+ interface RenderedWidgetGroup {
10253
+ id: string;
10254
+ kind: WidgetPageGroupingDefinition['kind'] | 'ungrouped';
10255
+ label?: string;
10256
+ layout?: 'stack' | 'grid' | 'row';
10257
+ emphasis?: 'high' | 'medium';
10258
+ side?: 'left' | 'right';
10259
+ widgets: RenderedWidgetInstance[];
10260
+ tabs?: RenderedTabsGroup[];
10261
+ }
10262
+ type CanvasResizeHandle = 'north' | 'south' | 'east' | 'west' | 'north-east' | 'north-west' | 'south-east' | 'south-west';
10263
+ interface CanvasResizeHandleDefinition {
10264
+ id: CanvasResizeHandle;
10265
+ className: string;
10266
+ }
10267
+ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
9300
10268
  private conn;
9301
10269
  private stateRuntime;
9302
10270
  private settingsPanel;
9303
10271
  private defaultShellEditor;
9304
10272
  private defaultPageEditor;
10273
+ pageCanvasHost?: ElementRef<HTMLElement>;
9305
10274
  page?: WidgetPageDefinition | string;
9306
10275
  context?: Record<string, any> | null;
9307
10276
  strictValidation: boolean;
@@ -9320,29 +10289,48 @@ declare class DynamicWidgetPageComponent implements OnChanges {
9320
10289
  /** Optional instance key for pages rendered multiple times. */
9321
10290
  componentInstanceId?: string;
9322
10291
  pageChange: EventEmitter<WidgetPageDefinition>;
10292
+ widgetDiagnosticsChange: EventEmitter<Record<string, WidgetResolutionDiagnostic>>;
9323
10293
  widgets: i0.WritableSignal<WidgetInstance[]>;
10294
+ renderedGroups: i0.WritableSignal<RenderedWidgetGroup[]>;
9324
10295
  mergedContext: Record<string, any>;
9325
10296
  pageGap: string;
9326
10297
  gridTemplateColumns: string;
10298
+ gridAutoRows: string;
10299
+ layoutAnnouncement: string;
10300
+ readonly canvasResizeHandles: readonly CanvasResizeHandleDefinition[];
9327
10301
  private pageDefinition?;
9328
10302
  private pageState;
9329
10303
  private pageRuntime;
9330
10304
  private layout?;
10305
+ private canvas?;
10306
+ private grouping;
10307
+ private pageColumnCount;
10308
+ private activeTabs;
10309
+ private widgetDiagnostics;
10310
+ private selectedCanvasWidgetKey;
10311
+ private blockedCanvasWidgetKey;
10312
+ private canvasPreviewState;
10313
+ private canvasPreviewInvalidState;
10314
+ private transientCanvasItemsState;
10315
+ private activeCanvasInteraction;
9331
10316
  private appliedPersisted;
9332
10317
  private isHydrating;
9333
10318
  private persistenceReady;
9334
10319
  private warnedMissingKey;
10320
+ private readonly compositionFactory;
10321
+ private readonly compositionRuntime;
10322
+ private compositionDefinition?;
9335
10323
  private readonly globalActions;
9336
10324
  private readonly storage;
9337
10325
  private readonly componentKeys;
10326
+ private readonly i18n;
9338
10327
  private readonly route;
9339
10328
  constructor(conn: ConnectionManagerService, stateRuntime: WidgetPageStateRuntimeService, settingsPanel: SettingsPanelBridge | null, defaultShellEditor: Type<any> | null, defaultPageEditor: Type<any> | null);
10329
+ ngOnDestroy(): void;
9340
10330
  ngOnChanges(changes: SimpleChanges): void;
9341
- onWidgetEvent(fromKey: string, evt: {
9342
- sourceId: string;
9343
- output?: string;
9344
- payload?: any;
9345
- }): void;
10331
+ onWidgetEvent(fromKey: string, evt: WidgetEventEnvelope): void;
10332
+ private areStateValuesEqual;
10333
+ onWidgetDiagnostic(widgetKey: string, diagnostic: WidgetResolutionDiagnostic): void;
9346
10334
  onShellAction(fromKey: string, evt: WidgetShellActionEvent): void;
9347
10335
  private handleSetInputCommand;
9348
10336
  private mergeOrder;
@@ -9357,11 +10345,84 @@ declare class DynamicWidgetPageComponent implements OnChanges {
9357
10345
  private applyPageLayout;
9358
10346
  private applyPageUpdate;
9359
10347
  private applyLayout;
10348
+ private applyCanvasLayout;
9360
10349
  private mergeContext;
9361
10350
  onWindowResize(): void;
10351
+ onCanvasPointerMove(event: PointerEvent): void;
10352
+ onCanvasPointerUp(event: PointerEvent): void;
10353
+ onCanvasPointerCancel(event: PointerEvent): void;
9362
10354
  private resolveColumns;
9363
10355
  private ensurePageDefinition;
9364
10356
  private parsePage;
10357
+ private resolvePagePresets;
10358
+ private mergeLayout;
10359
+ private applyResponsivePresentation;
10360
+ private resolveEffectivePresentation;
10361
+ private resolveDeviceVariant;
10362
+ private resolveCanvas;
10363
+ private resolveDeviceKind;
10364
+ isCanvasMode(): boolean;
10365
+ selectCanvasWidget(widgetKey: string): void;
10366
+ isCanvasWidgetSelected(widgetKey: string): boolean;
10367
+ isCanvasWidgetBlocked(widgetKey: string): boolean;
10368
+ canvasPreviewItem(): WidgetPageCanvasItem | null;
10369
+ canvasPreviewGridColumn(): string | null;
10370
+ canvasPreviewGridRow(): string | null;
10371
+ canvasPreviewInvalid(): boolean;
10372
+ startCanvasDrag(widgetKey: string, event: PointerEvent): void;
10373
+ startCanvasResize(widgetKey: string, handle: CanvasResizeHandle, event: PointerEvent): void;
10374
+ onCanvasHandleKeydown(widgetKey: string, kind: 'drag' | 'resize', event: KeyboardEvent): void;
10375
+ onCanvasResizeHandleKeydown(widgetKey: string, handle: CanvasResizeHandle, event: KeyboardEvent): void;
10376
+ private applyWidgetLayoutOverrides;
10377
+ private applyCanvasLayoutToWidgets;
10378
+ private startCanvasInteraction;
10379
+ private currentCanvasMetrics;
10380
+ private currentCanvasItem;
10381
+ private resolveCanvasInteractionDelta;
10382
+ private updateCanvasItem;
10383
+ private applyTransientPagePreview;
10384
+ private resolveCanvasTarget;
10385
+ private applyCanvasDrag;
10386
+ private applyCanvasResize;
10387
+ private applyCanvasKeyboardDrag;
10388
+ private applyCanvasKeyboardResize;
10389
+ pageSettingsLabel(): string;
10390
+ dragWidgetLabel(): string;
10391
+ resizeWidgetLabel(): string;
10392
+ resizeHandleLabel(handle: CanvasResizeHandle): string;
10393
+ private canvasAnnouncement;
10394
+ private blockedCanvasAnnouncement;
10395
+ private canvasSwapAnnouncement;
10396
+ private positionedCanvasAnnouncement;
10397
+ private t;
10398
+ private resolveCanvasConstraints;
10399
+ private normalizeCanvasItem;
10400
+ private resolveCanvasCollisionPolicy;
10401
+ private resolveCanvasPlacement;
10402
+ private findCanvasCollisions;
10403
+ private buildCanvasSwapItem;
10404
+ private canPlaceCanvasItem;
10405
+ private canvasItemsOverlap;
10406
+ private isSameCanvasItem;
10407
+ private clampCanvasCol;
10408
+ private clampNumber;
10409
+ private parseCssPixelValue;
10410
+ private releaseCanvasPointerCapture;
10411
+ private clonePageDefinition;
10412
+ private cloneWidgets;
10413
+ private applyGroupingOverrides;
10414
+ private buildRenderedGroups;
10415
+ private syncActiveTabs;
10416
+ activeTabId(groupId: string): string;
10417
+ selectGroupTab(groupId: string, tabId: string): void;
10418
+ resolveGroupContentLayout(group: RenderedWidgetGroup): 'stack' | 'grid' | 'row';
10419
+ groupGridColumn(group: RenderedWidgetGroup): string | null;
10420
+ widgetGridColumn(widget: RenderedWidgetInstance): string | null;
10421
+ widgetGridRow(widget: RenderedWidgetInstance): string | null;
10422
+ widgetZIndex(widget: RenderedWidgetInstance): number | null;
10423
+ widgetClassName(widget: WidgetInstance): string;
10424
+ private mergeClassNames;
10425
+ private resolveRenderedCanvasItem;
9365
10426
  private applyEditShellActions;
9366
10427
  private savePage;
9367
10428
  private loadPersistedPage;
@@ -9370,14 +10431,20 @@ declare class DynamicWidgetPageComponent implements OnChanges {
9370
10431
  private buildPageScopeId;
9371
10432
  private warnMissingKey;
9372
10433
  private sanitizeSegment;
9373
- private applyStateConnections;
9374
10434
  private cloneStateValues;
9375
- private collectConnectedStatePaths;
10435
+ private cloneValue;
10436
+ private cloneGrouping;
9376
10437
  private buildStateRuntime;
9377
10438
  private buildStateContext;
10439
+ private resolveShellTemplates;
9378
10440
  private reportStateDiagnostics;
10441
+ private applyBootstrapCompositionHydration;
10442
+ private bootstrapCompositionAdapter;
10443
+ private dispatchWidgetEventToComposition;
10444
+ private stateFromCompositionSnapshot;
10445
+ private applyCompositionWidgetDeliveries;
9379
10446
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetPageComponent, [null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
9380
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicWidgetPageComponent, "praxis-dynamic-page", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showPageSettingsButton": { "alias": "showPageSettingsButton"; "required": false; }; "shellEditorComponent": { "alias": "shellEditorComponent"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
10447
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicWidgetPageComponent, "praxis-dynamic-page", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showPageSettingsButton": { "alias": "showPageSettingsButton"; "required": false; }; "shellEditorComponent": { "alias": "shellEditorComponent"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; }, { "pageChange": "pageChange"; "widgetDiagnosticsChange": "widgetDiagnosticsChange"; }, never, never, true, never>;
9381
10448
  }
9382
10449
 
9383
10450
  /** Metadata for Praxis Dynamic Page component */
@@ -9387,51 +10454,20 @@ declare const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA: ComponentDocMeta;
9387
10454
  */
9388
10455
  declare function providePraxisDynamicPageMetadata(): Provider;
9389
10456
 
9390
- declare class DynamicGridPageComponent implements OnChanges {
9391
- private conn;
9392
- page?: GridPageDefinition | string;
10457
+ declare class PraxisSurfaceHostComponent {
10458
+ title?: string;
10459
+ subtitle?: string;
10460
+ icon?: string;
10461
+ widget?: WidgetDefinition;
9393
10462
  context?: Record<string, any> | null;
9394
10463
  strictValidation: boolean;
9395
- /** Optional code-level grid options. Editor (page.options) takes precedence over these. */
9396
- gridOptions?: Partial<{
9397
- cols: number;
9398
- rowHeight: number;
9399
- gap: number;
9400
- }>;
9401
- /** Shows editing affordances (background overlay) on CSS Grid implementation. */
9402
- enableCustomization: boolean;
9403
- widgets: i0.WritableSignal<GridWidgetInstance[]>;
9404
- mergedContext: Record<string, any>;
9405
- private readonly globalActions;
9406
- private selectedKey;
9407
- private cols;
9408
- private _rowHeight;
9409
- private _gap;
9410
- overlayEnabled: boolean;
9411
- gridTemplateColumns: i0.Signal<string>;
9412
- rowHeight: i0.Signal<number>;
9413
- gap: i0.Signal<number>;
9414
- constructor(conn: ConnectionManagerService);
9415
- ngOnChanges(changes: SimpleChanges): void;
9416
- toGridColumn(w: GridWidgetInstance): string;
9417
- toGridRow(w: GridWidgetInstance): string;
9418
- onWidgetEvent(fromKey: string, evt: {
9419
- sourceId: string;
9420
- output?: string;
9421
- payload?: any;
9422
- }): void;
9423
- onShellAction(fromKey: string, evt: WidgetShellActionEvent): void;
9424
- isSelected(key?: string): boolean;
9425
- onTileClick(key?: string, ev?: Event): void;
9426
- private mergeOrder;
9427
- private maybeExecuteMappedAction;
9428
- private maybeExecuteGlobalCommand;
9429
- private resolveActionPayload;
9430
- private resolveTemplate;
9431
- private lookup;
9432
- private parsePage;
9433
- static ɵfac: i0.ɵɵFactoryDeclaration<DynamicGridPageComponent, never>;
9434
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicGridPageComponent, "praxis-dynamic-grid-page", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "gridOptions": { "alias": "gridOptions"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; }, {}, never, never, true, never>;
10464
+ /**
10465
+ * Keep disabled by default to avoid duplicating the title already shown by
10466
+ * modal/drawer hosts. Inline consumers may opt into rendering it again.
10467
+ */
10468
+ renderTitleInsideBody: boolean;
10469
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisSurfaceHostComponent, never>;
10470
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisSurfaceHostComponent, "praxis-surface-host", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "widget": { "alias": "widget"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "renderTitleInsideBody": { "alias": "renderTitleInsideBody"; "required": false; }; }, {}, never, never, true, never>;
9435
10471
  }
9436
10472
 
9437
10473
  interface EmptyAction {
@@ -9806,5 +10842,5 @@ declare function provideFormHookPresets(presets: Array<FormHookPreset>): Provide
9806
10842
  /** Register a whitelist of allowed hook ids/patterns. */
9807
10843
  declare function provideHookWhitelist(allowed: Array<string | RegExp>): Provider[];
9808
10844
 
9809
- export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, ApiConfigStorage, ApiEndpoint, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, ConnectionManagerService, ConsoleLoggerSink, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_TABLE_CONFIG, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DynamicFormService, DynamicGridPageComponent, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG$1 as GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_CATALOG as GLOBAL_ACTION_SPEC_CATALOG, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisUserContextSummaryComponent, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceQuickConnectComponent, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$1 as applyLocalCustomizations, applyLocalCustomizations as applyLocalFormCustomizations, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildSchemaId, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getGlobalActionCatalog, getGlobalActionUiSchema, getReferencedFieldMetadata, getTextTransformer, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isInlineFilterControlType, isRangeValidForFilter, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormMetadata, normalizePath, normalizeStart, normalizeUnknownError, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolveSpan, slugify, stripMasksHook, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, trim, uniqueAsyncValidator, urlValidator, withMessage, withPraxisHttpLoading };
9810
- export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnimationConfig, AnnouncementConfig, ApiConfigStorageOptions, ApiUrlConfig, ApiUrlEntry, AsyncConfigStorage, BackConfig, BaseMaterialInputMetadata, BatchDeleteOptions, BatchDeleteProgress, BatchDeleteResult, BorderConfig, Breakpoint, BuiltValidators, BulkAction, BulkActionsConfig, CacheAdapter, CacheConfig, CacheEntry, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CrudOperationOptions, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeValue, DateTimeLocaleConfig, DebounceConfig, DeviceKind, DraggingConfig, Capability as DynamicPageCapability, CapabilityCatalog as DynamicPageCapabilityCatalog, CapabilityCategory as DynamicPageCapabilityCategory, ValueKind as DynamicPageValueKind, EditorialBlock, EditorialBlockBase, EditorialBlockKind, EditorialBlockOverride, EditorialBlockSurface, EditorialBlockTone, EditorialBlockVisibilityRule, EditorialCompliancePreset, EditorialComponentDocMeta, EditorialConnectorStyle, EditorialContentFormat, EditorialContextFieldContract, EditorialContextSummaryBlock, EditorialCustomWidgetBlock, EditorialDataCollectionBlock, EditorialDensity, EditorialFaqAccordionBlock, EditorialFaqItem, EditorialFormCompliancePreset, EditorialFormShellPreset, EditorialFormTemplate, EditorialFormTemplateBuildOptions, EditorialFormTemplateContextField, EditorialFormTemplateDefaults, EditorialFormTemplateLayoutPreset, EditorialFormTemplateMetadata, EditorialFormTemplateReference, EditorialHeroBlock, EditorialIconSpec, EditorialInfoCardItem, EditorialInfoCardsBlock, EditorialIntroHeroBlock, EditorialIntroHeroHighlightItem, EditorialJourney, EditorialJourneyOverride, EditorialJourneyStep, EditorialLayoutConfig, EditorialLayoutSpacing, EditorialLinkDefinition, EditorialLinkItem, EditorialMetaItem, EditorialMotionConfig, EditorialOrientation, EditorialPolicyItem, EditorialPolicyListBlock, EditorialPresentationShellVariant, EditorialPresentationalAction, EditorialPresentationalVisibilityRule, EditorialProblemType, EditorialResponsiveLayoutConfig, EditorialReviewField, EditorialReviewSection, EditorialReviewSectionField, EditorialReviewSectionsBlock, EditorialReviewSummaryBlock, EditorialRichTextBlock, EditorialSelectionCardItem, EditorialSelectionCardsBlock, EditorialShellVariant, EditorialSolutionDefinition, EditorialSolutionPreset, EditorialStepKind, EditorialStepVisualConfig, EditorialStepVisualVariant, EditorialStepperConfig, EditorialStepperVariant, EditorialSuccessPanelBlock, EditorialSurfaceVariant, EditorialTemplateInstance, EditorialTemplateInstanceOverrides, EditorialTemplateRef, EditorialTemplateSource, EditorialThemeBorderWidthTokens, EditorialThemeColorTokens, EditorialThemePreset, EditorialThemeRadiusTokens, EditorialThemeShadowTokens, EditorialThemeTokens, EditorialThemeTypographyTokens, EditorialTimelineStep, EditorialTimelineStepsBlock, EditorialWidgetAppearance, EditorialWidgetDefinition, EditorialWidgetInputs, EditorialWizardPresentation, ElevationConfig, EmptyAction, EmptyStateConfig, EndpointConfig, EnhancedValidationConfig, ExcelExportConfig, ExcelStylingConfig, ExportConfig, ExportFormat, ExportMessagesConfig, ExportTemplate, FetchWithEtagParams, FetchWithEtagResult, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldSelectorRegistryMap, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormCustomActionEvent, FormEntityEvent, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormReadyEvent, FormRow, FormRowLayout, FormRuleTargetType, FormSection, FormSectionHeaderConfig, FormSectionHeaderEmptyState, FormSectionHeaderMode, FormSectionHeaderSize, FormSubmitEvent, FormValidationEvent, FormValueChangeEvent, FormattingLocaleConfig, GeneralExportConfig, GetSchemaParams, GlobalActionCatalogEntry, GlobalActionContext, GlobalActionField, GlobalActionFieldOption, GlobalActionFieldType, GlobalActionHandler, GlobalActionHandlerEntry, GlobalActionId, GlobalActionParam, GlobalActionResult, GlobalActionSpec, GlobalActionUiSchema, GlobalAiConfig, GlobalAiEmbeddingConfig, GlobalAiProvider, GlobalAnalyticsService, GlobalApiClient, GlobalCacheConfig, GlobalConfig, GlobalCrudActionDefaults, GlobalCrudConfig, GlobalCrudDefaults, GlobalDialogAction, GlobalDialogAnimation, GlobalDialogAriaRole, GlobalDialogConfig, GlobalDialogConfigEntry, GlobalDialogPosition, GlobalDialogService, GlobalDialogStyles, GlobalDynamicFieldsAsyncSelectConfig, GlobalDynamicFieldsCascadeConfig, GlobalDynamicFieldsConfig, GlobalI18nConfig, GlobalRouteGuardResolver, GlobalTableConfig, GlobalToastService, GridItemLayout, GridPageDefinition, GridPageDefinitionWithIds, GridWidgetInstance, HeroBadge, HeroBadgeTone, HeroBannerAppearance, HeroBannerVariant, HeroMetaItem, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlinePeriodRangeFiscalCalendar, InlinePeriodRangeGranularity, InlinePeriodRangeMetadata, InlinePeriodRangePreset, InlineRangeDistributionBin, InlineRangeDistributionConfig, InlineYearRangeMetadata, InteractionConfig, JsonExportConfig, KeyboardAccessibilityConfig, LazyLoadingConfig, LegacyTableConfig, LegalNoticeAppearance, LegalNoticeSeverity, LoadingConfig, LoadingContext, LoadingPhase$1 as LoadingPhase, LoadingScope, LoadingState, LoadingPhase as LoadingStatePhase, LocalizationConfig, LocateRequest, LoggerConfig, LoggerContext, LoggerEvent, LoggerLevel, LoggerLogOptions, LoggerNormalizedError, LoggerPIIConfig, LoggerSink, LoggerTelemetryPayload, LoggerThrottleConfig, MarginConfig, MaterialAutocompleteMetadata, MaterialButtonMetadata, MaterialButtonToggleMetadata, MaterialCheckboxMetadata, MaterialChipsMetadata, MaterialColorInputMetadata, MaterialColorPickerMetadata, MaterialCpfCnpjMetadata, MaterialCurrencyMetadata, MaterialDateInputMetadata, MaterialDateRangeMetadata, MaterialDatepickerMetadata, MaterialDatetimeLocalInputMetadata, MaterialDesignConfig, MaterialEmailInputMetadata, MaterialEmailMetadata, MaterialInputMetadata, MaterialMonthInputMetadata, MaterialMultiSelectTreeMetadata, MaterialNumericMetadata, MaterialPasswordMetadata, MaterialPhoneMetadata, MaterialPriceRangeMetadata, MaterialRadioMetadata, MaterialRangeSliderMetadata, MaterialRatingMetadata, MaterialSearchInputMetadata, MaterialSelectMetadata, MaterialSelectionListMetadata, MaterialSliderMetadata, MaterialTextareaMetadata, MaterialTimeInputMetadata, MaterialTimeRangeMetadata, MaterialTimeTrackShift, MaterialTimepickerMetadata, MaterialToggleMetadata, MaterialTransferListMetadata, MaterialTreeNode, MaterialTreeSelectMetadata, MaterialUrlInputMetadata, MaterialWeekInputMetadata, MaterialYearInputMetadata, MemoryConfig, MessageTemplate, MessagesConfig, NestedFieldsetLayout, NormalizedError, NumberLocaleConfig, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceMetadata, OptionSourceRequestOptions, OverlayDecider, OverlayDecision, OverlayDecisionContext, OverlayDecisionMatrix, OverlayPattern, OverlayRange, OverlayRule, OverlayRuleMatch, OverlayThresholds, Page, PageIdentity, PageableRequest, PaginationConfig, PartialFieldMetadata, PdfExportConfig, PerformanceConfig, PersistedPageConfig, PersistedWidgetInstance, PlainObject, PluginConfig, PollingConfig, PraxisAnalyticsOptions, PraxisAuthContext, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisTextValue, PraxisToastOptions, PraxisTranslationParams, PriceRangeValue, RangeSliderInlineTexts, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderValue, RenderingConfig, ResizingConfig, ResolvePresetOptions, ResponsiveConfig, RichTextAppearance, RichTextVariant, RowAction, RowActionsConfig, RulePropertyDefinition, RulePropertySchema, RulePropertyType, RunHooksResult, SchemaIdParams, SchemaMetaInfo, SchemaViewerContext, SelectionConfig, SerializableFieldMetadata, SettingsPanelBridge, SettingsPanelOpenContent, SettingsPanelOpenOptions, SettingsPanelRef, SettingsValueProvider, SortingConfig, SpacingConfig, StateMessagesConfig, SyncConfig, SyncResult, TableActionsConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableExpansionConfig, TableLocalDataModeConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarConfig, ToolbarFilterConfig, ToolbarLayoutConfig, ToolbarSettingsConfig, TypographyConfig, UserContextSource, UserContextSummaryAppearance, UserContextSummaryField, ValidationContext, ValidationError, ValidationMessagesConfig, ValidationResult, ValidationRule, ValidatorFunction, ValidatorOptions, ValueKind$1 as ValueKind, VirtualizationConfig, WidgetConnection, WidgetConnectionSource, WidgetConnectionTarget, WidgetDefinition, WidgetDerivedStateNode, WidgetInstance, WidgetPageDefinition, WidgetPageLayout, WidgetPageOrientation, WidgetPageStateDefinition, WidgetPageStateInput, WidgetPageStateRuntimeSnapshot, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };
10845
+ export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConnectionManagerService, ConsoleLoggerSink, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_TABLE_CONFIG, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG$1 as GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_CATALOG as GLOBAL_ACTION_SPEC_CATALOG, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceQuickConnectComponent, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceOpenActionEditorComponent, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, adaptWidgetConnectionToCompositionLink, adaptWidgetConnectionsToCompositionLinks, applyLocalCustomizations$1 as applyLocalCustomizations, applyLocalCustomizations as applyLocalFormCustomizations, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildSchemaId, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getGlobalActionCatalog, getGlobalActionUiSchema, getReferencedFieldMetadata, getTextTransformer, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isInlineFilterControlType, isRangeValidForFilter, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormMetadata, normalizePath, normalizePraxisDataQueryContext, normalizeStart, normalizeUnknownError, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisFilterCriteria, resolveSpan, resolveValuePresentation, resolveValuePresentationLocale, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, trim, uniqueAsyncValidator, urlValidator, withMessage, withPraxisHttpLoading };
10846
+ export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnimationConfig, AnnouncementConfig, ApiConfigStorageOptions, ApiUrlConfig, ApiUrlEntry, AsyncConfigStorage, BackConfig, BaseMaterialInputMetadata, BatchDeleteOptions, BatchDeleteProgress, BatchDeleteResult, BorderConfig, Breakpoint, BuiltValidators, BulkAction, BulkActionsConfig, CacheAdapter, CacheConfig, CacheEntry, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, CompositionLink, CompositionRuntimeFacadeOptions, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CrudOperationOptions, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeValue, DateTimeLocaleConfig, DebounceConfig, DeviceKind, DiagnosticPhase, DiagnosticRecord, DiagnosticSeverity, DiagnosticSource, DiagnosticSubjectKind, DiagnosticSubjectRef, DraggingConfig, Capability as DynamicPageCapability, CapabilityCatalog as DynamicPageCapabilityCatalog, CapabilityCategory as DynamicPageCapabilityCategory, ValueKind as DynamicPageValueKind, EditorialBlock, EditorialBlockBase, EditorialBlockKind, EditorialBlockOverride, EditorialBlockSurface, EditorialBlockTone, EditorialBlockVisibilityRule, EditorialCompliancePreset, EditorialComponentDocMeta, EditorialConnectorStyle, EditorialContentFormat, EditorialContextFieldContract, EditorialContextSummaryBlock, EditorialCustomWidgetBlock, EditorialDataCollectionBlock, EditorialDensity, EditorialFaqAccordionBlock, EditorialFaqItem, EditorialFormCompliancePreset, EditorialFormShellPreset, EditorialFormTemplate, EditorialFormTemplateBuildOptions, EditorialFormTemplateContextField, EditorialFormTemplateDefaults, EditorialFormTemplateLayoutPreset, EditorialFormTemplateMetadata, EditorialFormTemplateReference, EditorialHeroBlock, EditorialIconSpec, EditorialInfoCardItem, EditorialInfoCardsBlock, EditorialIntroHeroBlock, EditorialIntroHeroHighlightItem, EditorialJourney, EditorialJourneyOverride, EditorialJourneyStep, EditorialLayoutConfig, EditorialLayoutSpacing, EditorialLinkDefinition, EditorialLinkItem, EditorialMetaItem, EditorialMotionConfig, EditorialOrientation, EditorialPolicyItem, EditorialPolicyListBlock, EditorialPresentationShellVariant, EditorialPresentationalAction, EditorialPresentationalVisibilityRule, EditorialProblemType, EditorialResponsiveLayoutConfig, EditorialReviewField, EditorialReviewSection, EditorialReviewSectionField, EditorialReviewSectionsBlock, EditorialReviewSummaryBlock, EditorialRichTextBlock, EditorialSelectionCardItem, EditorialSelectionCardsBlock, EditorialShellVariant, EditorialSolutionDefinition, EditorialSolutionPreset, EditorialStepKind, EditorialStepVisualConfig, EditorialStepVisualVariant, EditorialStepperConfig, EditorialStepperVariant, EditorialSuccessPanelBlock, EditorialSurfaceVariant, EditorialTemplateInstance, EditorialTemplateInstanceOverrides, EditorialTemplateRef, EditorialTemplateSource, EditorialThemeBorderWidthTokens, EditorialThemeColorTokens, EditorialThemePreset, EditorialThemeRadiusTokens, EditorialThemeShadowTokens, EditorialThemeTokens, EditorialThemeTypographyTokens, EditorialTimelineStep, EditorialTimelineStepsBlock, EditorialWidgetAppearance, EditorialWidgetDefinition, EditorialWidgetInputs, EditorialWizardPresentation, ElevationConfig, EmptyAction, EmptyStateConfig, EndpointConfig, EndpointRef, EnhancedValidationConfig, ExcelExportConfig, ExcelStylingConfig, ExportConfig, ExportFormat, ExportMessagesConfig, ExportTemplate, FetchWithEtagParams, FetchWithEtagResult, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldSelectorRegistryMap, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormCustomActionEvent, FormEntityEvent, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormReadyEvent, FormRow, FormRowLayout, FormRuleTargetType, FormSection, FormSectionHeaderAction, FormSectionHeaderConfig, FormSectionHeaderEmptyState, FormSectionHeaderMode, FormSectionHeaderSize, FormSubmitEvent, FormValidationEvent, FormValueChangeEvent, FormattingLocaleConfig, GeneralExportConfig, GetSchemaParams, GlobalActionCatalogEntry, GlobalActionContext, GlobalActionField, GlobalActionFieldOption, GlobalActionFieldType, GlobalActionHandler, GlobalActionHandlerEntry, GlobalActionId, GlobalActionParam, GlobalActionResult, GlobalActionSpec, GlobalActionUiSchema, GlobalAiConfig, GlobalAiEmbeddingConfig, GlobalAiProvider, GlobalAnalyticsService, GlobalApiClient, GlobalCacheConfig, GlobalConfig, GlobalCrudActionDefaults, GlobalCrudConfig, GlobalCrudDefaults, GlobalDialogAction, GlobalDialogAnimation, GlobalDialogAriaRole, GlobalDialogConfig, GlobalDialogConfigEntry, GlobalDialogPosition, GlobalDialogService, GlobalDialogStyles, GlobalDynamicFieldsAsyncSelectConfig, GlobalDynamicFieldsCascadeConfig, GlobalDynamicFieldsConfig, GlobalI18nConfig, GlobalRouteGuardResolver, GlobalSurfaceService, GlobalTableConfig, GlobalToastService, HeroBadge, HeroBadgeTone, HeroBannerAppearance, HeroBannerVariant, HeroMetaItem, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlinePeriodRangeFiscalCalendar, InlinePeriodRangeGranularity, InlinePeriodRangeMetadata, InlinePeriodRangePreset, InlineRangeDistributionBin, InlineRangeDistributionConfig, InlineYearRangeMetadata, InteractionConfig, JsonExportConfig, KeyboardAccessibilityConfig, LazyLoadingConfig, LegacyTableConfig, LegalNoticeAppearance, LegalNoticeSeverity, LinkCondition, LinkConditionKind, LinkIntent, LinkMetadata, LinkPolicy, LoadingConfig, LoadingContext, LoadingPhase$1 as LoadingPhase, LoadingScope, LoadingState, LoadingPhase as LoadingStatePhase, LocalizationConfig, LocateRequest, LoggerConfig, LoggerContext, LoggerEvent, LoggerLevel, LoggerLogOptions, LoggerNormalizedError, LoggerPIIConfig, LoggerSink, LoggerTelemetryPayload, LoggerThrottleConfig, MarginConfig, MaterialAutocompleteMetadata, MaterialButtonMetadata, MaterialButtonToggleMetadata, MaterialCheckboxMetadata, MaterialChipsMetadata, MaterialColorInputMetadata, MaterialColorPickerMetadata, MaterialCpfCnpjMetadata, MaterialCurrencyMetadata, MaterialDateInputMetadata, MaterialDateRangeMetadata, MaterialDatepickerMetadata, MaterialDatetimeLocalInputMetadata, MaterialDesignConfig, MaterialEmailInputMetadata, MaterialEmailMetadata, MaterialInputMetadata, MaterialMonthInputMetadata, MaterialMultiSelectTreeMetadata, MaterialNumericMetadata, MaterialPasswordMetadata, MaterialPhoneMetadata, MaterialPriceRangeMetadata, MaterialRadioMetadata, MaterialRangeSliderMetadata, MaterialRatingMetadata, MaterialSearchInputMetadata, MaterialSelectMetadata, MaterialSelectionListMetadata, MaterialSliderMetadata, MaterialTextareaMetadata, MaterialTimeInputMetadata, MaterialTimeRangeMetadata, MaterialTimeTrackShift, MaterialTimepickerMetadata, MaterialToggleMetadata, MaterialTransferListMetadata, MaterialTreeNode, MaterialTreeSelectMetadata, MaterialUrlInputMetadata, MaterialWeekInputMetadata, MaterialYearInputMetadata, MemoryConfig, MessageTemplate, MessagesConfig, NestedFieldsetLayout, NormalizedError, NumberLocaleConfig, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceMetadata, OptionSourceRequestOptions, OverlayDecider, OverlayDecision, OverlayDecisionContext, OverlayDecisionMatrix, OverlayPattern, OverlayRange, OverlayRule, OverlayRuleMatch, OverlayThresholds, Page, PageIdentity, PageableRequest, PaginationConfig, PartialFieldMetadata, PdfExportConfig, PerformanceConfig, PersistedPageConfig, PersistedPageDefinitionWithIds, PersistedWidgetInstance, PlainObject, PluginConfig, PollingConfig, PortCardinality, PortCompatibilityRuleSet, PortContract, PortDirection, PortExposure, PortSchemaKind, PortSchemaMode, PortSchemaRef, PortSemanticKind, PraxisAnalyticsOptions, PraxisAuthContext, PraxisDataQueryContext, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisTextValue, PraxisToastOptions, PraxisTranslationParams, PriceRangeValue, RangeSliderInlineTexts, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderValue, RenderingConfig, ResizingConfig, ResolvePresetOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedValuePresentation, ResponsiveConfig, RichTextAppearance, RichTextVariant, RowAction, RowActionsConfig, RulePropertyDefinition, RulePropertySchema, RulePropertyType, RunHooksResult, RuntimeLinkSnapshot, RuntimeLinkStatus, RuntimePayloadSummary, RuntimeSnapshot, RuntimeSnapshotStatus, RuntimeStateSnapshot, RuntimeTraceEntry, RuntimeTracePhase, SchemaIdParams, SchemaMetaInfo, SchemaViewerContext, SelectionConfig, SerializableFieldMetadata, SettingsPanelBridge, SettingsPanelOpenContent, SettingsPanelOpenOptions, SettingsPanelRef, SettingsValueProvider, SortingConfig, SpacingConfig, StateEndpointRef, StateMessagesConfig, SurfaceBinding, SurfaceBindingMode, SurfaceOpenPayload, SurfaceOpenPreset, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableExpansionConfig, TableLocalDataModeConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarConfig, ToolbarFilterConfig, ToolbarLayoutConfig, ToolbarSettingsConfig, TransformBinding, TransformBindingSource, TransformCatalogCategory, TransformCatalogEntry, TransformKind, TransformLegacyReplacement, TransformOutputHint, TransformPhase, TransformPipeline, TransformSemanticKind, TransformStep, TransformStepCondition, TypographyConfig, UserContextSource, UserContextSummaryAppearance, UserContextSummaryField, ValidationContext, ValidationError, ValidationMessagesConfig, ValidationResult, ValidationRule, ValidatorFunction, ValidatorOptions, ValueKind$1 as ValueKind, ValuePresentationConfig, ValuePresentationResolutionContext, ValuePresentationStyle, ValuePresentationType, VirtualizationConfig, WidgetConnection, WidgetConnectionSource, WidgetConnectionTarget, WidgetDefinition, WidgetDerivedStateNode, WidgetEventEnvelope, WidgetEventPathSegment, WidgetInstance, WidgetPageCanvasCollisionPolicy, WidgetPageCanvasConstraints, WidgetPageCanvasItem, WidgetPageCanvasItemOverride, WidgetPageCanvasLayout, WidgetPageCanvasLayoutVariant, WidgetPageDefinition, WidgetPageDeviceKind, WidgetPageDeviceLayouts, WidgetPageDevicePolicy, WidgetPageGroupingDefinition, WidgetPageGroupingOverride, WidgetPageGroupingTabDefinition, WidgetPageLayout, WidgetPageLayoutPresetDefinition, WidgetPageLayoutVariant, WidgetPageOrientation, WidgetPageSlotAssignments, WidgetPageSlotDefinition, WidgetPageStateDefinition, WidgetPageStateInput, WidgetPageStateRuntimeSnapshot, WidgetPageThemePresetDefinition, WidgetPageWidgetLayoutOverride, WidgetPageWidgetSuggestion, WidgetResolutionDiagnostic, WidgetResolutionPhase, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };