@praxisui/core 3.0.0-beta.1 → 3.0.0-beta.10

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';
@@ -76,256 +76,19 @@ interface LocateRequest {
76
76
  sort?: string[];
77
77
  }
78
78
 
79
- /**
80
- * Contrato de saída do normalizador de esquema (SchemaNormalizerService):
81
- * - Converte metadados `x-ui` em FieldDefinition tipado.
82
- * - Todas as funções expostas são funções reais (nunca strings):
83
- * - conditionalDisplay: () => boolean
84
- * - conditionalRequired: () => boolean
85
- * - transformValueFunction: (val: any) => any
86
- * - Suporte completo a ValidatorOptions (sincronos e assíncronos),
87
- * incluindo mensagens e comportamento de validação (gatilhos, debounce, exibição de erros).
88
- */
89
- interface FieldDefinition {
90
- name: string;
91
- label?: string;
92
- description?: string;
79
+ interface OptionSourceMetadata {
80
+ key: string;
93
81
  type?: string;
94
- controlType?: string;
95
- mode?: string;
96
- placeholder?: string;
97
- defaultValue?: any;
98
- group?: string;
99
- order?: number;
100
- width?: number | string;
101
- isFlex?: boolean;
102
- displayOrientation?: string;
103
- selectionMode?: 'boolean' | 'single' | 'multiple';
104
- variant?: string;
105
- density?: 'compact' | 'comfortable' | 'spacious';
106
- layout?: 'horizontal' | 'vertical';
107
- disabled?: boolean;
108
- readOnly?: boolean;
109
- multiple?: boolean;
110
- editable?: boolean;
111
- validationMode?: string;
112
- unique?: boolean;
113
- mask?: string;
114
- sortable?: boolean;
115
- /** Função que define obrigatoriedade condicional. */
116
- conditionalRequired?: () => boolean;
117
- viewOnlyStyle?: string;
118
- /** Lista de gatilhos de validação, ex.: ["blur", "change"]. */
119
- validationTriggers?: string[];
120
- hidden?: boolean;
121
- tableHidden?: boolean;
122
- formHidden?: boolean;
123
- filterable?: boolean;
124
- /** Função que controla se o campo é exibido. */
125
- conditionalDisplay?: () => boolean;
126
- dependentField?: string;
127
- resetOnDependentChange?: boolean;
128
- inlineEditing?: boolean;
129
- /** Função de transformação de valor antes de salvar/exibir. */
130
- transformValueFunction?: (val: any) => any;
131
- debounceTime?: number;
132
- helpText?: string;
133
- hint?: string;
134
- hiddenCondition?: any;
135
- tooltipOnHover?: boolean;
136
- icon?: string;
137
- iconPosition?: string;
138
- iconSize?: string | number;
139
- iconColor?: string;
140
- iconClass?: string;
141
- iconStyle?: string;
142
- iconFontSize?: string | number;
143
- valueField?: string;
144
- displayField?: string;
145
- endpoint?: string;
146
82
  resourcePath?: string;
147
- emptyOptionText?: string;
148
- options?: {
149
- key: string;
150
- value: string;
151
- }[];
152
- filter?: any;
153
- filterCriteria?: any;
154
- searchable?: boolean;
155
- selectAll?: boolean;
156
- maxSelections?: number;
157
- optionLabelKey?: string;
158
- optionValueKey?: string;
159
- filterOptions?: any[];
160
- numericFormat?: string;
161
- numericStep?: number;
162
- numericMin?: number;
163
- numericMax?: number;
164
- numericMaxLength?: number;
165
- optionGroups?: {
166
- key: string;
167
- value: string;
168
- }[];
169
- disabledOptions?: string[];
170
- buttons?: any[];
171
- /** Obrigatório. */
172
- required?: boolean;
173
- requiredMessage?: string;
174
- /** Tamanho mínimo/máximo (strings). */
175
- minLength?: number;
176
- minLengthMessage?: string;
177
- maxLength?: number;
178
- maxLengthMessage?: string;
179
- /** Limites numéricos. */
180
- min?: number;
181
- max?: number;
182
- /** Mensagens dedicadas para min/max numéricos. */
183
- minMessage?: string;
184
- maxMessage?: string;
185
- /** Mensagem quando ambos limites (range) são aplicados. */
186
- rangeMessage?: string;
187
- /** Padrão (regex). Aceita pattern/regex. */
188
- pattern?: string;
189
- patternMessage?: string;
190
- /** Validação de e-mail. */
191
- email?: boolean;
192
- emailMessage?: string;
193
- /** Validação de URL. */
194
- url?: boolean;
195
- urlMessage?: string;
196
- /** Requer que valor combine com outro campo. */
197
- matchField?: string;
198
- matchFieldMessage?: string;
199
- /** Requer que o checkbox esteja marcado. */
200
- requiredChecked?: boolean;
201
- /** Tipos de arquivo permitidos e tamanho máximo. */
202
- allowedFileTypes?: string[];
203
- fileTypeMessage?: string;
204
- maxFileSize?: number;
205
- /** Validador customizado síncrono. */
206
- customValidator?: (value: any, model?: any) => any;
207
- /** Validador customizado assíncrono. */
208
- asyncValidator?: (value: any, model?: any) => Promise<any>;
209
- /** Validador de unicidade (ex.: consulta ao backend). */
210
- uniqueValidator?: (value: any, model?: any) => boolean | Promise<boolean>;
211
- uniqueMessage?: string;
212
- /** Validação condicional baseada em outro(s) campos/estado. */
213
- conditionalValidation?: (value: any, model?: any) => boolean | string | Promise<boolean | string>;
214
- /** Mínimo de palavras (para textos longos). */
215
- minWords?: number;
216
- /** Gatilho(s) de validação (alias de validationTriggers). */
217
- /** Tempo de debounce (ms) para executar validação. */
218
- validationDebounce?: number;
219
- /** Exibir erros inline no campo. */
220
- showInlineErrors?: boolean;
221
- /** Posição preferida da mensagem de erro (ex.: below, right). */
222
- errorPosition?: string;
223
- [key: string]: any;
224
- }
225
-
226
- declare enum ApiEndpoint {
227
- Default = "default",
228
- HumanResources = "humanResources",
229
- UiWrappersTest = "uiWrappersTest"
230
- }
231
-
232
- interface ApiUrlEntry {
233
- baseUrl?: string;
234
- path?: string;
235
- fullUrl?: string;
236
- version?: string;
237
- headers?: HttpHeaders | Record<string, string | string[]>;
238
- }
239
- interface ApiUrlConfig {
240
- [key: string]: ApiUrlEntry;
241
- }
242
- declare const API_URL: InjectionToken<ApiUrlConfig>;
243
- declare function buildApiUrl(entry: ApiUrlEntry): string;
244
- declare function buildHeaders(entry: ApiUrlEntry): HttpHeaders | undefined;
245
-
246
- /**
247
- * SchemaNormalizerService
248
- * -----------------------
249
- * Serviço responsável por converter um esquema bruto (OpenAPI + x-ui) em uma
250
- * lista tipada de FieldDefinition consumida pelo restante do sistema
251
- * (mapeadores de metadata, criador de FormGroup, carregador de campos dinâmicos, etc.).
252
- *
253
- * Entrada esperada
254
- * - Objeto JSON no formato OpenAPI/JSON Schema contendo:
255
- * - properties: { [name: string]: { type, title, description, ... , 'x-ui': { ... } } }
256
- * - Em cada propriedade, o objeto 'x-ui' define aspectos de UI/validação.
257
- *
258
- * Saída (FieldDefinition[])
259
- * - Tipagem forte de campos com funções reais (nunca strings) para regras condicionais e validadores customizados.
260
- * - Todas as propriedades de validação e comportamento consolidadas no mesmo objeto do campo.
261
- *
262
- * Segurança e observações
263
- * - Este serviço aceita funções em formato string dentro do x-ui (ex.: uniqueValidator, conditionalValidation),
264
- * e as converte via new Function. Isso exige backend confiável e controlado.
265
- * Em ambientes não confiáveis, evite funções como string ou implemente um sandbox/whitelist.
266
- * - Valores booleanos/numéricos são normalizados para tipos nativos.
267
- * - Arrays de opções são convertidos para pares { key, value } previsíveis.
268
- *
269
- * Exemplo mínimo de entrada
270
- * const schema = {
271
- * properties: {
272
- * email: {
273
- * type: 'string',
274
- * title: 'E-mail',
275
- * 'x-ui': { controlType: 'input', type: 'string', required: true, email: true }
276
- * }
277
- * }
278
- * };
279
- * const fields = normalizer.normalizeSchema(schema);
280
- * // fields: [{ name: 'email', label: 'E-mail', type: 'string', controlType: 'input', required: true, email: true }]
281
- */
282
- declare class SchemaNormalizerService {
283
- /** Convert value to boolean. Accepts boolean, string or number. */
284
- private parseBoolean;
285
- /** Ensure an array of strings from various inputs. */
286
- private parseStringArray;
287
- /** Parse option arrays into `{ key, value }` objects. */
288
- private parseOptions;
289
- /**
290
- * Converte string/Function em função real.
291
- * Atenção: usa `new Function` para avaliar strings – requer backend confiável.
292
- */
293
- private parseFunction;
294
- /** Parse a predicate function: () => boolean */
295
- private parsePredicateFunction;
296
- /** Parse a transform function: (val: any) => any */
297
- private parseTransformFunction;
298
- /**
299
- * Parse de validador condicional: (value: any, model?: any) => boolean | string | Promise<boolean | string>
300
- */
301
- private parseConditionalValidator;
302
- /**
303
- * Extrai e normaliza propriedades de validação a partir do objeto x-ui.
304
- * Suporta: required, min/max, minLength/maxLength, pattern/regex, email, url,
305
- * matchField, uniqueValidator (+message), conditionalValidation, requiredChecked,
306
- * arquivos (allowedFileTypes, fileTypeMessage, maxFileSize), custom/async validators,
307
- * minWords e comportamento (validationTrigger(s), validationDebounce, showInlineErrors, errorPosition).
308
- */
309
- private parseValidators;
310
- /** Parse array of button definitions. */
311
- private parseButtons;
312
- private resolveNonEmptyStringToken;
313
- private isNumericSchemaType;
314
- private resolveNumericFormatToken;
315
- /**
316
- * Converte o schema bruto do backend (OpenAPI + x-ui) em FieldDefinition[] tipado.
317
- * Regras:
318
- * - Ignora propriedades sem x-ui.
319
- * - Garante ordenação por 'order' quando presente.
320
- * - Funções condicionais/transformações sempre viram funções reais.
321
- *
322
- * @param schema Objeto OpenAPI/JSON Schema com properties e x-ui por propriedade.
323
- * @returns FieldDefinition[] prontos para mapeamento/uso no restante do sistema.
324
- */
325
- normalizeSchema(schema: any): FieldDefinition[];
326
- private resolveFieldType;
327
- static ɵfac: i0.ɵɵFactoryDeclaration<SchemaNormalizerService, never>;
328
- static ɵprov: i0.ɵɵInjectableDeclaration<SchemaNormalizerService>;
83
+ filterField?: string;
84
+ propertyPath?: string;
85
+ labelPropertyPath?: string;
86
+ valuePropertyPath?: string;
87
+ dependsOn?: string[];
88
+ excludeSelfField?: boolean;
89
+ searchMode?: string;
90
+ pageSize?: number;
91
+ includeIds?: boolean;
329
92
  }
330
93
 
331
94
  /**
@@ -2123,11 +1886,293 @@ interface TableConfigV2 {
2123
1886
  */
2124
1887
  declare function isTableConfigV2(config: any): config is TableConfigV2;
2125
1888
 
2126
- type TableConfig = TableConfigV2;
2127
-
2128
- /**
2129
- * Cria uma configuração padrão para TableConfig
2130
- */
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;
2129
+ /**
2130
+ * Converte string/Function em função real.
2131
+ * Atenção: usa `new Function` para avaliar strings – requer backend confiável.
2132
+ */
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>;
2169
+ }
2170
+
2171
+ type TableConfig = TableConfigV2;
2172
+
2173
+ /**
2174
+ * Cria uma configuração padrão para TableConfig
2175
+ */
2131
2176
  declare function createDefaultTableConfig(): TableConfig;
2132
2177
  /**
2133
2178
  * Valida se uma configuração TableConfig é válida
@@ -2466,6 +2511,11 @@ interface CrudOperationOptions {
2466
2511
  endpointKey?: ApiEndpoint;
2467
2512
  httpContext?: HttpContext;
2468
2513
  }
2514
+ interface OptionSourceRequestOptions<ID = string | number> extends CrudOperationOptions {
2515
+ includeIds?: ID[];
2516
+ observeVersionHeader?: boolean;
2517
+ search?: string;
2518
+ }
2469
2519
  interface BatchDeleteProgress<ID = string | number> {
2470
2520
  id: ID;
2471
2521
  success: boolean;
@@ -2505,6 +2555,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
2505
2555
  private schemaNormalizer;
2506
2556
  private globalConfig;
2507
2557
  private static readonly ERROR_MESSAGES;
2558
+ private static readonly unavailableFilteredSchemaUrls;
2508
2559
  private baseApiUrl;
2509
2560
  private apiUrl;
2510
2561
  private endpoints;
@@ -2587,6 +2638,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
2587
2638
  * ```
2588
2639
  */
2589
2640
  getSchema(options?: CrudOperationOptions): Observable<FieldDefinition[]>;
2641
+ private fetchDirectSchema;
2590
2642
  /** Retorna o campo identificador do recurso (ex.: 'id', 'codigo'), quando derivado do schema. */
2591
2643
  getResourceIdField(): string | undefined;
2592
2644
  /** Retorna o último schemaId e hash conhecidos após getSchema()/getFilteredSchema(). */
@@ -2759,8 +2811,14 @@ declare class GenericCrudService<T, ID extends string | number = string | number
2759
2811
  filterOptions(criteria: any, pageable: PageableRequest, opts: FilterOptions<ID> & CrudOperationOptions): Observable<Page<OptionDTO<ID>> & {
2760
2812
  dataVersion?: string;
2761
2813
  }>;
2814
+ /** OPTION SOURCES: POST /option-sources/{sourceKey}/options/filter */
2815
+ filterOptionSourceOptions(sourceKey: string, criteria: any, pageable: PageableRequest, opts?: OptionSourceRequestOptions<ID>): Observable<Page<OptionDTO<any>> & {
2816
+ dataVersion?: string;
2817
+ }>;
2762
2818
  /** OPTIONS: GET /options/by-ids */
2763
2819
  getOptionsByIds(ids: ID[], options?: CrudOperationOptions): Observable<OptionDTO<ID>[]>;
2820
+ /** OPTION SOURCES: GET /option-sources/{sourceKey}/options/by-ids */
2821
+ getOptionSourceOptionsByIds(sourceKey: string, ids: Array<string | number>, options?: CrudOperationOptions): Observable<OptionDTO<any>[]>;
2764
2822
  /** CURSOR: POST /filter/cursor */
2765
2823
  filterByCursor(criteria: any, cursorReq?: CursorRequest, options?: CrudOperationOptions): Observable<CursorPage<T>>;
2766
2824
  /** LOCATE: POST /locate */
@@ -3128,6 +3186,8 @@ declare const API_CONFIG_STORAGE_OPTIONS: InjectionToken<ApiConfigStorageOptions
3128
3186
  * HTTP-based storage that talks to praxis-config-starter user-config API.
3129
3187
  */
3130
3188
  declare class ApiConfigStorage implements AsyncConfigStorage {
3189
+ private static readonly unavailableLoadBaseUrls;
3190
+ private static readonly loadAvailabilityProbes;
3131
3191
  private readonly http;
3132
3192
  private readonly opts;
3133
3193
  private readonly baseUrl;
@@ -3136,7 +3196,11 @@ declare class ApiConfigStorage implements AsyncConfigStorage {
3136
3196
  private readonly componentTypeResolver;
3137
3197
  private readonly cache;
3138
3198
  constructor();
3199
+ private shouldLogLoadError;
3200
+ private shouldLogSaveError;
3201
+ private shouldLogClearError;
3139
3202
  loadConfig<T>(key: string): Observable<T | null>;
3203
+ private executeLoadConfigRequest;
3140
3204
  saveConfig<T>(key: string, config: T): Observable<void>;
3141
3205
  private shouldPropagateSaveError;
3142
3206
  private shouldPropagateClearError;
@@ -3166,6 +3230,14 @@ type GlobalActionContext = {
3166
3230
  payload?: any;
3167
3231
  pageContext?: Record<string, any> | null;
3168
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
+ };
3169
3241
  };
3170
3242
  type GlobalActionHandler = (payload?: any, context?: GlobalActionContext) => Promise<GlobalActionResult> | GlobalActionResult;
3171
3243
  interface GlobalActionHandlerEntry {
@@ -3221,10 +3293,12 @@ declare class GlobalActionService {
3221
3293
  private readonly registry;
3222
3294
  private readonly globalConfig;
3223
3295
  private readonly dialog;
3296
+ private readonly surface;
3224
3297
  private readonly toast;
3225
3298
  private readonly analytics;
3226
3299
  private readonly api;
3227
3300
  private readonly guardResolver;
3301
+ private readonly surfaceBindingRuntime;
3228
3302
  constructor();
3229
3303
  register(id: string, handler: GlobalActionHandler): void;
3230
3304
  has(id: string): boolean;
@@ -3236,6 +3310,69 @@ declare class GlobalActionService {
3236
3310
  static ɵprov: i0.ɵɵInjectableDeclaration<GlobalActionService>;
3237
3311
  }
3238
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
+
3239
3376
  interface ConnectionConfigV1 {
3240
3377
  resourcePath: string;
3241
3378
  version: 1;
@@ -3404,6 +3541,9 @@ declare const FieldControlType: {
3404
3541
  readonly INLINE_MULTISELECT: "inlineMultiSelect";
3405
3542
  readonly INLINE_TOGGLE: "inlineToggle";
3406
3543
  readonly INLINE_RANGE: "inlineRange";
3544
+ readonly INLINE_PERIOD_RANGE: "inlinePeriodRange";
3545
+ readonly INLINE_YEAR_RANGE: "inlineYearRange";
3546
+ readonly INLINE_MONTH_RANGE: "inlineMonthRange";
3407
3547
  readonly INLINE_DATE: "inlineDate";
3408
3548
  readonly INLINE_DATE_RANGE: "inlineDateRange";
3409
3549
  readonly INLINE_TIME: "inlineTime";
@@ -3766,6 +3906,10 @@ interface FieldMetadata extends ComponentMetadata {
3766
3906
  options?: FieldOption[];
3767
3907
  /** API endpoint for dynamic data loading */
3768
3908
  endpoint?: string;
3909
+ /** Canonical backend resource path for metadata-driven requests */
3910
+ resourcePath?: string;
3911
+ /** Canonical metadata-driven source for derived options */
3912
+ optionSource?: OptionSourceMetadata;
3769
3913
  /** Field name for option values */
3770
3914
  valueField?: string;
3771
3915
  /** Field name for option display text */
@@ -3793,6 +3937,14 @@ interface FieldMetadata extends ComponentMetadata {
3793
3937
  mask?: string;
3794
3938
  /** Format for display values */
3795
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;
3796
3948
  /** Material Design specific configuration */
3797
3949
  materialDesign?: MaterialDesignConfig;
3798
3950
  /** Fields this field depends on */
@@ -4561,6 +4713,15 @@ interface MaterialNumericMetadata extends BaseMaterialInputMetadata {
4561
4713
  startMaxOffsetMessage?: string;
4562
4714
  /** Step increment for number controls */
4563
4715
  step?: number;
4716
+ /**
4717
+ * Inline visual style hint for compact numeric renderers.
4718
+ *
4719
+ * - `compact`: keeps the standard pill-like inline renderer
4720
+ * - `graphic`: enables richer graphic affordances when the runtime supports them
4721
+ *
4722
+ * The default runtime behavior should remain compact unless explicitly overridden.
4723
+ */
4724
+ inlineVisualStyle?: 'compact' | 'graphic';
4564
4725
  /** Number formatting options */
4565
4726
  numberFormat?: {
4566
4727
  /** Decimal places to display */
@@ -5161,6 +5322,91 @@ interface MaterialRangeSliderMetadata extends FieldMetadata {
5161
5322
  distanceMessage?: string;
5162
5323
  };
5163
5324
  }
5325
+ /**
5326
+ * Generic granular period range contract for corporate analytics filters.
5327
+ *
5328
+ * It keeps the compact inline filter semantics while allowing the runtime to
5329
+ * render monthly competence, quarter, year and fiscal periods from a single
5330
+ * canonical metadata shape.
5331
+ */
5332
+ type InlinePeriodRangeGranularity = 'day' | 'week' | 'month' | 'quarter' | 'semester' | 'year' | 'fiscal-quarter' | 'fiscal-year';
5333
+ interface InlinePeriodRangePreset {
5334
+ id: string;
5335
+ label: string;
5336
+ start: string;
5337
+ end: string;
5338
+ }
5339
+ interface InlinePeriodRangeFiscalCalendar {
5340
+ startMonth: number;
5341
+ yearLabel?: string;
5342
+ }
5343
+ interface InlinePeriodRangeMetadata extends Omit<MaterialRangeSliderMetadata, 'controlType' | 'min' | 'max'> {
5344
+ controlType: typeof FieldControlType.INLINE_PERIOD_RANGE;
5345
+ granularity: InlinePeriodRangeGranularity;
5346
+ valueFormat?: 'iso-date' | 'year-month' | 'year-quarter' | 'year-semester' | 'fiscal-period' | 'year';
5347
+ min?: string;
5348
+ max?: string;
5349
+ locale?: string;
5350
+ displayFormat?: string;
5351
+ chipFormat?: string;
5352
+ quickPresets?: InlinePeriodRangePreset[];
5353
+ fiscalCalendar?: InlinePeriodRangeFiscalCalendar;
5354
+ monthLabels?: string[];
5355
+ quarterLabels?: string[];
5356
+ quickPresetsLabels?: {
5357
+ full?: string;
5358
+ current?: string;
5359
+ previous?: string;
5360
+ recent?: string;
5361
+ q1?: string;
5362
+ q2?: string;
5363
+ q3?: string;
5364
+ q4?: string;
5365
+ firstHalf?: string;
5366
+ secondHalf?: string;
5367
+ fiscalCurrent?: string;
5368
+ fiscalPrevious?: string;
5369
+ };
5370
+ }
5371
+ /**
5372
+ * Metadata for compact inline year range controls.
5373
+ *
5374
+ * Keeps the same value contract as `InlinePeriodRangeMetadata`, but adds a
5375
+ * dedicated control type for fiscal/analytics scenarios that need year-aware
5376
+ * labels and presets.
5377
+ */
5378
+ interface InlineYearRangeMetadata extends Omit<InlinePeriodRangeMetadata, 'controlType' | 'granularity'> {
5379
+ controlType: typeof FieldControlType.INLINE_YEAR_RANGE;
5380
+ granularity?: 'year';
5381
+ displayFormat?: 'year' | 'compact-year-range';
5382
+ quickPresetsLabels?: {
5383
+ full?: string;
5384
+ current?: string;
5385
+ previous?: string;
5386
+ recent?: string;
5387
+ };
5388
+ }
5389
+ /**
5390
+ * Metadata for compact inline month range controls.
5391
+ *
5392
+ * Uses the same range semantics as the generic period range,
5393
+ * but renders localized month labels and quarter/semester shortcuts.
5394
+ */
5395
+ interface InlineMonthRangeMetadata extends Omit<InlinePeriodRangeMetadata, 'controlType' | 'granularity'> {
5396
+ controlType: typeof FieldControlType.INLINE_MONTH_RANGE;
5397
+ granularity?: 'month';
5398
+ displayFormat?: 'month' | 'month-short-range';
5399
+ monthLabels?: string[];
5400
+ quickPresetsLabels?: {
5401
+ full?: string;
5402
+ q1?: string;
5403
+ q2?: string;
5404
+ q3?: string;
5405
+ q4?: string;
5406
+ firstHalf?: string;
5407
+ secondHalf?: string;
5408
+ };
5409
+ }
5164
5410
  /**
5165
5411
  * Specialized metadata for Material Button components.
5166
5412
  *
@@ -5444,6 +5690,7 @@ interface MaterialPasswordMetadata extends BaseMaterialInputMetadata {
5444
5690
  hideLabel?: string;
5445
5691
  iconShow?: string;
5446
5692
  iconHide?: string;
5693
+ tooltip?: string;
5447
5694
  ariaLabel?: string;
5448
5695
  };
5449
5696
  }
@@ -5896,6 +6143,46 @@ declare class ErrorMessageService {
5896
6143
  static ɵprov: i0.ɵɵInjectableDeclaration<ErrorMessageService>;
5897
6144
  }
5898
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
+
5899
6186
  /**
5900
6187
  * Documentation metadata for dynamically added components.
5901
6188
  *
@@ -5980,6 +6267,8 @@ interface ComponentDocMeta {
5980
6267
  example?: any;
5981
6268
  };
5982
6269
  }>;
6270
+ /** Optional canonical semantic ports that complement legacy inputs/outputs metadata. */
6271
+ ports?: PortContract[];
5983
6272
  /** Tags or categories for search */
5984
6273
  tags?: string[];
5985
6274
  /** Source library for the component */
@@ -5995,6 +6284,107 @@ interface ComponentDocMeta {
5995
6284
  };
5996
6285
  }
5997
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
+
5998
6388
  /**
5999
6389
  * Simple in-memory registry of component documentation metadata.
6000
6390
  *
@@ -6002,21 +6392,46 @@ interface ComponentDocMeta {
6002
6392
  * visual builders or configurators can discover them.
6003
6393
  */
6004
6394
  declare class ComponentMetadataRegistry {
6395
+ private readonly i18n;
6396
+ constructor(i18n?: PraxisI18nService | null);
6005
6397
  private readonly metadataMap;
6398
+ private readonly rawMetadataMap;
6399
+ private readonly editorialMetadataMap;
6400
+ private readonly editorialControlTypeIndex;
6401
+ private readonly legacyControlTypeIndex;
6006
6402
  private readonly componentTypeAliases;
6007
6403
  /** Register a component metadata entry. */
6008
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;
6009
6407
  /** Retrieve metadata by its unique id. */
6010
6408
  get(id: string): ComponentDocMeta | undefined;
6409
+ /** Retrieve an editorial descriptor by its id or controlType. */
6410
+ getEditorial(idOrControlType: string): ComponentMetadataEditorialDescriptor | undefined;
6011
6411
  /** List all registered metadata entries. */
6012
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;
6013
6419
  /**
6014
6420
  * Ensure friendly labels/descriptions for common inputs/outputs when missing.
6015
6421
  * This helps diagrams/builders present consistent naming across components.
6016
6422
  */
6017
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;
6018
6433
  private normalizeComponentType;
6019
- static ɵfac: i0.ɵɵFactoryDeclaration<ComponentMetadataRegistry, never>;
6434
+ static ɵfac: i0.ɵɵFactoryDeclaration<ComponentMetadataRegistry, [{ optional: true; }]>;
6020
6435
  static ɵprov: i0.ɵɵInjectableDeclaration<ComponentMetadataRegistry>;
6021
6436
  }
6022
6437
 
@@ -6523,35 +6938,6 @@ declare function provideGlobalConfigSeed(seed: Partial<GlobalConfig>): Provider;
6523
6938
  declare function provideRemoteGlobalConfig(url: string): Provider;
6524
6939
  declare function providePraxisGlobalConfigBootstrap(options?: PraxisGlobalConfigBootstrapOptions): Provider[];
6525
6940
 
6526
- type PraxisLocale = string;
6527
- interface PraxisTranslationParams {
6528
- [key: string]: string | number | boolean | null | undefined;
6529
- }
6530
- interface PraxisI18nMessageDescriptor {
6531
- key?: string;
6532
- text?: string;
6533
- params?: PraxisTranslationParams;
6534
- }
6535
- type PraxisTextValue = string | PraxisI18nMessageDescriptor;
6536
- interface PraxisI18nDictionary {
6537
- [key: string]: string;
6538
- }
6539
- interface PraxisI18nNamespaceDictionary {
6540
- [locale: string]: PraxisI18nDictionary;
6541
- }
6542
- interface PraxisI18nNamespaceConfig {
6543
- [namespace: string]: PraxisI18nNamespaceDictionary;
6544
- }
6545
- interface PraxisI18nConfig {
6546
- locale?: PraxisLocale;
6547
- fallbackLocale?: PraxisLocale;
6548
- dictionaries?: Record<PraxisLocale, PraxisI18nDictionary>;
6549
- namespaces?: PraxisI18nNamespaceConfig;
6550
- }
6551
- interface PraxisI18nTranslator {
6552
- translate(key: string, params?: PraxisTranslationParams, fallback?: string): string;
6553
- }
6554
-
6555
6941
  declare const PRAXIS_I18N_CONFIG: InjectionToken<Partial<PraxisI18nConfig>>;
6556
6942
  declare const PRAXIS_I18N_TRANSLATOR: InjectionToken<PraxisI18nTranslator>;
6557
6943
 
@@ -6598,7 +6984,12 @@ declare function getGlobalActionCatalog(catalog: ReadonlyArray<GlobalActionCatal
6598
6984
  declare const PRAXIS_GLOBAL_ACTION_CATALOG: GlobalActionCatalogEntry[];
6599
6985
  declare function providePraxisGlobalActionCatalog(): Provider[];
6600
6986
 
6601
- 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';
6602
6993
  type GlobalActionParam = {
6603
6994
  required?: boolean;
6604
6995
  label?: string;
@@ -6614,9 +7005,13 @@ interface GlobalActionSpec {
6614
7005
  }
6615
7006
  declare const GLOBAL_ACTION_CATALOG: GlobalActionSpec[];
6616
7007
 
7008
+ declare const SURFACE_OPEN_I18N_NAMESPACE = "surfaceOpen";
7009
+ declare const SURFACE_OPEN_I18N_CONFIG: Partial<PraxisI18nConfig>;
7010
+
6617
7011
  interface SettingsPanelRef<T = any> {
6618
7012
  applied$: Observable<T>;
6619
7013
  saved$: Observable<T>;
7014
+ closed$?: Observable<any>;
6620
7015
  }
6621
7016
  interface SettingsPanelOpenContent<TInputs = any> {
6622
7017
  component: Type<any>;
@@ -6625,6 +7020,7 @@ interface SettingsPanelOpenContent<TInputs = any> {
6625
7020
  interface SettingsPanelOpenOptions<TInputs = any> {
6626
7021
  id: string;
6627
7022
  title: string;
7023
+ titleIcon?: string;
6628
7024
  content: SettingsPanelOpenContent<TInputs>;
6629
7025
  }
6630
7026
  interface SettingsPanelBridge {
@@ -6648,30 +7044,222 @@ declare const DYNAMIC_PAGE_CONFIG_EDITOR: InjectionToken<Type<any>>;
6648
7044
 
6649
7045
  declare const PRAXIS_LOADING_CTX: HttpContextToken<LoadingContext | null>;
6650
7046
 
6651
- declare class PraxisI18nService {
6652
- private readonly configs;
6653
- private readonly translator;
6654
- private readonly globalConfig;
6655
- private readonly bootstrapOptions;
6656
- constructor(configs: Array<Partial<PraxisI18nConfig>> | Partial<PraxisI18nConfig> | null, translator: PraxisI18nTranslator | null);
6657
- getLocale(): string;
6658
- getFallbackLocale(): string;
6659
- t(key: string, params?: PraxisTranslationParams, fallback?: string, namespace?: string): string;
6660
- resolve(message: PraxisTextValue | null | undefined, fallback?: string, namespace?: string): string;
6661
- formatDate(value: Date | string | number, options?: Intl.DateTimeFormatOptions): string;
6662
- formatNumber(value: number, options?: Intl.NumberFormatOptions): string;
6663
- formatCurrency(value: number, currency: string, options?: Intl.NumberFormatOptions): string;
6664
- private getConfig;
6665
- private lookup;
6666
- private translateExternally;
6667
- private stringifyInvalidValue;
6668
- static ɵfac: i0.ɵɵFactoryDeclaration<PraxisI18nService, [{ optional: true; }, { optional: true; }]>;
6669
- static ɵprov: i0.ɵɵInjectableDeclaration<PraxisI18nService>;
6670
- }
6671
-
6672
7047
  declare function interpolatePraxisTranslation(template: string, params?: PraxisTranslationParams): string;
6673
7048
  declare function mergePraxisI18nConfigs(...configs: Array<Partial<PraxisI18nConfig> | null | undefined>): PraxisI18nConfig;
6674
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' | 'persisted-composition-link' | '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
+
6675
7263
  interface MaterialTimeTrackShift {
6676
7264
  id?: string;
6677
7265
  label?: string;
@@ -6784,26 +7372,6 @@ interface FormHooksLayout {
6784
7372
  onError?: FormHookDeclarationLite[];
6785
7373
  }
6786
7374
 
6787
- type ActionDefinition = {
6788
- /** Global action id to execute (e.g., 'navigation.back', 'dialog.alert'). */
6789
- type?: string;
6790
- /** Optional payload template for the action. */
6791
- params?: Record<string, any>;
6792
- };
6793
- interface WidgetDefinition {
6794
- /** Component id registered in ComponentMetadataRegistry */
6795
- id: string;
6796
- /** Inputs to bind into the component instance */
6797
- inputs?: Record<string, any>;
6798
- /** Map of component output name to action (global action or 'emit'). */
6799
- outputs?: Record<string, ActionDefinition | 'emit'>;
6800
- /**
6801
- * Optional explicit order for applying inputs. Keys listed here are applied first
6802
- * (in order) with change detection flush between each, then remaining inputs are applied.
6803
- */
6804
- bindingOrder?: string[];
6805
- }
6806
-
6807
7375
  interface Specification<T extends object = any> {
6808
7376
  isSatisfiedBy(obj: T): boolean;
6809
7377
  }
@@ -7196,8 +7764,37 @@ interface FormSection {
7196
7764
  headerAlign?: 'start' | 'center';
7197
7765
  /** Optional tooltip for the section header */
7198
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[];
7199
7772
  rows: FormRow[];
7200
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
+ }
7201
7798
  type FormSectionHeaderMode = 'icon' | 'avatar-image' | 'avatar-initials' | 'auto';
7202
7799
  type FormSectionHeaderEmptyState = 'fallback-icon' | 'placeholder-avatar' | 'none';
7203
7800
  type FormSectionHeaderSize = 'sm' | 'md' | 'lg';
@@ -7481,7 +8078,8 @@ interface FormCustomActionEvent {
7481
8078
  actionId: string;
7482
8079
  formData: any;
7483
8080
  isValid: boolean;
7484
- source: 'button' | 'shortcut';
8081
+ source: 'button' | 'shortcut' | 'section-header';
8082
+ sectionId?: string;
7485
8083
  }
7486
8084
  interface FormActionConfirmationEvent {
7487
8085
  actionId: 'submit' | 'cancel' | 'reset' | string;
@@ -8084,45 +8682,292 @@ interface WidgetShellActionEvent {
8084
8682
  action?: WidgetShellAction;
8085
8683
  }
8086
8684
 
8087
- interface GridItemLayout {
8088
- /** 1-based column start */
8685
+ interface WidgetInstance {
8686
+ key: string;
8687
+ definition: WidgetDefinition;
8688
+ /** Optional CSS classes or layout hints */
8689
+ className?: string;
8690
+ /** Optional shell config for standardized widget framing. */
8691
+ shell?: WidgetShellConfig;
8692
+ }
8693
+ type WidgetConnectionSource = {
8694
+ widget: string;
8695
+ output: string;
8696
+ } | {
8697
+ state: string;
8698
+ };
8699
+ type WidgetConnectionTarget = {
8700
+ widget: string;
8701
+ input: string;
8702
+ bindingOrder?: string[];
8703
+ } | {
8704
+ state: string;
8705
+ };
8706
+ interface WidgetConnection {
8707
+ from: WidgetConnectionSource;
8708
+ to: WidgetConnectionTarget;
8709
+ /** Dot-path to extract from event object (e.g., 'payload.row.id'). Defaults to 'payload'. */
8710
+ map?: string;
8711
+ /** Constant value override (when provided, map is ignored). */
8712
+ set?: any;
8713
+ /** Optional metadata for runtime operators (beta). */
8714
+ meta?: {
8715
+ /** Expression to filter events (safe, controlled) */
8716
+ filterExpr?: string;
8717
+ /** Debounce time in milliseconds */
8718
+ debounceMs?: number;
8719
+ /** Only emit when value changes */
8720
+ distinct?: boolean;
8721
+ /** Optional key path for distinct comparison (e.g., 'payload.id') */
8722
+ distinctBy?: string;
8723
+ };
8724
+ }
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
+ }
8770
+ interface WidgetStateNode {
8771
+ /** Optional semantic type for tooling and validation. */
8772
+ type?: string;
8773
+ /** Optional initial value used when state.values omits the path. */
8774
+ initial?: any;
8775
+ /** Whether this primary state path should be persisted with the page. */
8776
+ persist?: boolean;
8777
+ /** How widget/state writes should combine with the current value. */
8778
+ mergeStrategy?: 'replace' | 'merge' | 'append' | 'remove-keys';
8779
+ /** Optional human-readable description for builder/AI surfaces. */
8780
+ description?: string;
8781
+ /** Optional tags for search and governance. */
8782
+ tags?: string[];
8783
+ }
8784
+ interface WidgetDerivedStateNode {
8785
+ /** State paths that feed this derived node. */
8786
+ dependsOn: string[];
8787
+ /** Placeholder descriptor for future derived-state runtime phases. */
8788
+ compute: {
8789
+ kind: 'expr';
8790
+ expression: string;
8791
+ } | {
8792
+ kind: 'template';
8793
+ value: any;
8794
+ } | {
8795
+ kind: 'operator';
8796
+ operator: string;
8797
+ options?: Record<string, any>;
8798
+ } | {
8799
+ kind: 'transformer';
8800
+ transformerId: string;
8801
+ options?: Record<string, any>;
8802
+ };
8803
+ /** Optional description for editors and AI catalogs. */
8804
+ description?: string;
8805
+ /** Whether future runtimes may cache the derived value. */
8806
+ cache?: boolean;
8807
+ }
8808
+ interface WidgetPageStateDefinition {
8809
+ /** Primary mutable values written by widgets, defaults or host-provided updates. */
8810
+ values?: Record<string, any>;
8811
+ /** Optional descriptors for primary state paths. */
8812
+ schema?: Record<string, WidgetStateNode>;
8813
+ /** Optional descriptors for derived state paths. */
8814
+ derived?: Record<string, WidgetDerivedStateNode>;
8815
+ }
8816
+ /** Legacy shorthand accepted for backwards compatibility. */
8817
+ type WidgetPageStateInput = Record<string, any> | WidgetPageStateDefinition;
8818
+ interface WidgetPageLayout {
8819
+ /** Layout orientation for widget grid. */
8820
+ orientation?: WidgetPageOrientation;
8821
+ /** Column count when using columns orientation. */
8822
+ columns?: number;
8823
+ /** CSS gap value for grid spacing (e.g., '16px'). */
8824
+ gap?: string;
8825
+ /** Optional responsive columns by breakpoint (sm/md/lg/xl). */
8826
+ breakpoints?: {
8827
+ sm?: number;
8828
+ md?: number;
8829
+ lg?: number;
8830
+ xl?: number;
8831
+ };
8832
+ }
8833
+ interface WidgetPageCanvasConstraints {
8834
+ minColSpan?: number;
8835
+ minRowSpan?: number;
8836
+ maxColSpan?: number;
8837
+ maxRowSpan?: number;
8838
+ lockPosition?: boolean;
8839
+ lockSize?: boolean;
8840
+ }
8841
+ interface WidgetPageCanvasItem {
8089
8842
  col: number;
8090
- /** number of columns to span */
8091
- colSpan: number;
8092
- /** 1-based row start */
8093
8843
  row: number;
8094
- /** number of rows to span */
8844
+ colSpan: number;
8095
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;
8096
8867
  }
8097
- interface GridWidgetInstance {
8098
- key: string;
8099
- definition: WidgetDefinition;
8100
- 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 {
8101
8877
  className?: string;
8102
- shell?: WidgetShellConfig;
8878
+ span?: number;
8879
+ order?: number;
8880
+ hidden?: boolean;
8103
8881
  }
8104
- interface GridPageDefinition {
8105
- widgets: GridWidgetInstance[];
8106
- connections?: Array<{
8107
- from: {
8108
- widget: string;
8109
- output: string;
8110
- };
8111
- to: {
8112
- widget: string;
8113
- input: string;
8114
- bindingOrder?: string[];
8115
- };
8116
- map?: string;
8117
- set?: any;
8118
- }>;
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>;
8920
+ }
8921
+ interface WidgetPageDeviceLayouts {
8922
+ desktop?: WidgetPageLayoutVariant;
8923
+ tablet?: WidgetPageLayoutVariant;
8924
+ mobile?: WidgetPageLayoutVariant;
8925
+ }
8926
+ /**
8927
+ * Canonical persisted composition surface for page wiring.
8928
+ * During the current migration window this coexists with legacy `connections`,
8929
+ * but new persisted shapes should target `composition.links`.
8930
+ */
8931
+ interface WidgetPageCompositionDefinition {
8932
+ links?: CompositionLink[];
8933
+ }
8934
+ /**
8935
+ * Canonical slot occupancy for preset-driven pages.
8936
+ * Maps widget keys to semantic slot ids from the active layout preset.
8937
+ */
8938
+ type WidgetPageSlotAssignments = Record<string, string>;
8939
+ interface WidgetPageDefinition {
8940
+ widgets: WidgetInstance[];
8941
+ /**
8942
+ * Legacy persisted connection surface accepted only during the migration window.
8943
+ * Canonical saved wiring should move to `composition.links`.
8944
+ */
8945
+ connections?: WidgetConnection[];
8946
+ /**
8947
+ * Canonical persisted composition surface.
8948
+ * `composition.links` is the target saved shape for `CompositionLink[]`.
8949
+ */
8950
+ composition?: WidgetPageCompositionDefinition;
8951
+ /** Optional declarative page state shared across widgets and connections */
8952
+ state?: WidgetPageStateInput;
8953
+ /** Optional page-wide context available to all widgets */
8119
8954
  context?: Record<string, any>;
8120
- /** Grid options */
8121
- options?: {
8122
- cols?: number;
8123
- rowHeight?: number;
8124
- gap?: number;
8125
- };
8955
+ /** Optional layout configuration for the widget grid */
8956
+ layout?: WidgetPageLayout;
8957
+ /** Optional canonical spatial canvas rendered over CSS Grid. */
8958
+ canvas?: WidgetPageCanvasLayout;
8959
+ /** Optional canonical preset id that describes the structural intent of the page. */
8960
+ layoutPreset?: string;
8961
+ /** Optional preset-specific options consumed by builders and future runtimes. */
8962
+ layoutPresetOptions?: Record<string, any>;
8963
+ /** Optional semantic grouping model for sections, tabs, hero areas and rails. */
8964
+ grouping?: WidgetPageGroupingDefinition[];
8965
+ /** Optional canonical semantic slot occupancy for preset-driven pages. */
8966
+ slotAssignments?: WidgetPageSlotAssignments;
8967
+ /** Optional device-specific layout variants. */
8968
+ deviceLayouts?: WidgetPageDeviceLayouts;
8969
+ /** Optional theme preset id for shell/chart/density defaults. */
8970
+ themePreset?: string;
8126
8971
  }
8127
8972
 
8128
8973
  /**
@@ -8144,14 +8989,14 @@ interface PageIdentity {
8144
8989
  * Minimal persisted widget instance record with a stable unique id.
8145
8990
  * The `key` continues to serve as logical name within the page.
8146
8991
  */
8147
- interface PersistedWidgetInstance extends GridWidgetInstance {
8992
+ interface PersistedWidgetInstance extends WidgetInstance {
8148
8993
  /** Stable unique id for the widget instance (uuid) */
8149
8994
  id: string;
8150
8995
  }
8151
8996
  /**
8152
8997
  * Page definition with widget-level ids added. Use for persistence payloads.
8153
8998
  */
8154
- interface GridPageDefinitionWithIds extends Omit<GridPageDefinition, 'widgets'> {
8999
+ interface PersistedPageDefinitionWithIds extends Omit<WidgetPageDefinition, 'widgets'> {
8155
9000
  widgets: PersistedWidgetInstance[];
8156
9001
  }
8157
9002
  /**
@@ -8174,7 +9019,7 @@ interface PersistedPageConfig {
8174
9019
  /** Lifecycle status */
8175
9020
  status: 'draft' | 'published' | 'archived';
8176
9021
  /** Actual page structure with widget ids */
8177
- page: GridPageDefinitionWithIds;
9022
+ page: PersistedPageDefinitionWithIds;
8178
9023
  /** Audit */
8179
9024
  owner?: string;
8180
9025
  createdAt: string;
@@ -8190,15 +9035,15 @@ declare function buildPageKey(identity: PageIdentity): string;
8190
9035
  * Ensure that each widget has a stable id. If missing, assigns a new one.
8191
9036
  * Returns the new page definition (immutable) and an index by key/id.
8192
9037
  */
8193
- declare function ensurePageIds(page: GridPageDefinition): {
8194
- page: GridPageDefinitionWithIds;
9038
+ declare function ensurePageIds(page: WidgetPageDefinition): {
9039
+ page: PersistedPageDefinitionWithIds;
8195
9040
  byKey: Map<string, PersistedWidgetInstance>;
8196
9041
  byId: Map<string, PersistedWidgetInstance>;
8197
9042
  };
8198
9043
  /**
8199
9044
  * Create a persisted page record from an in-memory page definition and identity.
8200
9045
  */
8201
- declare function createPersistedPage(identity: PageIdentity, page: GridPageDefinition, opts?: {
9046
+ declare function createPersistedPage(identity: PageIdentity, page: WidgetPageDefinition, opts?: {
8202
9047
  id?: string;
8203
9048
  title?: string;
8204
9049
  description?: string;
@@ -8228,6 +9073,19 @@ interface BackConfig {
8228
9073
  confirmOnDirty?: boolean;
8229
9074
  }
8230
9075
 
9076
+ interface PraxisDataQueryContext {
9077
+ filters?: Record<string, unknown> | null;
9078
+ sort?: string[] | null;
9079
+ limit?: number | null;
9080
+ page?: {
9081
+ index?: number | null;
9082
+ size?: number | null;
9083
+ } | null;
9084
+ meta?: Record<string, unknown> | null;
9085
+ }
9086
+ declare function normalizePraxisDataQueryContext(context?: PraxisDataQueryContext | null): PraxisDataQueryContext | null;
9087
+ declare function resolvePraxisFilterCriteria(filterCriteria?: Record<string, unknown> | null, queryContext?: PraxisDataQueryContext | null): Record<string, unknown>;
9088
+
8231
9089
  type LoadingPhase = 'config' | 'schema' | 'render' | 'data' | 'idle';
8232
9090
  type LoadingStatus = 'loading' | 'success' | 'error';
8233
9091
  interface LoadingState {
@@ -8519,6 +9377,9 @@ declare const INLINE_FILTER_CONTROL_TYPES: Readonly<{
8519
9377
  readonly INPUT: "inlineInput";
8520
9378
  readonly TOGGLE: "inlineToggle";
8521
9379
  readonly RANGE: "inlineRange";
9380
+ readonly PERIOD_RANGE: "inlinePeriodRange";
9381
+ readonly YEAR_RANGE: "inlineYearRange";
9382
+ readonly MONTH_RANGE: "inlineMonthRange";
8522
9383
  readonly DATE: "inlineDate";
8523
9384
  readonly DATE_RANGE: "inlineDateRange";
8524
9385
  readonly TIME: "inlineTime";
@@ -8563,10 +9424,83 @@ interface GlobalActionUiSchema {
8563
9424
  id: GlobalActionId;
8564
9425
  label: string;
8565
9426
  fields: GlobalActionField[];
9427
+ editorMode?: 'default' | 'surface-open';
8566
9428
  }
8567
9429
  declare const GLOBAL_ACTION_UI_SCHEMAS: GlobalActionUiSchema[];
8568
9430
  declare function getGlobalActionUiSchema(id: string | undefined): GlobalActionUiSchema | undefined;
8569
9431
 
9432
+ interface SurfaceOpenPreset {
9433
+ id: string;
9434
+ label: string;
9435
+ description: string;
9436
+ payload: SurfaceOpenPayload;
9437
+ }
9438
+ declare const SURFACE_OPEN_PRESETS: SurfaceOpenPreset[];
9439
+
9440
+ type SurfaceSizeField = keyof NonNullable<SurfaceOpenPayload['size']>;
9441
+ declare class SurfaceOpenActionEditorComponent implements OnChanges {
9442
+ value?: SurfaceOpenPayload | null;
9443
+ hostKind?: string | null;
9444
+ valueChange: EventEmitter<SurfaceOpenPayload>;
9445
+ draft: SurfaceOpenPayload;
9446
+ inputJsonDrafts: Record<string, string>;
9447
+ inputErrors: Record<string, string>;
9448
+ contextDraft: string;
9449
+ contextError: string;
9450
+ private readonly registry;
9451
+ private readonly i18n;
9452
+ private static nextInstanceId;
9453
+ private readonly instanceId;
9454
+ readonly sourceSuggestionsListId: string;
9455
+ readonly targetSuggestionsListId: string;
9456
+ get availablePresets(): SurfaceOpenPreset[];
9457
+ get componentOptions(): ComponentDocMeta[];
9458
+ get selectedComponentMeta(): ComponentDocMeta | undefined;
9459
+ get selectedInputs(): NonNullable<ComponentDocMeta['inputs']>;
9460
+ get bindingOrderText(): string;
9461
+ get bindingSourceSuggestions(): string[];
9462
+ get bindingTargetSuggestions(): string[];
9463
+ get bindingSourceSuggestionsPreview(): string;
9464
+ get bindingTargetSuggestionsPreview(): string;
9465
+ ngOnChanges(changes: SimpleChanges): void;
9466
+ updatePresentation(value: SurfaceOpenPayload['presentation']): void;
9467
+ updateTextField(field: 'title' | 'subtitle' | 'icon', value: string): void;
9468
+ updateSizeField(field: SurfaceSizeField, value: string): void;
9469
+ updateWidgetId(componentId: string): void;
9470
+ updateBindingOrder(value: string): void;
9471
+ applyPreset(preset: SurfaceOpenPreset): void;
9472
+ isBooleanType(type?: string): boolean;
9473
+ isNumberType(type?: string): boolean;
9474
+ isJsonType(type?: string): boolean;
9475
+ getBooleanInputValue(name: string): boolean;
9476
+ getScalarInputValue(name: string): any;
9477
+ getJsonInputDraft(name: string): string;
9478
+ scalarPlaceholder(input: NonNullable<ComponentDocMeta['inputs']>[number]): string;
9479
+ jsonPlaceholder(input: NonNullable<ComponentDocMeta['inputs']>[number]): string;
9480
+ updateBooleanInput(name: string, value: boolean): void;
9481
+ updateScalarInput(name: string, type: string, value: any): void;
9482
+ updateJsonInput(name: string, value: string): void;
9483
+ addBinding(): void;
9484
+ updateBinding(index: number, field: keyof SurfaceBinding, value: any): void;
9485
+ removeBinding(index: number): void;
9486
+ updateContext(value: string): void;
9487
+ presetLabel(preset: SurfaceOpenPreset): string;
9488
+ presetDescription(preset: SurfaceOpenPreset): string;
9489
+ t(key: string, fallback: string, params?: Record<string, string | number | boolean | null | undefined>): string;
9490
+ private refreshJsonDrafts;
9491
+ private emitDraft;
9492
+ private ensureWidgetInputs;
9493
+ private reconcileInputsForComponent;
9494
+ private assignTextField;
9495
+ private normalizePayload;
9496
+ private createDefaultPayload;
9497
+ private stringifyJson;
9498
+ private clone;
9499
+ private uniqueStrings;
9500
+ static ɵfac: i0.ɵɵFactoryDeclaration<SurfaceOpenActionEditorComponent, never>;
9501
+ 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>;
9502
+ }
9503
+
8570
9504
  type AiValueKind = 'boolean' | 'string' | 'number' | 'enum' | 'expression' | 'object' | 'array';
8571
9505
  interface AiCapabilityCategoryMap {
8572
9506
  identity: true;
@@ -8738,6 +9672,31 @@ interface ComponentMergePatch<TConfig extends Record<string, unknown> = Record<s
8738
9672
 
8739
9673
  declare const DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK: ComponentContextPack;
8740
9674
 
9675
+ interface WidgetEventPathSegment {
9676
+ kind: 'tabs' | 'tab' | 'nav' | 'link' | 'expansion' | 'panel' | 'stepper' | 'step' | 'slot' | 'group';
9677
+ id?: string;
9678
+ index?: number;
9679
+ }
9680
+ interface WidgetEventEnvelope {
9681
+ /** Optional top-level page widget key that owns the event tree. */
9682
+ ownerWidgetKey?: string;
9683
+ /** Registered component id of the emitting widget/component instance. */
9684
+ sourceComponentId: string;
9685
+ /** Optional author-defined key for nested widget instances inside a container/composite. */
9686
+ sourceChildWidgetKey?: string;
9687
+ output?: string;
9688
+ payload?: any;
9689
+ path?: WidgetEventPathSegment[];
9690
+ }
9691
+ type WidgetResolutionPhase = 'ready' | 'metadata-missing' | 'create-error' | 'validation-error' | 'bind-error';
9692
+ interface WidgetResolutionDiagnostic {
9693
+ componentId?: string;
9694
+ childWidgetKey?: string;
9695
+ phase: WidgetResolutionPhase;
9696
+ message?: string;
9697
+ error?: unknown;
9698
+ }
9699
+
8741
9700
  type EditorialContentFormat = 'plain' | 'markdown';
8742
9701
  interface EditorialLinkDefinition {
8743
9702
  label: string;
@@ -8931,16 +9890,14 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
8931
9890
  private readonly vcRef;
8932
9891
  private readonly registry;
8933
9892
  widget?: WidgetDefinition | string;
9893
+ ownerWidgetKey?: string | null;
8934
9894
  context?: Record<string, any> | null;
8935
9895
  /** When true, invalid inputs/outputs cause errors; otherwise only warnings. */
8936
9896
  strictValidation: boolean;
8937
9897
  /** 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. */
8938
9898
  autoWireOutputs: boolean;
8939
- widgetEvent: EventEmitter<{
8940
- sourceId: string;
8941
- output?: string;
8942
- payload?: any;
8943
- }>;
9899
+ widgetEvent: EventEmitter<WidgetEventEnvelope>;
9900
+ widgetDiagnostic: EventEmitter<WidgetResolutionDiagnostic>;
8944
9901
  private compRef?;
8945
9902
  private currentId?;
8946
9903
  private outputSubs;
@@ -8956,11 +9913,13 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
8956
9913
  private bindInputs;
8957
9914
  private bindOutputs;
8958
9915
  private resolveValue;
9916
+ private get widgetDefinition();
9917
+ private emitDiagnostic;
8959
9918
  private lookup;
8960
9919
  private validateAgainstMetadata;
8961
9920
  private coercePrimitive;
8962
9921
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetLoaderDirective, never>;
8963
- 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>;
9922
+ 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>;
8964
9923
  }
8965
9924
 
8966
9925
  type ActionList = WidgetShellAction[];
@@ -8969,7 +9928,11 @@ declare const BUILTIN_SHELL_PRESETS: Record<string, NonNullable<Appearance>>;
8969
9928
  declare class WidgetShellComponent implements OnChanges {
8970
9929
  shell?: WidgetShellConfig | null;
8971
9930
  context?: Record<string, any> | null;
9931
+ dragSurfaceEnabled: boolean;
9932
+ dragSurfaceLabel: string | null;
8972
9933
  action: EventEmitter<WidgetShellActionEvent>;
9934
+ dragSurfacePointerDown: EventEmitter<PointerEvent>;
9935
+ dragSurfaceKeydown: EventEmitter<KeyboardEvent>;
8973
9936
  loader?: DynamicWidgetLoaderDirective;
8974
9937
  get appearance(): WidgetShellConfig['appearance'];
8975
9938
  collapsed: boolean;
@@ -8984,6 +9947,8 @@ declare class WidgetShellComponent implements OnChanges {
8984
9947
  private get maxHeaderActions();
8985
9948
  get windowActions(): ActionList;
8986
9949
  onAction(action: WidgetShellAction, ev: MouseEvent): void;
9950
+ onHeaderPointerDown(event: PointerEvent): void;
9951
+ onHeaderKeydown(event: KeyboardEvent): void;
8987
9952
  stopIfExpanded(ev: MouseEvent): void;
8988
9953
  closeOverlay(): void;
8989
9954
  private handleWindowAction;
@@ -8991,76 +9956,23 @@ declare class WidgetShellComponent implements OnChanges {
8991
9956
  private isVisible;
8992
9957
  private resolvePresetAppearance;
8993
9958
  private mergeAppearance;
9959
+ private isInteractiveHeaderTarget;
8994
9960
  static ɵfac: i0.ɵɵFactoryDeclaration<WidgetShellComponent, never>;
8995
- static ɵcmp: i0.ɵɵComponentDeclaration<WidgetShellComponent, "praxis-widget-shell", never, { "shell": { "alias": "shell"; "required": false; }; "context": { "alias": "context"; "required": false; }; }, { "action": "action"; }, ["loader"], ["*"], true, never>;
9961
+ 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>;
8996
9962
  }
8997
9963
 
8998
- interface WidgetInstance {
8999
- key: string;
9000
- definition: WidgetDefinition;
9001
- /** Optional CSS classes or layout hints */
9002
- className?: string;
9003
- /** Optional shell config for standardized widget framing. */
9004
- shell?: WidgetShellConfig;
9005
- }
9006
- interface WidgetConnection {
9007
- from: {
9008
- widget: string;
9009
- output: string;
9010
- };
9011
- to: {
9012
- widget: string;
9013
- input: string;
9014
- bindingOrder?: string[];
9015
- };
9016
- /** Dot-path to extract from event object (e.g., 'payload.row.id'). Defaults to 'payload'. */
9017
- map?: string;
9018
- /** Constant value override (when provided, map is ignored). */
9019
- set?: any;
9020
- /** Optional metadata for runtime operators (beta). */
9021
- meta?: {
9022
- /** Expression to filter events (safe, controlled) */
9023
- filterExpr?: string;
9024
- /** Debounce time in milliseconds */
9025
- debounceMs?: number;
9026
- /** Only emit when value changes */
9027
- distinct?: boolean;
9028
- /** Optional key path for distinct comparison (e.g., 'payload.id') */
9029
- distinctBy?: string;
9030
- };
9031
- }
9032
- type WidgetPageOrientation = 'vertical' | 'columns';
9033
- interface WidgetPageLayout {
9034
- /** Layout orientation for widget grid. */
9035
- orientation?: WidgetPageOrientation;
9036
- /** Column count when using columns orientation. */
9037
- columns?: number;
9038
- /** CSS gap value for grid spacing (e.g., '16px'). */
9039
- gap?: string;
9040
- /** Optional responsive columns by breakpoint (sm/md/lg/xl). */
9041
- breakpoints?: {
9042
- sm?: number;
9043
- md?: number;
9044
- lg?: number;
9045
- xl?: number;
9046
- };
9047
- }
9048
- interface WidgetPageDefinition {
9049
- widgets: WidgetInstance[];
9050
- connections?: WidgetConnection[];
9051
- /** Optional page-wide context available to all widgets */
9052
- context?: Record<string, any>;
9053
- /** Optional layout configuration for the widget grid */
9054
- layout?: WidgetPageLayout;
9055
- }
9964
+ declare const BUILTIN_PAGE_LAYOUT_PRESETS: Record<string, WidgetPageLayoutPresetDefinition>;
9965
+ declare const BUILTIN_PAGE_THEME_PRESETS: Record<string, WidgetPageThemePresetDefinition>;
9056
9966
 
9057
9967
  declare class ConnectionManagerService {
9058
9968
  /** Extract value from an object using dot-path (e.g., 'payload.row.id'). */
9059
9969
  extractByPath(obj: any, path: string | undefined): any;
9060
9970
  /** Find connections triggered by an event. */
9061
9971
  findMatches(connections: WidgetConnection[] | undefined, fromKey: string, output: string | undefined): WidgetConnection[];
9972
+ /** Find connections triggered by a state-path update. */
9973
+ findStateMatches(connections: WidgetConnection[] | undefined, statePath: string): WidgetConnection[];
9062
9974
  /** Apply a single match into widgets array, supporting dot-path in target input. Returns a new array. */
9063
- applyMatch(widgets: GridWidgetInstance[], match: WidgetConnection & {
9975
+ applyMatch(widgets: WidgetInstance[], match: WidgetConnection & {
9064
9976
  to: {
9065
9977
  widget: string;
9066
9978
  input: string;
@@ -9068,7 +9980,11 @@ declare class ConnectionManagerService {
9068
9980
  };
9069
9981
  }, event: {
9070
9982
  payload?: any;
9071
- }): GridWidgetInstance[];
9983
+ }): WidgetInstance[];
9984
+ resolveConnectionValue(match: Pick<WidgetConnection, 'map' | 'set'>, event: {
9985
+ payload?: any;
9986
+ } | Record<string, any>): any;
9987
+ setValueAtPath<T extends object>(obj: T, rawPath: string, value: any): T;
9072
9988
  /** Resolve mapped value: supports dot-path or JSON template with ${...} placeholders. */
9073
9989
  private resolveMappedValue;
9074
9990
  /** Recursively resolve ${path} placeholders in objects/arrays/strings. */
@@ -9083,11 +9999,307 @@ declare class ConnectionManagerService {
9083
9999
  static ɵprov: i0.ɵɵInjectableDeclaration<ConnectionManagerService>;
9084
10000
  }
9085
10001
 
9086
- declare class DynamicWidgetPageComponent implements OnChanges {
10002
+ interface WidgetPageStateRuntimeSnapshot {
10003
+ state: WidgetPageStateDefinition;
10004
+ primaryValues: Record<string, any>;
10005
+ derivedValues: Record<string, any>;
10006
+ effectiveValues: Record<string, any>;
10007
+ diagnostics: string[];
10008
+ }
10009
+ declare class WidgetPageStateRuntimeService {
10010
+ private readonly connections;
10011
+ constructor(connections: ConnectionManagerService);
10012
+ normalizeState(state: WidgetPageStateInput | undefined): WidgetPageStateDefinition;
10013
+ buildRuntimeSnapshot(state: WidgetPageStateInput | undefined, context?: Record<string, any> | null): WidgetPageStateRuntimeSnapshot;
10014
+ collectChangedPaths(previous: Record<string, any> | undefined, next: Record<string, any> | undefined, paths: string[]): string[];
10015
+ private materializePrimaryValues;
10016
+ private sortDerivedState;
10017
+ private computeDerivedNode;
10018
+ private resolveNamedSource;
10019
+ private resolveSourceValues;
10020
+ private aggregateArray;
10021
+ private buildFieldList;
10022
+ private groupTop;
10023
+ private selectCase;
10024
+ private matchesCase;
10025
+ private resolveCaseValue;
10026
+ private resolveTemplate;
10027
+ private normalizeDependencyPath;
10028
+ private readPath;
10029
+ private isPlainObject;
10030
+ private isEqual;
10031
+ private isEmptyValue;
10032
+ private readMetricValue;
10033
+ private toNumber;
10034
+ private formatFieldValue;
10035
+ private clone;
10036
+ private describeError;
10037
+ static ɵfac: i0.ɵɵFactoryDeclaration<WidgetPageStateRuntimeService, never>;
10038
+ static ɵprov: i0.ɵɵInjectableDeclaration<WidgetPageStateRuntimeService>;
10039
+ }
10040
+
10041
+ interface CompositionLinkReadInput {
10042
+ canonicalLinks?: CompositionLink[];
10043
+ legacyConnections?: WidgetConnection[];
10044
+ }
10045
+ declare function readCompositionLinksWithLegacyFallback(input: CompositionLinkReadInput): CompositionLink[];
10046
+ declare function normalizeLegacyWidgetConnections(connections: WidgetConnection[] | undefined): CompositionLink[];
10047
+ declare function adaptWidgetConnectionToCompositionLink(connection: WidgetConnection): CompositionLink;
10048
+ declare function adaptWidgetConnectionsToCompositionLinks(connections: WidgetConnection[] | undefined): CompositionLink[];
10049
+
10050
+ interface WidgetPageCompositionState {
10051
+ primaryValues: Record<string, unknown>;
10052
+ schema: Record<string, WidgetStateNode>;
10053
+ /** Definitions carried forward for a later derived-state materialization phase. */
10054
+ derivedDefinitions: Record<string, WidgetDerivedStateNode>;
10055
+ }
10056
+ interface WidgetPageComposition {
10057
+ widgetOrder: string[];
10058
+ widgetsByKey: Record<string, WidgetInstance>;
10059
+ links: CompositionLink[];
10060
+ state: WidgetPageCompositionState;
10061
+ context: Record<string, unknown>;
10062
+ }
10063
+
10064
+ interface CompositionRuntimeStoreInit {
10065
+ pageId?: string;
10066
+ status?: RuntimeSnapshotStatus;
10067
+ generatedAt?: string;
10068
+ links?: RuntimeLinkSnapshot[];
10069
+ state?: Partial<RuntimeStateSnapshot>;
10070
+ diagnostics?: DiagnosticRecord[];
10071
+ traceTail?: RuntimeTraceEntry[];
10072
+ }
10073
+ interface RuntimeLinkSnapshotPatch {
10074
+ linkId: string;
10075
+ status?: RuntimeLinkStatus;
10076
+ lastEventAt?: string;
10077
+ lastDispatchTraceId?: string;
10078
+ lastDeliveredValuePreview?: unknown;
10079
+ diagnostics?: DiagnosticRecord[];
10080
+ }
10081
+ interface CompositionRuntimeStoreCycleUpdate {
10082
+ generatedAt?: string;
10083
+ status?: RuntimeSnapshotStatus;
10084
+ stateSnapshot?: RuntimeStateSnapshot;
10085
+ primaryValuesPatch?: Record<string, unknown>;
10086
+ derivedValuesPatch?: Record<string, unknown>;
10087
+ transientValuesPatch?: Record<string, unknown>;
10088
+ changedPaths?: string[];
10089
+ linkPatches?: RuntimeLinkSnapshotPatch[];
10090
+ diagnostics?: DiagnosticRecord[];
10091
+ traceTail?: RuntimeTraceEntry[];
10092
+ }
10093
+ type CompositionRuntimeSnapshotListener = (snapshot: RuntimeSnapshot) => void;
10094
+ declare class CompositionRuntimeStore {
10095
+ private snapshot;
10096
+ private readonly listeners;
10097
+ constructor(init?: CompositionRuntimeStoreInit);
10098
+ getSnapshot(): RuntimeSnapshot;
10099
+ subscribe(listener: CompositionRuntimeSnapshotListener): () => void;
10100
+ reset(init?: CompositionRuntimeStoreInit): RuntimeSnapshot;
10101
+ applyCycle(update: CompositionRuntimeStoreCycleUpdate): RuntimeSnapshot;
10102
+ private emit;
10103
+ }
10104
+
10105
+ interface TransformRuntimeContext {
10106
+ event?: unknown;
10107
+ payload?: unknown;
10108
+ state?: Record<string, unknown>;
10109
+ derived?: Record<string, unknown>;
10110
+ transient?: Record<string, unknown>;
10111
+ context?: Record<string, unknown>;
10112
+ }
10113
+
10114
+ interface LinkExecutorPathAccessor {
10115
+ extractByPath(source: unknown, path: string): unknown;
10116
+ setValueAtPath(source: unknown, path: string, value: unknown): any;
10117
+ }
10118
+ interface LinkExecutorTransformRunner {
10119
+ executePipeline(pipeline: CompositionLink['transform'] extends infer T ? Exclude<T, undefined> : never, runtime: TransformRuntimeContext): {
10120
+ value: unknown;
10121
+ diagnostics: DiagnosticRecord[];
10122
+ failed: boolean;
10123
+ };
10124
+ }
10125
+ interface LinkExecutionContext {
10126
+ snapshot: Pick<RuntimeSnapshot, 'state'> | {
10127
+ state: RuntimeStateSnapshot;
10128
+ };
10129
+ event?: unknown;
10130
+ payload?: unknown;
10131
+ context?: Record<string, unknown>;
10132
+ now?: string;
10133
+ lastDeliveredValue?: unknown;
10134
+ lastDeliveredAt?: string;
10135
+ }
10136
+ interface LinkExecutionDelivery {
10137
+ kind: 'state' | 'component-port';
10138
+ value: unknown;
10139
+ statePath?: string;
10140
+ stateLayer?: 'values' | 'derived' | 'transient';
10141
+ widgetKey?: string;
10142
+ portId?: string;
10143
+ bindingPath?: string;
10144
+ }
10145
+ interface LinkExecutionResult {
10146
+ status: 'delivered' | 'skipped' | 'failed';
10147
+ value: unknown;
10148
+ diagnostics: DiagnosticRecord[];
10149
+ snapshot: RuntimeStateSnapshot;
10150
+ delivery?: LinkExecutionDelivery;
10151
+ skippedReason?: string;
10152
+ }
10153
+ declare class LinkExecutorService {
10154
+ private readonly transforms;
10155
+ private readonly pathAccessor;
10156
+ constructor(transforms?: LinkExecutorTransformRunner, pathAccessor?: LinkExecutorPathAccessor);
10157
+ executeLink(link: CompositionLink, context: LinkExecutionContext): LinkExecutionResult;
10158
+ private resolveSourceValue;
10159
+ private extractComponentSourceBinding;
10160
+ private matchesConditions;
10161
+ private evaluateCondition;
10162
+ private evaluateExpression;
10163
+ private resolveExpressionOperand;
10164
+ private readConditionValue;
10165
+ private matchesPortKind;
10166
+ private buildTransformContext;
10167
+ private resolveMissingValuePolicy;
10168
+ private resolvePolicySkip;
10169
+ private deliverValue;
10170
+ private resolveDistinctValue;
10171
+ private readStatePath;
10172
+ private buildEffectiveState;
10173
+ private createDiagnostic;
10174
+ private isEmptyValue;
10175
+ private isEqual;
10176
+ private cloneSnapshot;
10177
+ private clone;
10178
+ }
10179
+
10180
+ interface RuntimeTraceEntryInput {
10181
+ timestamp: string;
10182
+ phase: RuntimeTracePhase;
10183
+ subject: DiagnosticSubjectRef;
10184
+ linkId?: string;
10185
+ payload?: unknown;
10186
+ inputSnapshot?: unknown;
10187
+ outputSnapshot?: unknown;
10188
+ details?: Record<string, unknown>;
10189
+ diagnostics?: string[];
10190
+ }
10191
+ declare class RuntimeTraceService {
10192
+ createEntry(traceId: string, sequence: number, input: RuntimeTraceEntryInput): RuntimeTraceEntry;
10193
+ summarizePayload(payload: unknown): RuntimePayloadSummary | undefined;
10194
+ private clone;
10195
+ }
10196
+
10197
+ type CompositionRuntimeDefinition = WidgetPageComposition;
10198
+ interface CompositionDispatchEvent {
10199
+ eventId: string;
10200
+ source: EndpointRef;
10201
+ payload?: unknown;
10202
+ occurredAt?: string;
10203
+ }
10204
+ interface CompositionRuntimeCycleResult {
10205
+ cycleId: string;
10206
+ matchedLinkIds: string[];
10207
+ snapshot: RuntimeSnapshot;
10208
+ diagnostics: DiagnosticRecord[];
10209
+ }
10210
+ interface CompositionRuntimeEngineOptions {
10211
+ now?: () => string;
10212
+ store?: CompositionRuntimeStore;
10213
+ linkExecutor?: LinkExecutorService;
10214
+ stateRuntime?: WidgetPageStateRuntimeService;
10215
+ traceService?: RuntimeTraceService;
10216
+ }
10217
+ interface CompositionStateWidgetPreviewOptions {
10218
+ widgets?: WidgetInstance[];
10219
+ state?: RuntimeStateSnapshot;
10220
+ now?: string;
10221
+ }
10222
+ interface CompositionStateWidgetPreviewResult {
10223
+ widgets: WidgetInstance[];
10224
+ matchedLinkIds: string[];
10225
+ diagnostics: DiagnosticRecord[];
10226
+ }
10227
+ declare class CompositionRuntimeEngine {
10228
+ private readonly store;
10229
+ private readonly linkExecutor;
10230
+ private readonly stateRuntime;
10231
+ private readonly traceService;
10232
+ private readonly pathAccessor;
10233
+ private definition;
10234
+ private readonly now;
10235
+ constructor(options?: CompositionRuntimeEngineOptions);
10236
+ bootstrap(definition: CompositionRuntimeDefinition): RuntimeSnapshot;
10237
+ dispatch(event: CompositionDispatchEvent): CompositionRuntimeCycleResult;
10238
+ getSnapshot(): RuntimeSnapshot;
10239
+ getStore(): CompositionRuntimeStore;
10240
+ projectStateWidgetInputs(definition: CompositionRuntimeDefinition, options?: CompositionStateWidgetPreviewOptions): CompositionStateWidgetPreviewResult;
10241
+ private createLinkSnapshot;
10242
+ private applyBootstrapHydration;
10243
+ private materializeDerivedState;
10244
+ private createDerivedDiagnostic;
10245
+ private clonePreviewWidgets;
10246
+ private cloneJson;
10247
+ private extractDerivedNodeKey;
10248
+ private appendDiagnosticTraceEntries;
10249
+ }
10250
+
10251
+ interface CompositionRuntimeFacadeOptions {
10252
+ engine?: CompositionRuntimeEngine;
10253
+ engineOptions?: CompositionRuntimeEngineOptions;
10254
+ }
10255
+ declare class CompositionRuntimeFacade {
10256
+ private readonly engine;
10257
+ private readonly snapshotSubject;
10258
+ private readonly unsubscribeFromStore;
10259
+ readonly snapshot$: Observable<RuntimeSnapshot>;
10260
+ readonly diagnostics$: Observable<DiagnosticRecord[]>;
10261
+ readonly traceTail$: Observable<RuntimeTraceEntry[]>;
10262
+ constructor(options?: CompositionRuntimeFacadeOptions);
10263
+ bootstrap(definition: CompositionRuntimeDefinition): RuntimeSnapshot;
10264
+ dispatch(event: CompositionDispatchEvent): CompositionRuntimeCycleResult;
10265
+ projectStateWidgetInputs(definition: CompositionRuntimeDefinition, options?: CompositionStateWidgetPreviewOptions): CompositionStateWidgetPreviewResult;
10266
+ getSnapshot(): RuntimeSnapshot;
10267
+ getEngine(): CompositionRuntimeEngine;
10268
+ destroy(): void;
10269
+ }
10270
+
10271
+ interface RenderedWidgetInstance extends WidgetInstance {
10272
+ renderClassName?: string;
10273
+ renderSpan?: number;
10274
+ renderCanvasItem?: WidgetPageCanvasItem;
10275
+ }
10276
+ interface RenderedTabsGroup {
10277
+ id: string;
10278
+ label?: string;
10279
+ widgets: RenderedWidgetInstance[];
10280
+ }
10281
+ interface RenderedWidgetGroup {
10282
+ id: string;
10283
+ kind: WidgetPageGroupingDefinition['kind'] | 'ungrouped';
10284
+ label?: string;
10285
+ layout?: 'stack' | 'grid' | 'row';
10286
+ emphasis?: 'high' | 'medium';
10287
+ side?: 'left' | 'right';
10288
+ widgets: RenderedWidgetInstance[];
10289
+ tabs?: RenderedTabsGroup[];
10290
+ }
10291
+ type CanvasResizeHandle = 'north' | 'south' | 'east' | 'west' | 'north-east' | 'north-west' | 'south-east' | 'south-west';
10292
+ interface CanvasResizeHandleDefinition {
10293
+ id: CanvasResizeHandle;
10294
+ className: string;
10295
+ }
10296
+ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
9087
10297
  private conn;
10298
+ private stateRuntime;
9088
10299
  private settingsPanel;
9089
10300
  private defaultShellEditor;
9090
10301
  private defaultPageEditor;
10302
+ pageCanvasHost?: ElementRef<HTMLElement>;
9091
10303
  page?: WidgetPageDefinition | string;
9092
10304
  context?: Record<string, any> | null;
9093
10305
  strictValidation: boolean;
@@ -9106,27 +10318,48 @@ declare class DynamicWidgetPageComponent implements OnChanges {
9106
10318
  /** Optional instance key for pages rendered multiple times. */
9107
10319
  componentInstanceId?: string;
9108
10320
  pageChange: EventEmitter<WidgetPageDefinition>;
10321
+ widgetDiagnosticsChange: EventEmitter<Record<string, WidgetResolutionDiagnostic>>;
9109
10322
  widgets: i0.WritableSignal<WidgetInstance[]>;
10323
+ renderedGroups: i0.WritableSignal<RenderedWidgetGroup[]>;
9110
10324
  mergedContext: Record<string, any>;
9111
10325
  pageGap: string;
9112
10326
  gridTemplateColumns: string;
10327
+ gridAutoRows: string;
10328
+ layoutAnnouncement: string;
10329
+ readonly canvasResizeHandles: readonly CanvasResizeHandleDefinition[];
9113
10330
  private pageDefinition?;
10331
+ private pageState;
10332
+ private pageRuntime;
9114
10333
  private layout?;
10334
+ private canvas?;
10335
+ private grouping;
10336
+ private pageColumnCount;
10337
+ private activeTabs;
10338
+ private widgetDiagnostics;
10339
+ private selectedCanvasWidgetKey;
10340
+ private blockedCanvasWidgetKey;
10341
+ private canvasPreviewState;
10342
+ private canvasPreviewInvalidState;
10343
+ private transientCanvasItemsState;
10344
+ private activeCanvasInteraction;
9115
10345
  private appliedPersisted;
9116
10346
  private isHydrating;
9117
10347
  private persistenceReady;
9118
10348
  private warnedMissingKey;
10349
+ private readonly compositionFactory;
10350
+ private readonly compositionRuntime;
10351
+ private compositionDefinition?;
9119
10352
  private readonly globalActions;
9120
10353
  private readonly storage;
9121
10354
  private readonly componentKeys;
10355
+ private readonly i18n;
9122
10356
  private readonly route;
9123
- constructor(conn: ConnectionManagerService, settingsPanel: SettingsPanelBridge | null, defaultShellEditor: Type<any> | null, defaultPageEditor: Type<any> | null);
10357
+ constructor(conn: ConnectionManagerService, stateRuntime: WidgetPageStateRuntimeService, settingsPanel: SettingsPanelBridge | null, defaultShellEditor: Type<any> | null, defaultPageEditor: Type<any> | null);
10358
+ ngOnDestroy(): void;
9124
10359
  ngOnChanges(changes: SimpleChanges): void;
9125
- onWidgetEvent(fromKey: string, evt: {
9126
- sourceId: string;
9127
- output?: string;
9128
- payload?: any;
9129
- }): void;
10360
+ onWidgetEvent(fromKey: string, evt: WidgetEventEnvelope): void;
10361
+ private areStateValuesEqual;
10362
+ onWidgetDiagnostic(widgetKey: string, diagnostic: WidgetResolutionDiagnostic): void;
9130
10363
  onShellAction(fromKey: string, evt: WidgetShellActionEvent): void;
9131
10364
  private handleSetInputCommand;
9132
10365
  private mergeOrder;
@@ -9141,11 +10374,84 @@ declare class DynamicWidgetPageComponent implements OnChanges {
9141
10374
  private applyPageLayout;
9142
10375
  private applyPageUpdate;
9143
10376
  private applyLayout;
10377
+ private applyCanvasLayout;
9144
10378
  private mergeContext;
9145
10379
  onWindowResize(): void;
10380
+ onCanvasPointerMove(event: PointerEvent): void;
10381
+ onCanvasPointerUp(event: PointerEvent): void;
10382
+ onCanvasPointerCancel(event: PointerEvent): void;
9146
10383
  private resolveColumns;
9147
10384
  private ensurePageDefinition;
9148
10385
  private parsePage;
10386
+ private resolvePagePresets;
10387
+ private mergeLayout;
10388
+ private applyResponsivePresentation;
10389
+ private resolveEffectivePresentation;
10390
+ private resolveDeviceVariant;
10391
+ private resolveCanvas;
10392
+ private resolveDeviceKind;
10393
+ isCanvasMode(): boolean;
10394
+ selectCanvasWidget(widgetKey: string): void;
10395
+ isCanvasWidgetSelected(widgetKey: string): boolean;
10396
+ isCanvasWidgetBlocked(widgetKey: string): boolean;
10397
+ canvasPreviewItem(): WidgetPageCanvasItem | null;
10398
+ canvasPreviewGridColumn(): string | null;
10399
+ canvasPreviewGridRow(): string | null;
10400
+ canvasPreviewInvalid(): boolean;
10401
+ startCanvasDrag(widgetKey: string, event: PointerEvent): void;
10402
+ startCanvasResize(widgetKey: string, handle: CanvasResizeHandle, event: PointerEvent): void;
10403
+ onCanvasHandleKeydown(widgetKey: string, kind: 'drag' | 'resize', event: KeyboardEvent): void;
10404
+ onCanvasResizeHandleKeydown(widgetKey: string, handle: CanvasResizeHandle, event: KeyboardEvent): void;
10405
+ private applyWidgetLayoutOverrides;
10406
+ private applyCanvasLayoutToWidgets;
10407
+ private startCanvasInteraction;
10408
+ private currentCanvasMetrics;
10409
+ private currentCanvasItem;
10410
+ private resolveCanvasInteractionDelta;
10411
+ private updateCanvasItem;
10412
+ private applyTransientPagePreview;
10413
+ private resolveCanvasTarget;
10414
+ private applyCanvasDrag;
10415
+ private applyCanvasResize;
10416
+ private applyCanvasKeyboardDrag;
10417
+ private applyCanvasKeyboardResize;
10418
+ pageSettingsLabel(): string;
10419
+ dragWidgetLabel(): string;
10420
+ resizeWidgetLabel(): string;
10421
+ resizeHandleLabel(handle: CanvasResizeHandle): string;
10422
+ private canvasAnnouncement;
10423
+ private blockedCanvasAnnouncement;
10424
+ private canvasSwapAnnouncement;
10425
+ private positionedCanvasAnnouncement;
10426
+ private t;
10427
+ private resolveCanvasConstraints;
10428
+ private normalizeCanvasItem;
10429
+ private resolveCanvasCollisionPolicy;
10430
+ private resolveCanvasPlacement;
10431
+ private findCanvasCollisions;
10432
+ private buildCanvasSwapItem;
10433
+ private canPlaceCanvasItem;
10434
+ private canvasItemsOverlap;
10435
+ private isSameCanvasItem;
10436
+ private clampCanvasCol;
10437
+ private clampNumber;
10438
+ private parseCssPixelValue;
10439
+ private releaseCanvasPointerCapture;
10440
+ private clonePageDefinition;
10441
+ private cloneWidgets;
10442
+ private applyGroupingOverrides;
10443
+ private buildRenderedGroups;
10444
+ private syncActiveTabs;
10445
+ activeTabId(groupId: string): string;
10446
+ selectGroupTab(groupId: string, tabId: string): void;
10447
+ resolveGroupContentLayout(group: RenderedWidgetGroup): 'stack' | 'grid' | 'row';
10448
+ groupGridColumn(group: RenderedWidgetGroup): string | null;
10449
+ widgetGridColumn(widget: RenderedWidgetInstance): string | null;
10450
+ widgetGridRow(widget: RenderedWidgetInstance): string | null;
10451
+ widgetZIndex(widget: RenderedWidgetInstance): number | null;
10452
+ widgetClassName(widget: WidgetInstance): string;
10453
+ private mergeClassNames;
10454
+ private resolveRenderedCanvasItem;
9149
10455
  private applyEditShellActions;
9150
10456
  private savePage;
9151
10457
  private loadPersistedPage;
@@ -9154,8 +10460,20 @@ declare class DynamicWidgetPageComponent implements OnChanges {
9154
10460
  private buildPageScopeId;
9155
10461
  private warnMissingKey;
9156
10462
  private sanitizeSegment;
9157
- static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetPageComponent, [null, { optional: true; }, { optional: true; }, { optional: true; }]>;
9158
- 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>;
10463
+ private cloneStateValues;
10464
+ private cloneValue;
10465
+ private cloneGrouping;
10466
+ private buildStateRuntime;
10467
+ private buildStateContext;
10468
+ private resolveShellTemplates;
10469
+ private reportStateDiagnostics;
10470
+ private applyBootstrapCompositionHydration;
10471
+ private bootstrapCompositionAdapter;
10472
+ private dispatchWidgetEventToComposition;
10473
+ private stateFromCompositionSnapshot;
10474
+ private applyCompositionWidgetDeliveries;
10475
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetPageComponent, [null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
10476
+ 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>;
9159
10477
  }
9160
10478
 
9161
10479
  /** Metadata for Praxis Dynamic Page component */
@@ -9165,51 +10483,20 @@ declare const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA: ComponentDocMeta;
9165
10483
  */
9166
10484
  declare function providePraxisDynamicPageMetadata(): Provider;
9167
10485
 
9168
- declare class DynamicGridPageComponent implements OnChanges {
9169
- private conn;
9170
- page?: GridPageDefinition | string;
10486
+ declare class PraxisSurfaceHostComponent {
10487
+ title?: string;
10488
+ subtitle?: string;
10489
+ icon?: string;
10490
+ widget?: WidgetDefinition;
9171
10491
  context?: Record<string, any> | null;
9172
10492
  strictValidation: boolean;
9173
- /** Optional code-level grid options. Editor (page.options) takes precedence over these. */
9174
- gridOptions?: Partial<{
9175
- cols: number;
9176
- rowHeight: number;
9177
- gap: number;
9178
- }>;
9179
- /** Shows editing affordances (background overlay) on CSS Grid implementation. */
9180
- enableCustomization: boolean;
9181
- widgets: i0.WritableSignal<GridWidgetInstance[]>;
9182
- mergedContext: Record<string, any>;
9183
- private readonly globalActions;
9184
- private selectedKey;
9185
- private cols;
9186
- private _rowHeight;
9187
- private _gap;
9188
- overlayEnabled: boolean;
9189
- gridTemplateColumns: i0.Signal<string>;
9190
- rowHeight: i0.Signal<number>;
9191
- gap: i0.Signal<number>;
9192
- constructor(conn: ConnectionManagerService);
9193
- ngOnChanges(changes: SimpleChanges): void;
9194
- toGridColumn(w: GridWidgetInstance): string;
9195
- toGridRow(w: GridWidgetInstance): string;
9196
- onWidgetEvent(fromKey: string, evt: {
9197
- sourceId: string;
9198
- output?: string;
9199
- payload?: any;
9200
- }): void;
9201
- onShellAction(fromKey: string, evt: WidgetShellActionEvent): void;
9202
- isSelected(key?: string): boolean;
9203
- onTileClick(key?: string, ev?: Event): void;
9204
- private mergeOrder;
9205
- private maybeExecuteMappedAction;
9206
- private maybeExecuteGlobalCommand;
9207
- private resolveActionPayload;
9208
- private resolveTemplate;
9209
- private lookup;
9210
- private parsePage;
9211
- static ɵfac: i0.ɵɵFactoryDeclaration<DynamicGridPageComponent, never>;
9212
- 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>;
10493
+ /**
10494
+ * Keep disabled by default to avoid duplicating the title already shown by
10495
+ * modal/drawer hosts. Inline consumers may opt into rendering it again.
10496
+ */
10497
+ renderTitleInsideBody: boolean;
10498
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisSurfaceHostComponent, never>;
10499
+ 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>;
9213
10500
  }
9214
10501
 
9215
10502
  interface EmptyAction {
@@ -9584,5 +10871,5 @@ declare function provideFormHookPresets(presets: Array<FormHookPreset>): Provide
9584
10871
  /** Register a whitelist of allowed hook ids/patterns. */
9585
10872
  declare function provideHookWhitelist(allowed: Array<string | RegExp>): Provider[];
9586
10873
 
9587
- 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, 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 };
9588
- 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, InlineRangeDistributionBin, InlineRangeDistributionConfig, 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, 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, WidgetDefinition, WidgetInstance, WidgetPageDefinition, WidgetPageLayout, WidgetPageOrientation, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellConfig, WidgetShellWindowActions };
10874
+ 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, normalizeLegacyWidgetConnections, 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, readCompositionLinksWithLegacyFallback, 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 };
10875
+ 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, CompositionLinkReadInput, 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, WidgetPageCompositionDefinition, 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 };