@cosmicdrift/kumiko-types 0.237.1 → 0.238.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 +26 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-types",
3
- "version": "0.237.1",
3
+ "version": "0.238.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
@@ -117,6 +117,17 @@ export type ListColumnSpec =
117
117
  * label; without one it is rejected at boot as an unknown field. `field`
118
118
  * is then just a stable column key (pick any unique slug). */
119
119
  readonly label?: string;
120
+ /** Marks this column as a reference lookup instead of a plain value —
121
+ * for projectionList/relatedList columns, which have no
122
+ * `EntityDefinition` to carry a real `reference` field type. Same
123
+ * target convention as `parseRefTarget`: an entity name (same
124
+ * feature) or `feature:entity` (cross-feature). Ignored on
125
+ * `entityList` columns, where the field's own declared type always
126
+ * wins. */
127
+ readonly refEntity?: string;
128
+ /** Row field on the referenced entity shown as the label (default
129
+ * "id"). Only meaningful together with `refEntity`. */
130
+ readonly refLabelField?: string;
120
131
  };
121
132
 
122
133
  // Pagination-Modi für entityList:
@@ -665,6 +676,17 @@ export type EditFieldSpec =
665
676
  * `multiline` routes to a textarea (no icon slot), and other input
666
677
  * kinds (select, combobox, date, …) silently ignore the key. */
667
678
  readonly icon?: FieldIconKey;
679
+ /** Marks this field as a reference lookup instead of a plain value —
680
+ * for projectionDetail fields, which have no `EntityDefinition` to
681
+ * carry a real `reference` field type. Same target convention as
682
+ * `parseRefTarget` (and `ListColumnSpec.refEntity`): an entity name
683
+ * (same feature) or `feature:entity` (cross-feature). Ignored on
684
+ * `entityEdit` fields, where the field's own declared type always
685
+ * wins. */
686
+ readonly refEntity?: string;
687
+ /** Row field on the referenced entity shown as the label (default
688
+ * "id"). Only meaningful together with `refEntity`. */
689
+ readonly refLabelField?: string;
668
690
  };
669
691
 
670
692
  // A section is a normal field-grid (default — `kind` omitted keeps every
@@ -751,8 +773,10 @@ export type FormWidth = "3xl" | "4xl" | "full";
751
773
 
752
774
  export type EditLayout = {
753
775
  readonly sections: readonly EditSectionSpec[];
754
- /** Default "full" (same content width as lists). Override to "sm" /
755
- * "3xl" / "4xl" only when a screen needs a narrower centered column. */
776
+ /** Default "4xl" (a centered column, narrower than list chrome), unless
777
+ * the app overrides it via `createKumikoApp({ screenWidth })`. Override
778
+ * per-screen to "3xl" for a narrower column or "full" to match list
779
+ * chrome. */
756
780
  readonly width?: FormWidth;
757
781
  /** Default "single". "wizard" renders one section per step (with
758
782
  * progress + per-step validation) instead of all sections at once —