@praxisui/table 9.0.36 → 9.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -396,7 +396,7 @@ Main authoring areas include:
396
396
  - value mapping
397
397
  - JSON config editing
398
398
 
399
- The package also exports `PRAXIS_TABLE_AUTHORING_MANIFEST` for governed AI edits and `TABLE_AI_CAPABILITIES` / `TABLE_COMPONENT_AI_CAPABILITIES` for component capability discovery.
399
+ The package exports separate governed contracts for the two authoring documents: `PRAXIS_TABLE_AUTHORING_MANIFEST` owns `TableConfig`, including embedded filtering under `behavior.filtering`, while `PRAXIS_FILTER_AUTHORING_MANIFEST` owns the standalone `FilterConfig`. The standalone manifest never persists the controlled `value` DTO and does not expose Table query-builder operations or the nominal `submit` alias. `TABLE_AI_CAPABILITIES` / `TABLE_COMPONENT_AI_CAPABILITIES` remain the component capability discovery surface for the Table aggregate.
400
400
 
401
401
  ## Analytics And Rich Content
402
402
 
@@ -428,6 +428,7 @@ Main exports:
428
428
  - `providePraxisTableMetadata`
429
429
  - `TABLE_AI_CAPABILITIES`, `TABLE_COMPONENT_AI_CAPABILITIES`
430
430
  - `PRAXIS_TABLE_AUTHORING_MANIFEST`
431
+ - `PRAXIS_FILTER_AUTHORING_MANIFEST`
431
432
  - table component edit-plan helpers
432
433
 
433
434
  ## Notes
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-08-29T20:24:51.350Z",
3
+ "generatedAt": "2026-08-30T00:46:55.066Z",
4
4
  "packageName": "@praxisui/table",
5
- "packageVersion": "9.0.36",
5
+ "packageVersion": "9.0.37",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 3,
@@ -253,10 +253,84 @@
253
253
  "scope": "toolbar"
254
254
  }
255
255
  ],
256
+ "ports": [
257
+ {
258
+ "id": "value",
259
+ "label": "Filter Value",
260
+ "direction": "input",
261
+ "semanticKind": "value",
262
+ "schema": {
263
+ "id": "Record<string, any>",
264
+ "kind": "ts-type",
265
+ "ref": "Record<string, any>"
266
+ },
267
+ "description": "Controlled filter DTO applied by the host.",
268
+ "exposure": {
269
+ "public": true,
270
+ "group": "data"
271
+ }
272
+ },
273
+ {
274
+ "id": "change",
275
+ "label": "Filter Change",
276
+ "direction": "output",
277
+ "semanticKind": "event",
278
+ "schema": {
279
+ "id": "Record<string, any>",
280
+ "kind": "ts-type",
281
+ "ref": "Record<string, any>"
282
+ },
283
+ "cardinality": "stream",
284
+ "description": "Filter DTO emitted after a local value change.",
285
+ "exposure": {
286
+ "public": true,
287
+ "group": "events"
288
+ }
289
+ },
290
+ {
291
+ "id": "requestSearch",
292
+ "label": "Request Search",
293
+ "direction": "output",
294
+ "semanticKind": "event",
295
+ "schema": {
296
+ "id": "Record<string, any>",
297
+ "kind": "ts-type",
298
+ "ref": "Record<string, any>"
299
+ },
300
+ "cardinality": "stream",
301
+ "description": "Canonical search request carrying the current filter DTO.",
302
+ "exposure": {
303
+ "public": true,
304
+ "group": "events"
305
+ }
306
+ },
307
+ {
308
+ "id": "clear",
309
+ "label": "Clear Filter",
310
+ "direction": "output",
311
+ "semanticKind": "event",
312
+ "schema": {
313
+ "id": "void",
314
+ "kind": "ts-type",
315
+ "ref": "void"
316
+ },
317
+ "cardinality": "stream",
318
+ "description": "Event emitted after the current filter DTO is cleared.",
319
+ "exposure": {
320
+ "public": true,
321
+ "group": "events"
322
+ }
323
+ }
324
+ ],
256
325
  "configEditor": {
257
326
  "component": "[ref:PraxisFilterWidgetConfigEditor]",
258
327
  "title": "Configurar filtro"
259
328
  },
329
+ "authoringManifestRef": {
330
+ "componentId": "praxis-filter",
331
+ "version": "1.0.0",
332
+ "source": "PRAXIS_FILTER_AUTHORING_MANIFEST"
333
+ },
260
334
  "source": "projects/praxis-table/src/lib/components/praxis-filter/praxis-filter.metadata.ts",
261
335
  "exportName": "PRAXIS_FILTER_COMPONENT_METADATA",
262
336
  "capabilities": [
@@ -1809,6 +1883,560 @@
1809
1883
  ]
1810
1884
  }
1811
1885
  ],
1886
+ "authoringManifest": {
1887
+ "schemaVersion": "1.0.0",
1888
+ "componentId": "praxis-filter",
1889
+ "ownerPackage": "@praxisui/table",
1890
+ "configSchemaId": "FilterConfig",
1891
+ "manifestVersion": "1.0.0",
1892
+ "runtimeInputs": [
1893
+ {
1894
+ "name": "resourcePath",
1895
+ "type": "string",
1896
+ "description": "Canonical resource used to resolve filter metadata."
1897
+ },
1898
+ {
1899
+ "name": "apiUrlEntry",
1900
+ "type": "ApiUrlEntry | null",
1901
+ "description": "Resolved API entry supplied by detached hosts."
1902
+ },
1903
+ {
1904
+ "name": "fieldMetadata",
1905
+ "type": "FieldMetadata[] | null",
1906
+ "description": "Optional host-provided filter metadata."
1907
+ },
1908
+ {
1909
+ "name": "filterId",
1910
+ "type": "string",
1911
+ "description": "Stable filter persistence identity."
1912
+ },
1913
+ {
1914
+ "name": "formId",
1915
+ "type": "string",
1916
+ "description": "Stable advanced-filter form identity."
1917
+ },
1918
+ {
1919
+ "name": "componentInstanceId",
1920
+ "type": "string",
1921
+ "description": "Stable hosted widget identity."
1922
+ },
1923
+ {
1924
+ "name": "mode",
1925
+ "type": "'filter'",
1926
+ "allowedValues": [
1927
+ "filter"
1928
+ ],
1929
+ "description": "Standalone runtime mode."
1930
+ },
1931
+ {
1932
+ "name": "notifyIfOutdated",
1933
+ "type": "'inline' | 'snackbar' | 'both' | 'none'",
1934
+ "description": "Schema drift notification channel."
1935
+ },
1936
+ {
1937
+ "name": "snoozeMs",
1938
+ "type": "number",
1939
+ "description": "Schema drift notification snooze duration."
1940
+ },
1941
+ {
1942
+ "name": "autoOpenSettingsOnOutdated",
1943
+ "type": "boolean",
1944
+ "description": "Opens settings when schema drift is detected."
1945
+ },
1946
+ {
1947
+ "name": "enableCustomization",
1948
+ "type": "boolean",
1949
+ "description": "Enables runtime customization affordances."
1950
+ },
1951
+ {
1952
+ "name": "value",
1953
+ "type": "Record<string, any>",
1954
+ "description": "Controlled runtime filter DTO; never persisted by standalone authoring."
1955
+ },
1956
+ {
1957
+ "name": "alwaysVisibleFields",
1958
+ "type": "string[]",
1959
+ "description": "Ordered fields pinned in the inline filter."
1960
+ },
1961
+ {
1962
+ "name": "alwaysVisibleFieldMetadataOverrides",
1963
+ "type": "Record<string, Record<string, any>>",
1964
+ "description": "Host-owned metadata overrides preserved by editor round trips but not authored by this manifest."
1965
+ },
1966
+ {
1967
+ "name": "selectedFieldIds",
1968
+ "type": "string[]",
1969
+ "description": "Ordered additional fields selected for the filter."
1970
+ },
1971
+ {
1972
+ "name": "tags",
1973
+ "type": "FilterTag[]",
1974
+ "description": "Host-provided filter shortcuts; not authored by this manifest."
1975
+ },
1976
+ {
1977
+ "name": "allowSaveTags",
1978
+ "type": "boolean",
1979
+ "description": "Allows users to persist filter shortcuts."
1980
+ },
1981
+ {
1982
+ "name": "persistenceKey",
1983
+ "type": "string",
1984
+ "description": "Host-owned persistence key."
1985
+ },
1986
+ {
1987
+ "name": "disablePersistence",
1988
+ "type": "boolean",
1989
+ "description": "Disables runtime preference persistence."
1990
+ },
1991
+ {
1992
+ "name": "i18n",
1993
+ "type": "Partial<I18n>",
1994
+ "description": "Host-provided copy overrides."
1995
+ },
1996
+ {
1997
+ "name": "changeDebounceMs",
1998
+ "type": "number",
1999
+ "description": "Debounce applied to filter changes."
2000
+ },
2001
+ {
2002
+ "name": "showFilterSettings",
2003
+ "type": "boolean",
2004
+ "description": "Shows runtime filter settings affordance."
2005
+ },
2006
+ {
2007
+ "name": "showAdvancedButton",
2008
+ "type": "boolean",
2009
+ "description": "Shows the advanced-filter action."
2010
+ },
2011
+ {
2012
+ "name": "showAddButton",
2013
+ "type": "boolean",
2014
+ "description": "Shows the field-selection action."
2015
+ },
2016
+ {
2017
+ "name": "showClearButton",
2018
+ "type": "boolean",
2019
+ "description": "Shows the clear action."
2020
+ },
2021
+ {
2022
+ "name": "showSearchButton",
2023
+ "type": "boolean",
2024
+ "description": "Shows the explicit request-search action."
2025
+ },
2026
+ {
2027
+ "name": "confirmTagDelete",
2028
+ "type": "boolean",
2029
+ "description": "Requires confirmation before deleting a shortcut."
2030
+ },
2031
+ {
2032
+ "name": "placeBooleansInActions",
2033
+ "type": "boolean",
2034
+ "description": "Places boolean controls in the action lane."
2035
+ },
2036
+ {
2037
+ "name": "showToggleLabels",
2038
+ "type": "boolean",
2039
+ "description": "Shows labels for action-lane toggles."
2040
+ },
2041
+ {
2042
+ "name": "useInlineSelectVariant",
2043
+ "type": "boolean",
2044
+ "description": "Uses the compact inline select renderer."
2045
+ },
2046
+ {
2047
+ "name": "useInlineSearchableSelectVariant",
2048
+ "type": "boolean",
2049
+ "description": "Uses the compact searchable-select renderer."
2050
+ },
2051
+ {
2052
+ "name": "useInlineMultiSelectVariant",
2053
+ "type": "boolean",
2054
+ "description": "Uses the compact multi-select renderer."
2055
+ },
2056
+ {
2057
+ "name": "useInlineInputVariant",
2058
+ "type": "boolean",
2059
+ "description": "Uses the compact input renderer."
2060
+ },
2061
+ {
2062
+ "name": "useInlineToggleVariant",
2063
+ "type": "boolean",
2064
+ "description": "Uses the compact toggle renderer."
2065
+ },
2066
+ {
2067
+ "name": "useInlineRangeVariant",
2068
+ "type": "boolean",
2069
+ "description": "Uses the compact range renderer."
2070
+ },
2071
+ {
2072
+ "name": "useInlineDateVariant",
2073
+ "type": "boolean",
2074
+ "description": "Uses the compact date renderer."
2075
+ },
2076
+ {
2077
+ "name": "useInlineDateRangeVariant",
2078
+ "type": "boolean",
2079
+ "description": "Uses the compact date-range renderer."
2080
+ },
2081
+ {
2082
+ "name": "useInlineTimeVariant",
2083
+ "type": "boolean",
2084
+ "description": "Uses the compact time renderer."
2085
+ },
2086
+ {
2087
+ "name": "useInlineTimeRangeVariant",
2088
+ "type": "boolean",
2089
+ "description": "Uses the compact time-range renderer."
2090
+ },
2091
+ {
2092
+ "name": "useInlineTreeSelectVariant",
2093
+ "type": "boolean",
2094
+ "description": "Uses the compact tree-select renderer."
2095
+ },
2096
+ {
2097
+ "name": "alwaysMinWidth",
2098
+ "type": "number",
2099
+ "description": "Minimum width for pinned fields."
2100
+ },
2101
+ {
2102
+ "name": "alwaysColsMd",
2103
+ "type": "number",
2104
+ "description": "Pinned-field columns on medium viewports."
2105
+ },
2106
+ {
2107
+ "name": "alwaysColsLg",
2108
+ "type": "number",
2109
+ "description": "Pinned-field columns on large viewports."
2110
+ },
2111
+ {
2112
+ "name": "tagColor",
2113
+ "type": "'primary' | 'accent' | 'warn' | 'basic'",
2114
+ "description": "Shortcut color token."
2115
+ },
2116
+ {
2117
+ "name": "tagVariant",
2118
+ "type": "'filled' | 'outlined'",
2119
+ "description": "Shortcut surface variant."
2120
+ },
2121
+ {
2122
+ "name": "tagButtonColor",
2123
+ "type": "'primary' | 'accent' | 'warn' | 'basic'",
2124
+ "description": "Shortcut action color token."
2125
+ },
2126
+ {
2127
+ "name": "actionsButtonColor",
2128
+ "type": "'primary' | 'accent' | 'warn' | 'basic'",
2129
+ "description": "Filter action color token."
2130
+ },
2131
+ {
2132
+ "name": "actionsVariant",
2133
+ "type": "'standard' | 'outlined'",
2134
+ "description": "Filter action surface variant."
2135
+ },
2136
+ {
2137
+ "name": "overlayVariant",
2138
+ "type": "'card' | 'frosted'",
2139
+ "description": "Advanced-filter overlay surface."
2140
+ },
2141
+ {
2142
+ "name": "overlayBackdrop",
2143
+ "type": "boolean",
2144
+ "description": "Controls the advanced-filter backdrop."
2145
+ },
2146
+ {
2147
+ "name": "advancedOpenMode",
2148
+ "type": "'modal' | 'drawer'",
2149
+ "allowedValues": [
2150
+ "modal",
2151
+ "drawer"
2152
+ ],
2153
+ "description": "Canonical advanced-filter container."
2154
+ },
2155
+ {
2156
+ "name": "advancedClearButtonsEnabled",
2157
+ "type": "boolean",
2158
+ "description": "Enables clear buttons in advanced fields."
2159
+ }
2160
+ ],
2161
+ "editableTargets": [
2162
+ {
2163
+ "kind": "filterSettings",
2164
+ "resolver": "filter-config",
2165
+ "description": "The standalone FilterConfig root materialized by PraxisFilterWidgetConfigEditor."
2166
+ }
2167
+ ],
2168
+ "operations": [
2169
+ {
2170
+ "operationId": "filter.settings.configure",
2171
+ "title": "Configure standalone filter settings",
2172
+ "description": "Merges a partial, runtime-backed FilterConfig patch while preserving host-owned inputs and excluding the controlled value DTO.",
2173
+ "scope": "global",
2174
+ "targetKind": "filterSettings",
2175
+ "target": {
2176
+ "kind": "filterSettings",
2177
+ "resolver": "filter-config",
2178
+ "ambiguityPolicy": "fail",
2179
+ "required": false
2180
+ },
2181
+ "inputSchema": {
2182
+ "type": "object",
2183
+ "minProperties": 1,
2184
+ "additionalProperties": false,
2185
+ "properties": {
2186
+ "alwaysVisibleFields": {
2187
+ "type": "array",
2188
+ "uniqueItems": true,
2189
+ "items": {
2190
+ "type": "string",
2191
+ "minLength": 1
2192
+ }
2193
+ },
2194
+ "selectedFieldIds": {
2195
+ "type": "array",
2196
+ "uniqueItems": true,
2197
+ "items": {
2198
+ "type": "string",
2199
+ "minLength": 1
2200
+ }
2201
+ },
2202
+ "allowSaveTags": {
2203
+ "type": "boolean"
2204
+ },
2205
+ "changeDebounceMs": {
2206
+ "type": "number",
2207
+ "minimum": 100,
2208
+ "maximum": 1000
2209
+ },
2210
+ "placeBooleansInActions": {
2211
+ "type": "boolean"
2212
+ },
2213
+ "showToggleLabels": {
2214
+ "type": "boolean"
2215
+ },
2216
+ "alwaysMinWidth": {
2217
+ "type": "number",
2218
+ "minimum": 180,
2219
+ "maximum": 480
2220
+ },
2221
+ "alwaysColsMd": {
2222
+ "type": "number",
2223
+ "minimum": 1,
2224
+ "maximum": 3
2225
+ },
2226
+ "alwaysColsLg": {
2227
+ "type": "number",
2228
+ "minimum": 1,
2229
+ "maximum": 4
2230
+ },
2231
+ "confirmTagDelete": {
2232
+ "type": "boolean"
2233
+ },
2234
+ "tagColor": {
2235
+ "enum": [
2236
+ "primary",
2237
+ "accent",
2238
+ "warn",
2239
+ "basic"
2240
+ ]
2241
+ },
2242
+ "tagVariant": {
2243
+ "enum": [
2244
+ "filled",
2245
+ "outlined"
2246
+ ]
2247
+ },
2248
+ "tagButtonColor": {
2249
+ "enum": [
2250
+ "primary",
2251
+ "accent",
2252
+ "warn",
2253
+ "basic"
2254
+ ]
2255
+ },
2256
+ "actionsButtonColor": {
2257
+ "enum": [
2258
+ "primary",
2259
+ "accent",
2260
+ "warn",
2261
+ "basic"
2262
+ ]
2263
+ },
2264
+ "actionsVariant": {
2265
+ "enum": [
2266
+ "standard",
2267
+ "outlined"
2268
+ ]
2269
+ },
2270
+ "useInlineSearchableSelectVariant": {
2271
+ "type": "boolean"
2272
+ },
2273
+ "useInlineRangeVariant": {
2274
+ "type": "boolean"
2275
+ },
2276
+ "useInlineDateVariant": {
2277
+ "type": "boolean"
2278
+ },
2279
+ "useInlineDateRangeVariant": {
2280
+ "type": "boolean"
2281
+ },
2282
+ "useInlineTimeVariant": {
2283
+ "type": "boolean"
2284
+ },
2285
+ "useInlineTimeRangeVariant": {
2286
+ "type": "boolean"
2287
+ },
2288
+ "useInlineTreeSelectVariant": {
2289
+ "type": "boolean"
2290
+ },
2291
+ "overlayVariant": {
2292
+ "enum": [
2293
+ "card",
2294
+ "frosted"
2295
+ ]
2296
+ },
2297
+ "overlayBackdrop": {
2298
+ "type": "boolean"
2299
+ },
2300
+ "advancedOpenMode": {
2301
+ "enum": [
2302
+ "modal",
2303
+ "drawer"
2304
+ ]
2305
+ },
2306
+ "advancedClearButtonsEnabled": {
2307
+ "type": "boolean"
2308
+ }
2309
+ }
2310
+ },
2311
+ "effects": [
2312
+ {
2313
+ "kind": "merge-object",
2314
+ "path": ""
2315
+ }
2316
+ ],
2317
+ "destructive": false,
2318
+ "requiresConfirmation": false,
2319
+ "validators": [
2320
+ "filter-fields-exist",
2321
+ "editor-round-trip-preserve"
2322
+ ],
2323
+ "affectedPaths": [
2324
+ "alwaysVisibleFields",
2325
+ "selectedFieldIds",
2326
+ "allowSaveTags",
2327
+ "changeDebounceMs",
2328
+ "placeBooleansInActions",
2329
+ "showToggleLabels",
2330
+ "alwaysMinWidth",
2331
+ "alwaysColsMd",
2332
+ "alwaysColsLg",
2333
+ "confirmTagDelete",
2334
+ "tagColor",
2335
+ "tagVariant",
2336
+ "tagButtonColor",
2337
+ "actionsButtonColor",
2338
+ "actionsVariant",
2339
+ "useInlineSearchableSelectVariant",
2340
+ "useInlineRangeVariant",
2341
+ "useInlineDateVariant",
2342
+ "useInlineDateRangeVariant",
2343
+ "useInlineTimeVariant",
2344
+ "useInlineTimeRangeVariant",
2345
+ "useInlineTreeSelectVariant",
2346
+ "overlayVariant",
2347
+ "overlayBackdrop",
2348
+ "advancedOpenMode",
2349
+ "advancedClearButtonsEnabled"
2350
+ ],
2351
+ "submissionImpact": "config-only",
2352
+ "preconditions": [
2353
+ "config-initialized"
2354
+ ]
2355
+ }
2356
+ ],
2357
+ "validators": [
2358
+ {
2359
+ "validatorId": "filter-fields-exist",
2360
+ "level": "error",
2361
+ "code": "FILTER_FIELDS_EXIST",
2362
+ "description": "Every alwaysVisibleFields and selectedFieldIds entry must exist in the governed filter request metadata or schema."
2363
+ },
2364
+ {
2365
+ "validatorId": "editor-round-trip-preserve",
2366
+ "level": "error",
2367
+ "code": "FILTER_EDITOR_ROUND_TRIP_PRESERVE",
2368
+ "description": "Apply, save, reset and reopen must preserve unrelated host inputs while projecting only FilterConfig-backed settings."
2369
+ }
2370
+ ],
2371
+ "roundTripRequirements": [
2372
+ "Apply and save must preserve resource, metadata, identity and unknown host inputs.",
2373
+ "The controlled value input must never be copied into the persisted authoring result.",
2374
+ "Reset must restore the settings captured when the editor opened without changing the saved widget definition.",
2375
+ "Reopen must materialize the last saved FilterConfig-backed inputs without TableConfig paths.",
2376
+ "advancedOpenMode must persist only the canonical values 'modal' or 'drawer'."
2377
+ ],
2378
+ "examples": [
2379
+ {
2380
+ "id": "configure-standalone-filter-fields",
2381
+ "request": "Keep employeeName and employeeStatus visible and add department to this standalone filter.",
2382
+ "operationId": "filter.settings.configure",
2383
+ "params": {
2384
+ "alwaysVisibleFields": [
2385
+ "employeeName",
2386
+ "employeeStatus"
2387
+ ],
2388
+ "selectedFieldIds": [
2389
+ "department"
2390
+ ]
2391
+ },
2392
+ "isPositive": true
2393
+ },
2394
+ {
2395
+ "id": "configure-standalone-filter-presentation",
2396
+ "request": "Open this standalone filter in a drawer and use compact date controls.",
2397
+ "operationId": "filter.settings.configure",
2398
+ "params": {
2399
+ "advancedOpenMode": "drawer",
2400
+ "useInlineDateVariant": true,
2401
+ "changeDebounceMs": 450
2402
+ },
2403
+ "isPositive": true
2404
+ },
2405
+ {
2406
+ "id": "reject-runtime-value-authoring",
2407
+ "request": "Persist the current filter value as authoring configuration.",
2408
+ "operationId": "filter.settings.configure",
2409
+ "params": {
2410
+ "value": {
2411
+ "employeeStatus": "active"
2412
+ }
2413
+ },
2414
+ "isPositive": false
2415
+ },
2416
+ {
2417
+ "id": "reject-host-metadata-override-authoring",
2418
+ "request": "Persist a host metadata override for employeeStatus.",
2419
+ "operationId": "filter.settings.configure",
2420
+ "params": {
2421
+ "alwaysVisibleFieldMetadataOverrides": {
2422
+ "employeeStatus": {
2423
+ "label": "Status"
2424
+ }
2425
+ }
2426
+ },
2427
+ "isPositive": false
2428
+ },
2429
+ {
2430
+ "id": "reject-table-filter-dsl",
2431
+ "request": "Enable the table query builder on this standalone filter.",
2432
+ "operationId": "filter.settings.configure",
2433
+ "params": {
2434
+ "queryBuilder": true
2435
+ },
2436
+ "isPositive": false
2437
+ }
2438
+ ]
2439
+ },
1812
2440
  "chunks": [
1813
2441
  {
1814
2442
  "chunkIndex": 0,
@@ -1849,6 +2477,86 @@
1849
2477
  "sourceKind": "component_definition",
1850
2478
  "sourceId": "praxis-filter",
1851
2479
  "corpusVersion": "1.0.0"
2480
+ },
2481
+ {
2482
+ "chunkIndex": 4,
2483
+ "chunkKind": "authoring_manifest",
2484
+ "content": "{\"operationId\":\"filter.settings.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configure standalone filter settings Merges a partial, runtime-backed FilterConfig patch while preserving host-owned inputs and excluding the controlled value DTO. Effects: merge-object. Keep employeeName and employeeStatus visible and add department to this standalone filter. Open this standalone filter in a drawer and use compact date controls. Persist the current filter value as authoring configuration. Persist a host metadata override for employeeStatus. Enable the table query builder on this standalone filter.\",\"scope\":\"global\",\"target\":{\"kind\":\"filterSettings\",\"resolver\":\"filter-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"alwaysVisibleFields\",\"selectedFieldIds\",\"allowSaveTags\",\"changeDebounceMs\",\"placeBooleansInActions\",\"showToggleLabels\",\"alwaysMinWidth\",\"alwaysColsMd\",\"alwaysColsLg\",\"confirmTagDelete\",\"tagColor\",\"tagVariant\",\"tagButtonColor\",\"actionsButtonColor\",\"actionsVariant\",\"useInlineSearchableSelectVariant\",\"useInlineRangeVariant\",\"useInlineDateVariant\",\"useInlineDateRangeVariant\",\"useInlineTimeVariant\",\"useInlineTimeRangeVariant\",\"useInlineTreeSelectVariant\",\"overlayVariant\",\"overlayBackdrop\",\"advancedOpenMode\",\"advancedClearButtonsEnabled\"],\"semanticTerms\":[\"alwaysVisibleFields\",\"selectedFieldIds\",\"allowSaveTags\",\"changeDebounceMs\",\"placeBooleansInActions\",\"showToggleLabels\",\"alwaysMinWidth\",\"alwaysColsMd\",\"alwaysColsLg\",\"confirmTagDelete\",\"tagColor\",\"tagVariant\",\"tagButtonColor\",\"actionsButtonColor\",\"actionsVariant\",\"useInlineSearchableSelectVariant\",\"useInlineRangeVariant\",\"useInlineDateVariant\",\"useInlineDateRangeVariant\",\"useInlineTimeVariant\",\"useInlineTimeRangeVariant\",\"useInlineTreeSelectVariant\",\"overlayVariant\",\"overlayBackdrop\",\"advancedOpenMode\",\"advancedClearButtonsEnabled\",\"primary\",\"accent\",\"warn\",\"basic\",\"filled\",\"outlined\",\"standard\",\"card\",\"frosted\",\"modal\",\"drawer\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"alwaysVisibleFields\",\"selectedFieldIds\",\"allowSaveTags\",\"changeDebounceMs\",\"placeBooleansInActions\",\"showToggleLabels\",\"alwaysMinWidth\",\"alwaysColsMd\",\"alwaysColsLg\",\"confirmTagDelete\",\"tagColor\",\"tagVariant\",\"tagButtonColor\",\"actionsButtonColor\",\"actionsVariant\",\"useInlineSearchableSelectVariant\",\"useInlineRangeVariant\",\"useInlineDateVariant\",\"useInlineDateRangeVariant\",\"useInlineTimeVariant\",\"useInlineTimeRangeVariant\",\"useInlineTreeSelectVariant\",\"overlayVariant\",\"overlayBackdrop\",\"advancedOpenMode\",\"advancedClearButtonsEnabled\"],\"validators\":[{\"validatorId\":\"filter-fields-exist\",\"level\":\"error\",\"code\":\"FILTER_FIELDS_EXIST\",\"description\":\"Every alwaysVisibleFields and selectedFieldIds entry must exist in the governed filter request metadata or schema.\"},{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"FILTER_EDITOR_ROUND_TRIP_PRESERVE\",\"description\":\"Apply, save, reset and reopen must preserve unrelated host inputs while projecting only FilterConfig-backed settings.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-standalone-filter-fields\",\"request\":\"Keep employeeName and employeeStatus visible and add department to this standalone filter.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"alwaysVisibleFields\":[\"employeeName\",\"employeeStatus\"],\"selectedFieldIds\":[\"department\"]},\"isPositive\":true},{\"id\":\"configure-standalone-filter-presentation\",\"request\":\"Open this standalone filter in a drawer and use compact date controls.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"advancedOpenMode\":\"drawer\",\"useInlineDateVariant\":true,\"changeDebounceMs\":450},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-runtime-value-authoring\",\"request\":\"Persist the current filter value as authoring configuration.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"value\":{\"employeeStatus\":\"active\"}},\"isPositive\":false},{\"id\":\"reject-host-metadata-override-authoring\",\"request\":\"Persist a host metadata override for employeeStatus.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"alwaysVisibleFieldMetadataOverrides\":{\"employeeStatus\":{\"label\":\"Status\"}}},\"isPositive\":false},{\"id\":\"reject-table-filter-dsl\",\"request\":\"Enable the table query builder on this standalone filter.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"queryBuilder\":true},\"isPositive\":false}]}",
2485
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2486
+ "contentHash": "c672a5a281dde591a56133649446d2a835b1d686c3995892f3e15d890475b0bf",
2487
+ "sourceKind": "component_definition",
2488
+ "sourceId": "praxis-filter",
2489
+ "corpusVersion": "1.0.0"
2490
+ },
2491
+ {
2492
+ "chunkIndex": 5,
2493
+ "chunkKind": "authoring_manifest",
2494
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"identity\"}",
2495
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2496
+ "contentHash": "d97c161d4521cc7178c0edde363e296c418d40b465b92f63170c14bbb223a28b",
2497
+ "sourceKind": "component_definition",
2498
+ "sourceId": "praxis-filter",
2499
+ "corpusVersion": "1.0.0"
2500
+ },
2501
+ {
2502
+ "chunkIndex": 6,
2503
+ "chunkKind": "authoring_manifest",
2504
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"resourcePath\",\"type\":\"string\",\"description\":\"Canonical resource used to resolve filter metadata.\"},{\"name\":\"apiUrlEntry\",\"type\":\"ApiUrlEntry | null\",\"description\":\"Resolved API entry supplied by detached hosts.\"},{\"name\":\"fieldMetadata\",\"type\":\"FieldMetadata[] | null\",\"description\":\"Optional host-provided filter metadata.\"},{\"name\":\"filterId\",\"type\":\"string\",\"description\":\"Stable filter persistence identity.\"},{\"name\":\"formId\",\"type\":\"string\",\"description\":\"Stable advanced-filter form identity.\"},{\"name\":\"componentInstanceId\",\"type\":\"string\",\"description\":\"Stable hosted widget identity.\"},{\"name\":\"mode\",\"type\":\"'filter'\",\"allowedValues\":[\"filter\"],\"description\":\"Standalone runtime mode.\"},{\"name\":\"notifyIfOutdated\",\"type\":\"'inline' | 'snackbar' | 'both' | 'none'\",\"description\":\"Schema drift notification channel.\"},{\"name\":\"snoozeMs\",\"type\":\"number\",\"description\":\"Schema drift notification snooze duration.\"},{\"name\":\"autoOpenSettingsOnOutdated\",\"type\":\"boolean\",\"description\":\"Opens settings when schema drift is detected.\"},{\"name\":\"enableCustomization\",\"type\":\"boolean\",\"description\":\"Enables runtime customization affordances.\"},{\"name\":\"value\",\"type\":\"Record<string, any>\",\"description\":\"Controlled runtime filter DTO; never persisted by standalone authoring.\"},{\"name\":\"alwaysVisibleFields\",\"type\":\"string[]\",\"description\":\"Ordered fields pinned in the inline filter.\"},{\"name\":\"alwaysVisibleFieldMetadataOverrides\",\"type\":\"Record<string, Record<string, any>>\",\"description\":\"Host-owned metadata overrides preserved by editor round trips but not authored by this manifest.\"},{\"name\":\"selectedFieldIds\",\"type\":\"string[]\",\"description\":\"Ordered additional fields selected for the filter.\"},{\"name\":\"tags\",\"type\":\"FilterTag[]\",\"description\":\"Host-provided filter shortcuts; not authored by this manifest.\"},{\"name\":\"allowSaveTags\",\"type\":\"boolean\",\"description\":\"Allows users to persist filter shortcuts.\"},{\"name\":\"persistenceKey\",\"type\":\"string\",\"description\":\"Host-owned persistence key.\"},{\"name\":\"disablePersistence\",\"type\":\"boolean\",\"description\":\"Disables runtime preference persistence.\"},{\"name\":\"i18n\",\"type\":\"Partial<I18n>\",\"description\":\"Host-provided copy overrides.\"},{\"name\":\"changeDebounceMs\",\"type\":\"number\",\"description\":\"Debounce applied to filter changes.\"},{\"name\":\"showFilterSettings\",\"type\":\"boolean\",\"description\":\"Shows runtime filter settings affordance.\"},{\"name\":\"showAdvancedButton\",\"type\":\"boolean\",\"description\":\"Shows the advanced-filter action.\"},{\"name\":\"showAddButton\",\"type\":\"boolean\",\"description\":\"Shows the field-selection action.\"},{\"name\":\"showClearButton\",\"type\":\"boolean\",\"description\":\"Shows the clear action.\"},{\"name\":\"showSearchButton\",\"type\":\"boolean\",\"description\":\"Shows the explicit request-search action.\"},{\"name\":\"confirmTagDelete\",\"type\":\"boolean\",\"description\":\"Requires confirmation before deleting a shortcut.\"},{\"name\":\"placeBooleansInActions\",\"type\":\"boolean\",\"description\":\"Places boolean controls in the action lane.\"},{\"name\":\"showToggleLabels\",\"type\":\"boolean\",\"description\":\"Shows labels for action-lane toggles.\"},{\"name\":\"useInlineSelectVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact inline select renderer.\"},{\"name\":\"useInlineSearchableSelectVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact searchable-select renderer.\"},{\"name\":\"useInlineMultiSelectVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact multi-select renderer.\"},{\"name\":\"useInlineInputVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact input renderer.\"},{\"name\":\"useInlineToggleVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact toggle renderer.\"},{\"name\":\"useInlineRangeVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact range renderer.\"},{\"name\":\"useInlineDateVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact date renderer.\"},{\"name\":\"useInlineDateRangeVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact date-range renderer.\"},{\"name\":\"useInlineTimeVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact time renderer.\"},{\"name\":\"useInlineTimeRangeVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact time-range renderer.\"},{\"name\":\"useInlineTreeSelectVariant\",\"type\":\"boolean\",\"description\":\"Uses the compact tree-select renderer.\"},{\"name\":\"alwaysMinWidth\",\"type\":\"number\",\"description\":\"Minimum width for pinned fields.\"},{\"name\":\"alwaysColsMd\",\"type\":\"number\",\"description\":\"Pinned-field columns on medium viewports.\"},{\"name\":\"alwaysColsLg\",\"type\":\"number\",\"description\":\"Pinned-field columns on large viewports.\"},{\"name\":\"tagColor\",\"type\":\"'primary' | 'accent' | 'warn' | 'basic'\",\"description\":\"Shortcut color token.\"},{\"name\":\"tagVariant\",\"type\":\"'filled' | 'outlined'\",\"description\":\"Shortcut surface variant.\"},{\"name\":\"tagButtonColor\",\"type\":\"'primary' | 'accent' | 'warn' | 'basic'\",\"description\":\"Shortcut action color token.\"},{\"name\":\"actionsButtonColor\",\"type\":\"'primary' | 'accent' | 'warn' | 'basic'\",\"description\":\"Filter action color token.\"},{\"name\":\"actionsVariant\",\"type\":\"'standard' | 'outlined'\",\"description\":\"Filter action surface variant.\"},{\"name\":\"overlayVariant\",\"type\":\"'card' | 'frosted'\",\"description\":\"Advanced-filter overlay surface.\"},{\"name\":\"overlayBackdrop\",\"type\":\"boolean\",\"description\":\"Controls the advanced-filter backdrop.\"},{\"name\":\"advancedOpenMode\",\"type\":\"'modal' | 'drawer'\",\"allowedValues\":[\"modal\",\"drawer\"],\"description\":\"Canonical advanced-filter container.\"},{\"name\":\"advancedClearButtonsEnabled\",\"type\":\"boolean\",\"description\":\"Enables clear buttons in advanced fields.\"}]}",
2505
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2506
+ "contentHash": "32697c43666b65b78c3de5e97cb865e4502a3b4001db3347c9944e1dac1fb801",
2507
+ "sourceKind": "component_definition",
2508
+ "sourceId": "praxis-filter",
2509
+ "corpusVersion": "1.0.0"
2510
+ },
2511
+ {
2512
+ "chunkIndex": 7,
2513
+ "chunkKind": "authoring_manifest",
2514
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"editableTargets\",\"editableTargets\":[{\"kind\":\"filterSettings\",\"resolver\":\"filter-config\",\"description\":\"The standalone FilterConfig root materialized by PraxisFilterWidgetConfigEditor.\"}]}",
2515
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2516
+ "contentHash": "3ea60be73bdd182627fcd18035085969d61bb1f6277e0409a9684edfec116548",
2517
+ "sourceKind": "component_definition",
2518
+ "sourceId": "praxis-filter",
2519
+ "corpusVersion": "1.0.0"
2520
+ },
2521
+ {
2522
+ "chunkIndex": 8,
2523
+ "chunkKind": "authoring_manifest",
2524
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"filter.settings.configure\",\"title\":\"Configure standalone filter settings\",\"description\":\"Merges a partial, runtime-backed FilterConfig patch while preserving host-owned inputs and excluding the controlled value DTO.\",\"scope\":\"global\",\"targetKind\":\"filterSettings\",\"target\":{\"kind\":\"filterSettings\",\"resolver\":\"filter-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"additionalProperties\":false,\"properties\":{\"alwaysVisibleFields\":{\"type\":\"array\",\"uniqueItems\":true,\"items\":{\"type\":\"string\",\"minLength\":1}},\"selectedFieldIds\":{\"type\":\"array\",\"uniqueItems\":true,\"items\":{\"type\":\"string\",\"minLength\":1}},\"allowSaveTags\":{\"type\":\"boolean\"},\"changeDebounceMs\":{\"type\":\"number\",\"minimum\":100,\"maximum\":1000},\"placeBooleansInActions\":{\"type\":\"boolean\"},\"showToggleLabels\":{\"type\":\"boolean\"},\"alwaysMinWidth\":{\"type\":\"number\",\"minimum\":180,\"maximum\":480},\"alwaysColsMd\":{\"type\":\"number\",\"minimum\":1,\"maximum\":3},\"alwaysColsLg\":{\"type\":\"number\",\"minimum\":1,\"maximum\":4},\"confirmTagDelete\":{\"type\":\"boolean\"},\"tagColor\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"basic\"]},\"tagVariant\":{\"enum\":[\"filled\",\"outlined\"]},\"tagButtonColor\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"basic\"]},\"actionsButtonColor\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"basic\"]},\"actionsVariant\":{\"enum\":[\"standard\",\"outlined\"]},\"useInlineSearchableSelectVariant\":{\"type\":\"boolean\"},\"useInlineRangeVariant\":{\"type\":\"boolean\"},\"useInlineDateVariant\":{\"type\":\"boolean\"},\"useInlineDateRangeVariant\":{\"type\":\"boolean\"},\"useInlineTimeVariant\":{\"type\":\"boolean\"},\"useInlineTimeRangeVariant\":{\"type\":\"boolean\"},\"useInlineTreeSelectVariant\":{\"type\":\"boolean\"},\"overlayVariant\":{\"enum\":[\"card\",\"frosted\"]},\"overlayBackdrop\":{\"type\":\"boolean\"},\"advancedOpenMode\":{\"enum\":[\"modal\",\"drawer\"]},\"advancedClearButtonsEnabled\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"filter-fields-exist\",\"editor-round-trip-preserve\"],\"affectedPaths\":[\"alwaysVisibleFields\",\"selectedFieldIds\",\"allowSaveTags\",\"changeDebounceMs\",\"placeBooleansInActions\",\"showToggleLabels\",\"alwaysMinWidth\",\"alwaysColsMd\",\"alwaysColsLg\",\"confirmTagDelete\",\"tagColor\",\"tagVariant\",\"tagButtonColor\",\"actionsButtonColor\",\"actionsVariant\",\"useInlineSearchableSelectVariant\",\"useInlineRangeVariant\",\"useInlineDateVariant\",\"useInlineDateRangeVariant\",\"useInlineTimeVariant\",\"useInlineTimeRangeVariant\",\"useInlineTreeSelectVariant\",\"overlayVariant\",\"overlayBackdrop\",\"advancedOpenMode\",\"advancedClearButtonsEnabled\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
2525
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2526
+ "contentHash": "fb0979d1e1b6f0c09e347b1255ebba55abd51431c95718dd450da187c2c8a7e7",
2527
+ "sourceKind": "component_definition",
2528
+ "sourceId": "praxis-filter",
2529
+ "corpusVersion": "1.0.0"
2530
+ },
2531
+ {
2532
+ "chunkIndex": 9,
2533
+ "chunkKind": "authoring_manifest",
2534
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"validators\",\"validators\":[{\"validatorId\":\"filter-fields-exist\",\"level\":\"error\",\"code\":\"FILTER_FIELDS_EXIST\",\"description\":\"Every alwaysVisibleFields and selectedFieldIds entry must exist in the governed filter request metadata or schema.\"},{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"FILTER_EDITOR_ROUND_TRIP_PRESERVE\",\"description\":\"Apply, save, reset and reopen must preserve unrelated host inputs while projecting only FilterConfig-backed settings.\"}]}",
2535
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2536
+ "contentHash": "458cc1e93d7fd5e1ec33ae13422d4c86d4d4327761d88afae77fd6d111ada22c",
2537
+ "sourceKind": "component_definition",
2538
+ "sourceId": "praxis-filter",
2539
+ "corpusVersion": "1.0.0"
2540
+ },
2541
+ {
2542
+ "chunkIndex": 10,
2543
+ "chunkKind": "authoring_manifest",
2544
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"roundTripRequirements\",\"roundTripRequirements\":[\"Apply and save must preserve resource, metadata, identity and unknown host inputs.\",\"The controlled value input must never be copied into the persisted authoring result.\",\"Reset must restore the settings captured when the editor opened without changing the saved widget definition.\",\"Reopen must materialize the last saved FilterConfig-backed inputs without TableConfig paths.\",\"advancedOpenMode must persist only the canonical values 'modal' or 'drawer'.\"]}",
2545
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2546
+ "contentHash": "f97e6fa90c7a0cd9760d5a3743ecebf684e63d1ee2198ed4ac973b2ad34fc294",
2547
+ "sourceKind": "component_definition",
2548
+ "sourceId": "praxis-filter",
2549
+ "corpusVersion": "1.0.0"
2550
+ },
2551
+ {
2552
+ "chunkIndex": 11,
2553
+ "chunkKind": "authoring_manifest",
2554
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"FilterConfig\",\"chunkSection\":\"examples\",\"examples\":[{\"id\":\"configure-standalone-filter-fields\",\"request\":\"Keep employeeName and employeeStatus visible and add department to this standalone filter.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"alwaysVisibleFields\":[\"employeeName\",\"employeeStatus\"],\"selectedFieldIds\":[\"department\"]},\"isPositive\":true},{\"id\":\"configure-standalone-filter-presentation\",\"request\":\"Open this standalone filter in a drawer and use compact date controls.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"advancedOpenMode\":\"drawer\",\"useInlineDateVariant\":true,\"changeDebounceMs\":450},\"isPositive\":true},{\"id\":\"reject-runtime-value-authoring\",\"request\":\"Persist the current filter value as authoring configuration.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"value\":{\"employeeStatus\":\"active\"}},\"isPositive\":false},{\"id\":\"reject-host-metadata-override-authoring\",\"request\":\"Persist a host metadata override for employeeStatus.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"alwaysVisibleFieldMetadataOverrides\":{\"employeeStatus\":{\"label\":\"Status\"}}},\"isPositive\":false},{\"id\":\"reject-table-filter-dsl\",\"request\":\"Enable the table query builder on this standalone filter.\",\"operationId\":\"filter.settings.configure\",\"params\":{\"queryBuilder\":true},\"isPositive\":false}]}",
2555
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-filter-authoring-manifest.ts",
2556
+ "contentHash": "d86f2a06ed5544160bd1eb05fa81810d4d33f23e385c90b09001cdbf43e87d9a",
2557
+ "sourceKind": "component_definition",
2558
+ "sourceId": "praxis-filter",
2559
+ "corpusVersion": "1.0.0"
1852
2560
  }
1853
2561
  ]
1854
2562
  },
@@ -41502,9 +41502,11 @@ class PraxisFilterWidgetConfigEditor {
41502
41502
  buildValue(rawSettings) {
41503
41503
  const settings = this.normalizeSettings(rawSettings ?? this.settings);
41504
41504
  const inputs = this.currentInputs ?? {};
41505
+ const persistedInputs = { ...inputs };
41506
+ delete persistedInputs.value;
41505
41507
  return {
41506
41508
  inputs: {
41507
- ...inputs,
41509
+ ...persistedInputs,
41508
41510
  ...this.projectSettingsToInputs(settings),
41509
41511
  filterId: inputs.filterId ?? this.widgetKey,
41510
41512
  formId: inputs.formId ?? inputs.filterId ?? this.widgetKey,
@@ -41652,6 +41654,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41652
41654
  args: ['filterSettings']
41653
41655
  }] } });
41654
41656
 
41657
+ const PRAXIS_FILTER_PORTS = [
41658
+ {
41659
+ id: 'value',
41660
+ label: 'Filter Value',
41661
+ direction: 'input',
41662
+ semanticKind: 'value',
41663
+ schema: {
41664
+ id: 'Record<string, any>',
41665
+ kind: 'ts-type',
41666
+ ref: 'Record<string, any>',
41667
+ },
41668
+ description: 'Controlled filter DTO applied by the host.',
41669
+ exposure: { public: true, group: 'data' },
41670
+ },
41671
+ {
41672
+ id: 'change',
41673
+ label: 'Filter Change',
41674
+ direction: 'output',
41675
+ semanticKind: 'event',
41676
+ schema: {
41677
+ id: 'Record<string, any>',
41678
+ kind: 'ts-type',
41679
+ ref: 'Record<string, any>',
41680
+ },
41681
+ cardinality: 'stream',
41682
+ description: 'Filter DTO emitted after a local value change.',
41683
+ exposure: { public: true, group: 'events' },
41684
+ },
41685
+ {
41686
+ id: 'requestSearch',
41687
+ label: 'Request Search',
41688
+ direction: 'output',
41689
+ semanticKind: 'event',
41690
+ schema: {
41691
+ id: 'Record<string, any>',
41692
+ kind: 'ts-type',
41693
+ ref: 'Record<string, any>',
41694
+ },
41695
+ cardinality: 'stream',
41696
+ description: 'Canonical search request carrying the current filter DTO.',
41697
+ exposure: { public: true, group: 'events' },
41698
+ },
41699
+ {
41700
+ id: 'clear',
41701
+ label: 'Clear Filter',
41702
+ direction: 'output',
41703
+ semanticKind: 'event',
41704
+ schema: {
41705
+ id: 'void',
41706
+ kind: 'ts-type',
41707
+ ref: 'void',
41708
+ },
41709
+ cardinality: 'stream',
41710
+ description: 'Event emitted after the current filter DTO is cleared.',
41711
+ exposure: { public: true, group: 'events' },
41712
+ },
41713
+ ];
41655
41714
  const PRAXIS_FILTER_COMPONENT_METADATA = {
41656
41715
  id: 'praxis-filter',
41657
41716
  componentType: 'praxis-filter',
@@ -41866,6 +41925,12 @@ const PRAXIS_FILTER_COMPONENT_METADATA = {
41866
41925
  component: PraxisFilterWidgetConfigEditor,
41867
41926
  title: 'Configurar filtro',
41868
41927
  },
41928
+ authoringManifestRef: {
41929
+ componentId: 'praxis-filter',
41930
+ version: '1.0.0',
41931
+ source: 'PRAXIS_FILTER_AUTHORING_MANIFEST',
41932
+ },
41933
+ ports: PRAXIS_FILTER_PORTS,
41869
41934
  };
41870
41935
  function providePraxisFilterMetadata() {
41871
41936
  return {
@@ -45183,7 +45248,7 @@ class PraxisTable {
45183
45248
  if (this.aiAdapter || this.aiAdapterLoadStarted)
45184
45249
  return;
45185
45250
  this.aiAdapterLoadStarted = true;
45186
- import('./praxisui-table-table-ai.adapter-Cyn_V95j.mjs')
45251
+ import('./praxisui-table-table-ai.adapter-DIE_SLPO.mjs')
45187
45252
  .then(({ TableAiAdapter }) => {
45188
45253
  if (!this.isAiAssistantEnabled()) {
45189
45254
  this.aiAssistantOpenAfterAdapterLoad = false;
@@ -45929,7 +45994,7 @@ class PraxisTable {
45929
45994
  initializeAiAssistantController() {
45930
45995
  if (!this.aiAdapter || this.aiAssistantController)
45931
45996
  return;
45932
- import('./praxisui-table-table-agentic-authoring-turn-flow-TW5ugHxg.mjs')
45997
+ import('./praxisui-table-table-agentic-authoring-turn-flow-D_tS0o94.mjs')
45933
45998
  .then(({ TableAgenticAuthoringTurnFlow }) => {
45934
45999
  if (this.aiAssistantController || !this.aiAdapter)
45935
46000
  return;
@@ -65710,6 +65775,242 @@ const PRAXIS_TABLE_AUTHORING_MANIFEST = {
65710
65775
  ]
65711
65776
  };
65712
65777
 
65778
+ const filterSettingsSchema = {
65779
+ type: 'object',
65780
+ minProperties: 1,
65781
+ additionalProperties: false,
65782
+ properties: {
65783
+ alwaysVisibleFields: {
65784
+ type: 'array',
65785
+ uniqueItems: true,
65786
+ items: { type: 'string', minLength: 1 },
65787
+ },
65788
+ selectedFieldIds: {
65789
+ type: 'array',
65790
+ uniqueItems: true,
65791
+ items: { type: 'string', minLength: 1 },
65792
+ },
65793
+ allowSaveTags: { type: 'boolean' },
65794
+ changeDebounceMs: { type: 'number', minimum: 100, maximum: 1000 },
65795
+ placeBooleansInActions: { type: 'boolean' },
65796
+ showToggleLabels: { type: 'boolean' },
65797
+ alwaysMinWidth: { type: 'number', minimum: 180, maximum: 480 },
65798
+ alwaysColsMd: { type: 'number', minimum: 1, maximum: 3 },
65799
+ alwaysColsLg: { type: 'number', minimum: 1, maximum: 4 },
65800
+ confirmTagDelete: { type: 'boolean' },
65801
+ tagColor: { enum: ['primary', 'accent', 'warn', 'basic'] },
65802
+ tagVariant: { enum: ['filled', 'outlined'] },
65803
+ tagButtonColor: { enum: ['primary', 'accent', 'warn', 'basic'] },
65804
+ actionsButtonColor: { enum: ['primary', 'accent', 'warn', 'basic'] },
65805
+ actionsVariant: { enum: ['standard', 'outlined'] },
65806
+ useInlineSearchableSelectVariant: { type: 'boolean' },
65807
+ useInlineRangeVariant: { type: 'boolean' },
65808
+ useInlineDateVariant: { type: 'boolean' },
65809
+ useInlineDateRangeVariant: { type: 'boolean' },
65810
+ useInlineTimeVariant: { type: 'boolean' },
65811
+ useInlineTimeRangeVariant: { type: 'boolean' },
65812
+ useInlineTreeSelectVariant: { type: 'boolean' },
65813
+ overlayVariant: { enum: ['card', 'frosted'] },
65814
+ overlayBackdrop: { type: 'boolean' },
65815
+ advancedOpenMode: { enum: ['modal', 'drawer'] },
65816
+ advancedClearButtonsEnabled: { type: 'boolean' },
65817
+ },
65818
+ };
65819
+ const FILTER_SETTINGS_PATHS = [
65820
+ 'alwaysVisibleFields',
65821
+ 'selectedFieldIds',
65822
+ 'allowSaveTags',
65823
+ 'changeDebounceMs',
65824
+ 'placeBooleansInActions',
65825
+ 'showToggleLabels',
65826
+ 'alwaysMinWidth',
65827
+ 'alwaysColsMd',
65828
+ 'alwaysColsLg',
65829
+ 'confirmTagDelete',
65830
+ 'tagColor',
65831
+ 'tagVariant',
65832
+ 'tagButtonColor',
65833
+ 'actionsButtonColor',
65834
+ 'actionsVariant',
65835
+ 'useInlineSearchableSelectVariant',
65836
+ 'useInlineRangeVariant',
65837
+ 'useInlineDateVariant',
65838
+ 'useInlineDateRangeVariant',
65839
+ 'useInlineTimeVariant',
65840
+ 'useInlineTimeRangeVariant',
65841
+ 'useInlineTreeSelectVariant',
65842
+ 'overlayVariant',
65843
+ 'overlayBackdrop',
65844
+ 'advancedOpenMode',
65845
+ 'advancedClearButtonsEnabled',
65846
+ ];
65847
+ /**
65848
+ * Governed authoring contract for the standalone Praxis Filter widget.
65849
+ *
65850
+ * The document is the existing FilterConfig itself. TableConfig and
65851
+ * behavior.filtering.advancedFilters remain owned by the praxis-table manifest.
65852
+ */
65853
+ const PRAXIS_FILTER_AUTHORING_MANIFEST = {
65854
+ schemaVersion: '1.0.0',
65855
+ componentId: 'praxis-filter',
65856
+ ownerPackage: '@praxisui/table',
65857
+ configSchemaId: 'FilterConfig',
65858
+ manifestVersion: '1.0.0',
65859
+ runtimeInputs: [
65860
+ { name: 'resourcePath', type: 'string', description: 'Canonical resource used to resolve filter metadata.' },
65861
+ { name: 'apiUrlEntry', type: 'ApiUrlEntry | null', description: 'Resolved API entry supplied by detached hosts.' },
65862
+ { name: 'fieldMetadata', type: 'FieldMetadata[] | null', description: 'Optional host-provided filter metadata.' },
65863
+ { name: 'filterId', type: 'string', description: 'Stable filter persistence identity.' },
65864
+ { name: 'formId', type: 'string', description: 'Stable advanced-filter form identity.' },
65865
+ { name: 'componentInstanceId', type: 'string', description: 'Stable hosted widget identity.' },
65866
+ { name: 'mode', type: "'filter'", allowedValues: ['filter'], description: 'Standalone runtime mode.' },
65867
+ { name: 'notifyIfOutdated', type: "'inline' | 'snackbar' | 'both' | 'none'", description: 'Schema drift notification channel.' },
65868
+ { name: 'snoozeMs', type: 'number', description: 'Schema drift notification snooze duration.' },
65869
+ { name: 'autoOpenSettingsOnOutdated', type: 'boolean', description: 'Opens settings when schema drift is detected.' },
65870
+ { name: 'enableCustomization', type: 'boolean', description: 'Enables runtime customization affordances.' },
65871
+ { name: 'value', type: 'Record<string, any>', description: 'Controlled runtime filter DTO; never persisted by standalone authoring.' },
65872
+ { name: 'alwaysVisibleFields', type: 'string[]', description: 'Ordered fields pinned in the inline filter.' },
65873
+ { name: 'alwaysVisibleFieldMetadataOverrides', type: 'Record<string, Record<string, any>>', description: 'Host-owned metadata overrides preserved by editor round trips but not authored by this manifest.' },
65874
+ { name: 'selectedFieldIds', type: 'string[]', description: 'Ordered additional fields selected for the filter.' },
65875
+ { name: 'tags', type: 'FilterTag[]', description: 'Host-provided filter shortcuts; not authored by this manifest.' },
65876
+ { name: 'allowSaveTags', type: 'boolean', description: 'Allows users to persist filter shortcuts.' },
65877
+ { name: 'persistenceKey', type: 'string', description: 'Host-owned persistence key.' },
65878
+ { name: 'disablePersistence', type: 'boolean', description: 'Disables runtime preference persistence.' },
65879
+ { name: 'i18n', type: 'Partial<I18n>', description: 'Host-provided copy overrides.' },
65880
+ { name: 'changeDebounceMs', type: 'number', description: 'Debounce applied to filter changes.' },
65881
+ { name: 'showFilterSettings', type: 'boolean', description: 'Shows runtime filter settings affordance.' },
65882
+ { name: 'showAdvancedButton', type: 'boolean', description: 'Shows the advanced-filter action.' },
65883
+ { name: 'showAddButton', type: 'boolean', description: 'Shows the field-selection action.' },
65884
+ { name: 'showClearButton', type: 'boolean', description: 'Shows the clear action.' },
65885
+ { name: 'showSearchButton', type: 'boolean', description: 'Shows the explicit request-search action.' },
65886
+ { name: 'confirmTagDelete', type: 'boolean', description: 'Requires confirmation before deleting a shortcut.' },
65887
+ { name: 'placeBooleansInActions', type: 'boolean', description: 'Places boolean controls in the action lane.' },
65888
+ { name: 'showToggleLabels', type: 'boolean', description: 'Shows labels for action-lane toggles.' },
65889
+ { name: 'useInlineSelectVariant', type: 'boolean', description: 'Uses the compact inline select renderer.' },
65890
+ { name: 'useInlineSearchableSelectVariant', type: 'boolean', description: 'Uses the compact searchable-select renderer.' },
65891
+ { name: 'useInlineMultiSelectVariant', type: 'boolean', description: 'Uses the compact multi-select renderer.' },
65892
+ { name: 'useInlineInputVariant', type: 'boolean', description: 'Uses the compact input renderer.' },
65893
+ { name: 'useInlineToggleVariant', type: 'boolean', description: 'Uses the compact toggle renderer.' },
65894
+ { name: 'useInlineRangeVariant', type: 'boolean', description: 'Uses the compact range renderer.' },
65895
+ { name: 'useInlineDateVariant', type: 'boolean', description: 'Uses the compact date renderer.' },
65896
+ { name: 'useInlineDateRangeVariant', type: 'boolean', description: 'Uses the compact date-range renderer.' },
65897
+ { name: 'useInlineTimeVariant', type: 'boolean', description: 'Uses the compact time renderer.' },
65898
+ { name: 'useInlineTimeRangeVariant', type: 'boolean', description: 'Uses the compact time-range renderer.' },
65899
+ { name: 'useInlineTreeSelectVariant', type: 'boolean', description: 'Uses the compact tree-select renderer.' },
65900
+ { name: 'alwaysMinWidth', type: 'number', description: 'Minimum width for pinned fields.' },
65901
+ { name: 'alwaysColsMd', type: 'number', description: 'Pinned-field columns on medium viewports.' },
65902
+ { name: 'alwaysColsLg', type: 'number', description: 'Pinned-field columns on large viewports.' },
65903
+ { name: 'tagColor', type: "'primary' | 'accent' | 'warn' | 'basic'", description: 'Shortcut color token.' },
65904
+ { name: 'tagVariant', type: "'filled' | 'outlined'", description: 'Shortcut surface variant.' },
65905
+ { name: 'tagButtonColor', type: "'primary' | 'accent' | 'warn' | 'basic'", description: 'Shortcut action color token.' },
65906
+ { name: 'actionsButtonColor', type: "'primary' | 'accent' | 'warn' | 'basic'", description: 'Filter action color token.' },
65907
+ { name: 'actionsVariant', type: "'standard' | 'outlined'", description: 'Filter action surface variant.' },
65908
+ { name: 'overlayVariant', type: "'card' | 'frosted'", description: 'Advanced-filter overlay surface.' },
65909
+ { name: 'overlayBackdrop', type: 'boolean', description: 'Controls the advanced-filter backdrop.' },
65910
+ { name: 'advancedOpenMode', type: "'modal' | 'drawer'", allowedValues: ['modal', 'drawer'], description: 'Canonical advanced-filter container.' },
65911
+ { name: 'advancedClearButtonsEnabled', type: 'boolean', description: 'Enables clear buttons in advanced fields.' },
65912
+ ],
65913
+ editableTargets: [
65914
+ {
65915
+ kind: 'filterSettings',
65916
+ resolver: 'filter-config',
65917
+ description: 'The standalone FilterConfig root materialized by PraxisFilterWidgetConfigEditor.',
65918
+ },
65919
+ ],
65920
+ operations: [
65921
+ {
65922
+ operationId: 'filter.settings.configure',
65923
+ title: 'Configure standalone filter settings',
65924
+ description: 'Merges a partial, runtime-backed FilterConfig patch while preserving host-owned inputs and excluding the controlled value DTO.',
65925
+ scope: 'global',
65926
+ targetKind: 'filterSettings',
65927
+ target: {
65928
+ kind: 'filterSettings',
65929
+ resolver: 'filter-config',
65930
+ ambiguityPolicy: 'fail',
65931
+ required: false,
65932
+ },
65933
+ inputSchema: filterSettingsSchema,
65934
+ effects: [{ kind: 'merge-object', path: '' }],
65935
+ destructive: false,
65936
+ requiresConfirmation: false,
65937
+ validators: ['filter-fields-exist', 'editor-round-trip-preserve'],
65938
+ affectedPaths: FILTER_SETTINGS_PATHS,
65939
+ submissionImpact: 'config-only',
65940
+ preconditions: ['config-initialized'],
65941
+ },
65942
+ ],
65943
+ validators: [
65944
+ {
65945
+ validatorId: 'filter-fields-exist',
65946
+ level: 'error',
65947
+ code: 'FILTER_FIELDS_EXIST',
65948
+ description: 'Every alwaysVisibleFields and selectedFieldIds entry must exist in the governed filter request metadata or schema.',
65949
+ },
65950
+ {
65951
+ validatorId: 'editor-round-trip-preserve',
65952
+ level: 'error',
65953
+ code: 'FILTER_EDITOR_ROUND_TRIP_PRESERVE',
65954
+ description: 'Apply, save, reset and reopen must preserve unrelated host inputs while projecting only FilterConfig-backed settings.',
65955
+ },
65956
+ ],
65957
+ roundTripRequirements: [
65958
+ 'Apply and save must preserve resource, metadata, identity and unknown host inputs.',
65959
+ 'The controlled value input must never be copied into the persisted authoring result.',
65960
+ 'Reset must restore the settings captured when the editor opened without changing the saved widget definition.',
65961
+ 'Reopen must materialize the last saved FilterConfig-backed inputs without TableConfig paths.',
65962
+ "advancedOpenMode must persist only the canonical values 'modal' or 'drawer'.",
65963
+ ],
65964
+ examples: [
65965
+ {
65966
+ id: 'configure-standalone-filter-fields',
65967
+ request: 'Keep employeeName and employeeStatus visible and add department to this standalone filter.',
65968
+ operationId: 'filter.settings.configure',
65969
+ params: {
65970
+ alwaysVisibleFields: ['employeeName', 'employeeStatus'],
65971
+ selectedFieldIds: ['department'],
65972
+ },
65973
+ isPositive: true,
65974
+ },
65975
+ {
65976
+ id: 'configure-standalone-filter-presentation',
65977
+ request: 'Open this standalone filter in a drawer and use compact date controls.',
65978
+ operationId: 'filter.settings.configure',
65979
+ params: {
65980
+ advancedOpenMode: 'drawer',
65981
+ useInlineDateVariant: true,
65982
+ changeDebounceMs: 450,
65983
+ },
65984
+ isPositive: true,
65985
+ },
65986
+ {
65987
+ id: 'reject-runtime-value-authoring',
65988
+ request: 'Persist the current filter value as authoring configuration.',
65989
+ operationId: 'filter.settings.configure',
65990
+ params: { value: { employeeStatus: 'active' } },
65991
+ isPositive: false,
65992
+ },
65993
+ {
65994
+ id: 'reject-host-metadata-override-authoring',
65995
+ request: 'Persist a host metadata override for employeeStatus.',
65996
+ operationId: 'filter.settings.configure',
65997
+ params: {
65998
+ alwaysVisibleFieldMetadataOverrides: {
65999
+ employeeStatus: { label: 'Status' },
66000
+ },
66001
+ },
66002
+ isPositive: false,
66003
+ },
66004
+ {
66005
+ id: 'reject-table-filter-dsl',
66006
+ request: 'Enable the table query builder on this standalone filter.',
66007
+ operationId: 'filter.settings.configure',
66008
+ params: { queryBuilder: true },
66009
+ isPositive: false,
66010
+ },
66011
+ ],
66012
+ };
66013
+
65713
66014
  class PraxisTableInlineAuthoringEditorComponent {
65714
66015
  i18n;
65715
66016
  config = { columns: [] };
@@ -71036,4 +71337,4 @@ function isSupportedJsonLogicComputedOperator(operator) {
71036
71337
  * Generated bundle index. Do not edit.
71037
71338
  */
71038
71339
 
71039
- export { compileTableComponentEditPlans as $, ANALYTICS_TABLE_ROW_KEY_FIELD as A, BOOLEAN_PRESETS as B, CURRENCY_PRESETS as C, DATE_PRESETS as D, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS as E, FORMULA_TEMPLATES as F, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA as G, TABLE_COMPONENT_EDIT_PLAN_KIND as H, TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS as I, JsonConfigEditorComponent as J, TABLE_COMPONENT_EDIT_PLAN_VERSION as K, TASK_PRESETS as L, MessagesLocalizationEditorComponent as M, NUMBER_PRESETS as N, TableDefaultsProvider as O, PERCENTAGE_PRESETS as P, TableRulesEditorComponent as Q, ToolbarActionsEditorComponent as R, STRING_PRESETS as S, TABLE_AI_CAPABILITIES as T, VisualFormulaBuilderComponent as U, ValueMappingEditorComponent as V, analyticsComparisonMetricField as W, buildTableApplyPlan as X, coerceTableComponentEditPlan as Y, coerceTableComponentEditPlans as Z, compileTableComponentEditPlan as _, AnalyticsTableConfigAdapterService as a, createTableAuthoringDocument as a0, getActionId as a1, getEnum as a2, getTableCapabilities as a3, getTableComponentEditPlanCapabilities as a4, isTableRendererSupportedByRichContentP0 as a5, mapTableRendererToRichContentP0 as a6, normalizeTableAuthoringDocument as a7, parseLegacyOrTableDocument as a8, providePraxisFilterMetadata as a9, providePraxisTableMetadata as aa, providePraxisTableToolbarAppearance as ab, serializeTableAuthoringDocument as ac, setTableActionGlobalActionRef as ad, toCanonicalTableConfig as ae, validateTableAuthoringDocument as af, AnalyticsTableContractService as b, AnalyticsTableStatsApiService as c, BehaviorConfigEditorComponent as d, ColumnsConfigEditorComponent as e, DataFormatterComponent as f, DataFormattingService as g, FilterConfigService as h, FilterSettingsComponent as i, FormulaGeneratorService as j, PRAXIS_FILTER_COMPONENT_METADATA as k, PRAXIS_TABLE_AUTHORING_MANIFEST as l, PRAXIS_TABLE_COMPONENT_METADATA as m, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS as n, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE as o, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS as p, PraxisFilter as q, PraxisFilterWidgetConfigEditor as r, PraxisTable as s, PraxisTableConfigEditor as t, PraxisTableInlineAuthoringEditorComponent as u, PraxisTableToolbar as v, PraxisTableWidgetConfigEditor as w, TABLE_COMPONENT_AI_CAPABILITIES as x, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS as y, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND as z };
71340
+ export { compileTableComponentEditPlan as $, ANALYTICS_TABLE_ROW_KEY_FIELD as A, BOOLEAN_PRESETS as B, CURRENCY_PRESETS as C, DATE_PRESETS as D, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND as E, FORMULA_TEMPLATES as F, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS as G, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA as H, TABLE_COMPONENT_EDIT_PLAN_KIND as I, JsonConfigEditorComponent as J, TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS as K, TABLE_COMPONENT_EDIT_PLAN_VERSION as L, MessagesLocalizationEditorComponent as M, NUMBER_PRESETS as N, TASK_PRESETS as O, PERCENTAGE_PRESETS as P, TableDefaultsProvider as Q, TableRulesEditorComponent as R, STRING_PRESETS as S, TABLE_AI_CAPABILITIES as T, ToolbarActionsEditorComponent as U, ValueMappingEditorComponent as V, VisualFormulaBuilderComponent as W, analyticsComparisonMetricField as X, buildTableApplyPlan as Y, coerceTableComponentEditPlan as Z, coerceTableComponentEditPlans as _, AnalyticsTableConfigAdapterService as a, compileTableComponentEditPlans as a0, createTableAuthoringDocument as a1, getActionId as a2, getEnum as a3, getTableCapabilities as a4, getTableComponentEditPlanCapabilities as a5, isTableRendererSupportedByRichContentP0 as a6, mapTableRendererToRichContentP0 as a7, normalizeTableAuthoringDocument as a8, parseLegacyOrTableDocument as a9, providePraxisFilterMetadata as aa, providePraxisTableMetadata as ab, providePraxisTableToolbarAppearance as ac, serializeTableAuthoringDocument as ad, setTableActionGlobalActionRef as ae, toCanonicalTableConfig as af, validateTableAuthoringDocument as ag, AnalyticsTableContractService as b, AnalyticsTableStatsApiService as c, BehaviorConfigEditorComponent as d, ColumnsConfigEditorComponent as e, DataFormatterComponent as f, DataFormattingService as g, FilterConfigService as h, FilterSettingsComponent as i, FormulaGeneratorService as j, PRAXIS_FILTER_AUTHORING_MANIFEST as k, PRAXIS_FILTER_COMPONENT_METADATA as l, PRAXIS_TABLE_AUTHORING_MANIFEST as m, PRAXIS_TABLE_COMPONENT_METADATA as n, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS as o, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE as p, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS as q, PraxisFilter as r, PraxisFilterWidgetConfigEditor as s, PraxisTable as t, PraxisTableConfigEditor as u, PraxisTableInlineAuthoringEditorComponent as v, PraxisTableToolbar as w, PraxisTableWidgetConfigEditor as x, TABLE_COMPONENT_AI_CAPABILITIES as y, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS as z };
@@ -1,6 +1,6 @@
1
1
  import { Observable, firstValueFrom } from 'rxjs';
2
2
  import { withAuthoringScopePolicy } from '@praxisui/ai';
3
- import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-CjEzphdr.mjs';
3
+ import { ae as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-C2xZMiFM.mjs';
4
4
 
5
5
  class TableAgenticAuthoringTurnFlow {
6
6
  adapter;
@@ -1,7 +1,7 @@
1
1
  import { firstValueFrom } from 'rxjs';
2
2
  import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
3
3
  import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
4
- import { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-CjEzphdr.mjs';
4
+ import { K as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, m as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, _ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlans, O as TASK_PRESETS, a5 as getTableComponentEditPlanCapabilities, G as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, H as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, L as TABLE_COMPONENT_EDIT_PLAN_VERSION, E as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, I as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-C2xZMiFM.mjs';
5
5
 
6
6
  const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
7
7
  mode: 'expression',
@@ -1 +1 @@
1
- export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-CjEzphdr.mjs';
1
+ export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_TABLE_AUTHORING_MANIFEST, n as PRAXIS_TABLE_COMPONENT_METADATA, o as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, p as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, q as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, r as PraxisFilter, s as PraxisFilterWidgetConfigEditor, t as PraxisTable, u as PraxisTableConfigEditor, v as PraxisTableInlineAuthoringEditorComponent, w as PraxisTableToolbar, x as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, y as TABLE_COMPONENT_AI_CAPABILITIES, z as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, H as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_KIND, L as TABLE_COMPONENT_EDIT_PLAN_VERSION, O as TASK_PRESETS, Q as TableDefaultsProvider, R as TableRulesEditorComponent, U as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, W as VisualFormulaBuilderComponent, X as analyticsComparisonMetricField, Y as buildTableApplyPlan, Z as coerceTableComponentEditPlan, _ as coerceTableComponentEditPlans, $ as compileTableComponentEditPlan, a0 as compileTableComponentEditPlans, a1 as createTableAuthoringDocument, a2 as getActionId, a3 as getEnum, a4 as getTableCapabilities, a5 as getTableComponentEditPlanCapabilities, a6 as isTableRendererSupportedByRichContentP0, a7 as mapTableRendererToRichContentP0, a8 as normalizeTableAuthoringDocument, a9 as parseLegacyOrTableDocument, aa as providePraxisFilterMetadata, ab as providePraxisTableMetadata, ac as providePraxisTableToolbarAppearance, ad as serializeTableAuthoringDocument, af as toCanonicalTableConfig, ag as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-C2xZMiFM.mjs';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "9.0.36",
3
+ "version": "9.0.37",
4
4
  "description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
8
  "@angular/platform-browser": "^21.0.0",
9
- "@praxisui/ai": "^9.0.36",
10
- "@praxisui/core": "^9.0.36",
11
- "@praxisui/dynamic-fields": "^9.0.36",
12
- "@praxisui/dynamic-form": "^9.0.36",
13
- "@praxisui/metadata-editor": "^9.0.36",
14
- "@praxisui/rich-content": "^9.0.36",
15
- "@praxisui/settings-panel": "^9.0.36",
16
- "@praxisui/table-rule-builder": "^9.0.36",
9
+ "@praxisui/ai": "^9.0.37",
10
+ "@praxisui/core": "^9.0.37",
11
+ "@praxisui/dynamic-fields": "^9.0.37",
12
+ "@praxisui/dynamic-form": "^9.0.37",
13
+ "@praxisui/metadata-editor": "^9.0.37",
14
+ "@praxisui/rich-content": "^9.0.37",
15
+ "@praxisui/settings-panel": "^9.0.37",
16
+ "@praxisui/table-rule-builder": "^9.0.37",
17
17
  "@angular/cdk": "^21.0.0",
18
18
  "@angular/forms": "^21.0.0",
19
19
  "@angular/material": "^21.0.0",
20
20
  "@angular/router": "^21.0.0",
21
- "@praxisui/dialog": "^9.0.36",
21
+ "@praxisui/dialog": "^9.0.37",
22
22
  "rxjs": "~7.8.0"
23
23
  },
24
24
  "dependencies": {
@@ -4446,6 +4446,14 @@ declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): u
4446
4446
  */
4447
4447
  declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
4448
4448
 
4449
+ /**
4450
+ * Governed authoring contract for the standalone Praxis Filter widget.
4451
+ *
4452
+ * The document is the existing FilterConfig itself. TableConfig and
4453
+ * behavior.filtering.advancedFilters remain owned by the praxis-table manifest.
4454
+ */
4455
+ declare const PRAXIS_FILTER_AUTHORING_MANIFEST: ComponentAuthoringManifest;
4456
+
4449
4457
  declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
4450
4458
  private readonly i18n;
4451
4459
  config: TableConfig;
@@ -5128,5 +5136,5 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
5128
5136
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
5129
5137
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
5130
5138
 
5131
- export { ANALYTICS_TABLE_ROW_KEY_FIELD, AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisFilter, PraxisFilterWidgetConfigEditor, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
5139
+ export { ANALYTICS_TABLE_ROW_KEY_FIELD, AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_FILTER_AUTHORING_MANIFEST, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisFilter, PraxisFilterWidgetConfigEditor, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
5132
5140
  export type { ActionLike, AnalyticsComparisonMetricValueKind, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableConfigPersistenceStrategy, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };