|
| 1 | +--- |
| 2 | +'@object-ui/plugin-grid': minor |
| 3 | +'@object-ui/plugin-list': patch |
| 4 | +'@object-ui/types': minor |
| 5 | +--- |
| 6 | + |
| 7 | +An `object-grid` publishes `description` and `emptyState` now that `@objectstack/spec` 17.6.0 |
| 8 | +declares them on its `object-grid` row, and `emptyState.title` / `.message` take an inline |
| 9 | +locale map on both the grid and the list view (objectui#11227). |
| 10 | + |
| 11 | +**`@object-ui/plugin-grid` (feature and fix).** |
| 12 | + |
| 13 | +- `description` and `emptyState` are in the grid's declared inputs, so the designer panel, the |
| 14 | + component manifest and the generated `sdui-intrinsics.d.ts` offer them, and the SDUI parser |
| 15 | + no longer reports an authored `emptyState` as `unknown-prop`. `description` declares both |
| 16 | + arms of the `I18nLabel` union, so a locale map on it is not a `type-mismatch`. |
| 17 | +- `emptyState.title` and `emptyState.message` are resolved against the display locale, as |
| 18 | + `label` and `description` are. Before, a locale map on either reached the empty-state |
| 19 | + component as an object, and the grid failed to render. A map with no usable entry keeps |
| 20 | + that member's default: the table's "No results found" heading, and no message line. |
| 21 | +- `keyboardNavigation`, the row's third 17.6.0 key, is not published. The spec marks it |
| 22 | + `[EXPERIMENTAL — not enforced]`, and nothing in the grid reads it yet. |
| 23 | + |
| 24 | +**`@object-ui/plugin-list` (fix).** A list view's authored `emptyState.title` and |
| 25 | +`emptyState.message` are resolved against the display locale. Before, a locale map on either |
| 26 | +was treated as absent, and the empty state drew the default copy in every locale. A plain |
| 27 | +string is drawn as before. |
| 28 | + |
| 29 | +**`@object-ui/types` (breaking for a reader of the text members, hence `minor`).** |
| 30 | + |
| 31 | +- `ObjectGridSchema.emptyState` is the spec's `EmptyState`, and the Zod twin takes the spec's |
| 32 | + `EmptyStateSchema` by reference. `title` and `message` are `string | I18nLabel`, `icon` stays |
| 33 | + a string, and an unknown member is still refused by name. A locale map on `title` or |
| 34 | + `message` now parses, and a value that is neither a string nor a map is refused at that |
| 35 | + member. |
| 36 | +- `NamedListView.emptyState` is `ListViewSchema['emptyState']`, the same spec type. |
| 37 | +- TypeScript code that reads `emptyState.title` or `.message` as a `string` no longer |
| 38 | + type-checks. Resolve the value first, for example with `resolveI18nLabel` from |
| 39 | + `@objectstack/spec/ui`. |
0 commit comments