@cosmicdrift/kumiko-types 0.202.0 → 0.203.0

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/screen.ts +16 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-types",
3
- "version": "0.202.0",
3
+ "version": "0.203.0",
4
4
  "description": "Framework-Type-Definitions für Kumiko — FeatureDefinition, BootCheck-Types und die reinen Engine-Types. Erlaubt Downstream-Konsumenten, gegen die Type-Contracts zu bauen, ohne das ganze Framework-Package zu importieren. Enthaelt keine identitaets-sensitiven Runtime-Werte mehr (Error-Klassen leben seit #1629 in kumiko-framework, Brand-Symbole nutzen Symbol.for) und ist deshalb eine plain dependency, keine peerDependency.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
package/src/screen.ts CHANGED
@@ -323,6 +323,16 @@ export type ProjectionListScreenDefinition = {
323
323
  readonly pageSize?: number;
324
324
  readonly defaultSort?: ListSortSpec;
325
325
  readonly searchable?: boolean;
326
+ /** Derived by buildAppSchema from the query handler's Zod schema (`sort`
327
+ * param present). Same type serves author and wire schema (no separate
328
+ * client-facing screen type exists), so this stays structurally
329
+ * writable — validateProjectionListScreens rejects any hand-authored
330
+ * value at boot (fw#2165). */
331
+ readonly sortable?: boolean;
332
+ /** Derived by buildAppSchema from the query handler's Zod schema (`cursor`
333
+ * or `offset` param present). See `sortable` doc for why this is
334
+ * boot-enforced rather than type-enforced. */
335
+ readonly paginated?: boolean;
326
336
  readonly slots?: ScreenSlots;
327
337
  readonly access?: AccessRule;
328
338
  };
@@ -358,6 +368,12 @@ export type ProjectionDetailScreenDefinition = {
358
368
  readonly listScreenId?: string;
359
369
  readonly slots?: ScreenSlots;
360
370
  readonly access?: AccessRule;
371
+ /** Header action buttons. Reuses `RowAction` — the screen's single
372
+ * displayed record stands in for the "row", so `pick`/`map`, `visible`,
373
+ * `confirm`/`confirmLabel` and `style` keep their meaning unchanged.
374
+ * `rowClick` has no target here (there is no row to click) and is
375
+ * rejected by the boot-validator. */
376
+ readonly actions?: readonly RowAction[];
361
377
  };
362
378
 
363
379
  // --- dashboard ---