@praxisui/table 10.0.0-rc.20 → 10.0.0-rc.22

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
@@ -98,6 +98,12 @@ The host demonstrates this at `/dynamic-page-lab/archetypes/bulk-partial`, using
98
98
  `praxis-dynamic-page.bulk-partial.ui-composition-plan.artifact.json`. The real
99
99
  backend proof creates and removes exclusive payroll-event fixtures.
100
100
 
101
+ ### Analytical drawer discovery
102
+
103
+ The analytical drawer preserves explicit `drawerConfig` and DI-registered layouts. For a remote resource, it queries `/schemas/catalog` for the exact governed `POST {resourcePath}/filter` operation and follows that endpoint's published `schemaLinks.response`. Core `ResourceDiscoveryService` resolves root-relative discovery URLs against the API origin; `API_URL.default` can retain its `/api` prefix for resource requests. No match, multiple matches, a missing response href, or a schema without an explicit drawer layout leaves the remote layout absent. Discovery is cancelled and discarded on resource/context change or destroy; remote layouts are not retained across authorization-context changes.
104
+
105
+ The drawer's existing explicit schema extensions (`x-ui.surfaces.drawer`, `x-ui.drawer`, or `behavior.drawer`) remain layout sources for hosts that publish them. They are not a Metadata surface-catalog contract: `/schemas/surfaces` publishes operation descriptors, never inferred drawer layouts, and a resource path must not be converted into a semantic resource key. The beta `PraxisAnalyticalDrawerComponent.surfaceName` input has been removed: it selected a layout from an unsupported surface-catalog response shape and had no internal consumers. External templates binding that input must remove the binding and supply their explicit layout through `drawerConfig` or the DI registry.
106
+
101
107
  ### Governed synchronous update candidate
102
108
 
103
109
  For a remote resource whose collection capabilities explicitly publish an allowed
@@ -421,7 +427,7 @@ For row-specific corporate indicators, declare `*Expr` properties inside the vis
421
427
 
422
428
  Table-safe micro visualization kinds are `line`, `area`, `column`, `comparison`, `stackedBar`, `radial`, `harveyBall`, `bullet`, `delta`, and `processFlow`. For enterprise authoring, `delta`, `bullet`, `radial`, `harveyBall`, and `stackedBar` are recommended for rapid scanning in compact cells. `line`, `area`, and `column` are conditional on horizontal space; `comparison` is conditional because it increases row height; and `processFlow` is conditional because its steps must remain recognizable. Use an expanded row or related surface when those trade-offs do not directly support the decision. This is guidance rather than a runtime blocker, so existing governed documents remain faithfully rendered. If a row does not provide the minimum series/step data for a visual kind, the renderer keeps an accessible compact fallback with `role="img"` and the configured fallback or aria text.
423
429
 
424
- For `microVisualization` kinds that resolve numeric values (`delta`, `bullet`, `radial`, `harveyBall`, `line`, `area`, `column`, and `comparison`), `ColumnsConfigEditorComponent` provides visual authoring for `visualization.thresholds` (`min`, `max`, `tone`, reordering, removal, and a one-click traffic-light preset `0–39 danger`, `40–69 warning`, `70–100 success`) in both primary column renderers and `conditionalRenderers[]` overrides. In `PraxisPresentationVisualizationConfig`, an explicit fixed `visualization.tone` overrides `thresholds` unless `toneExpr` resolves at runtime; choosing **Automatic** (`tone` omitted) or adding/applying threshold bands clears the default fixed tone so `thresholds` take effect immediately, and the editor warns when both a fixed `tone` and `thresholds` are present. Threshold bands are evaluated in order (`min <= value <= max`, with open-ended `min` or `max` allowed); bands with neither bound or with `min > max` fail renderer validation before Apply. The editor also includes a deterministic numeric sample strip (default `15, 40, 69, 70, 98`) so authors can verify threshold color transitions immediately without depending on generic string sample rows.
430
+ For `microVisualization` kinds that resolve numeric values (`delta`, `bullet`, `radial`, `harveyBall`, `line`, `area`, `column`, and `comparison`), `ColumnsConfigEditorComponent` provides visual authoring for `visualization.thresholds` (`min`, `max`, `tone`, reordering, removal, and a one-click traffic-light preset `0–39 danger`, `40–69 warning`, `70–100 success`) in both primary column renderers and `conditionalRenderers[]` overrides. In `PraxisPresentationVisualizationConfig`, an explicit fixed `visualization.tone` overrides `thresholds` unless `toneExpr` resolves at runtime; choosing **Automatic** (`tone` omitted) or adding/applying threshold bands clears the default fixed tone so `thresholds` take effect immediately, and the editor warns when both a fixed `tone` and `thresholds` are present. Thresholds use the Core condition vocabulary: discrete `equals` matches take priority, then numeric ranges (`min <= value <= max`, with open-ended `min` or `max` allowed) and progressive `value` cutoffs are evaluated in order. Existing `value` and `equals` conditions (including `0`, `false`, and strings) remain valid in primary and conditional renderers and survive tone edits, Apply and reopen; range controls do not convert them. Thresholds without a supported condition or with `min > max` fail renderer validation before Apply. The editor also includes a deterministic numeric sample strip (default `15, 40, 69, 70, 98`) so authors can verify threshold color transitions immediately without depending on generic string sample rows.
425
431
 
426
432
  A `conditionalRenderers[]` rule can materialize the same `microVisualization` contract when its Json Logic condition is true. Keep `surface: 'table-cell'`, the data property required by the selected kind, and `fallbackText`; first-match precedence still applies. Conditional visuals communicate a row state already defined by the canonical condition—they do not encode a new business rule in the table.
427
433
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-10-15T03:52:00.118Z",
3
+ "generatedAt": "2026-10-15T06:07:49.426Z",
4
4
  "packageName": "@praxisui/table",
5
- "packageVersion": "10.0.0-rc.20",
5
+ "packageVersion": "10.0.0-rc.22",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 3,