@cosmicdrift/kumiko-types 0.224.2 → 0.225.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.
- package/package.json +1 -1
- 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.
|
|
3
|
+
"version": "0.225.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
|
@@ -441,6 +441,12 @@ export type ProjectionListScreenDefinition = {
|
|
|
441
441
|
// rejects them. `relatedList` sections ARE supported — they run their own
|
|
442
442
|
// query against the displayed record's id, independent of the entity gap
|
|
443
443
|
// above (fw#2166).
|
|
444
|
+
export type RecordHeaderSpec = {
|
|
445
|
+
readonly title: string;
|
|
446
|
+
readonly subtitle?: string;
|
|
447
|
+
readonly status?: string;
|
|
448
|
+
};
|
|
449
|
+
|
|
444
450
|
export type ProjectionDetailScreenDefinition = {
|
|
445
451
|
readonly id: string;
|
|
446
452
|
readonly type: "projectionDetail";
|
|
@@ -453,6 +459,12 @@ export type ProjectionDetailScreenDefinition = {
|
|
|
453
459
|
* keinen natürlichen Field-Namespace — fehlt ein Eintrag, gilt die
|
|
454
460
|
* Konvention `<feature>:entity:__projection-detail__:field:<name>`. */
|
|
455
461
|
readonly fieldLabels?: Readonly<Record<string, string>>;
|
|
462
|
+
/** Record header above the layout — title/subtitle/status name columns
|
|
463
|
+
* in the query row (not literals). Rendered only when set. */
|
|
464
|
+
readonly header?: RecordHeaderSpec;
|
|
465
|
+
/** Metric band above the layout — column names in the query row, labeled
|
|
466
|
+
* via `fieldLabels`. Rendered only when set. */
|
|
467
|
+
readonly metrics?: readonly string[];
|
|
456
468
|
/** Parent list screen (kurze id) für eine "Zurück"-Navigation. */
|
|
457
469
|
readonly listScreenId?: string;
|
|
458
470
|
readonly slots?: ScreenSlots;
|
|
@@ -646,6 +658,9 @@ export type EditFieldSpec =
|
|
|
646
658
|
export type EditSectionSpec = EditFieldsSection | EditExtensionSection | EditRelatedListSection;
|
|
647
659
|
|
|
648
660
|
export type EditFieldsSection = {
|
|
661
|
+
/** Kebab-case tab id, used as the `?tab=` value. Required by the
|
|
662
|
+
* boot-validator when the enclosing `EditLayout.mode` is "tabs". */
|
|
663
|
+
readonly id?: string;
|
|
649
664
|
readonly kind?: "fields";
|
|
650
665
|
/** Optional. Ohne Titel rendert die Section nur ihre Felder (keine h3-
|
|
651
666
|
* Überschrift) — für flache Forms (Card-Titel + Felder direkt, ein
|
|
@@ -662,6 +677,9 @@ export type EditFieldsSection = {
|
|
|
662
677
|
};
|
|
663
678
|
|
|
664
679
|
export type EditExtensionSection = {
|
|
680
|
+
/** Kebab-case tab id, used as the `?tab=` value. Required by the
|
|
681
|
+
* boot-validator when the enclosing `EditLayout.mode` is "tabs". */
|
|
682
|
+
readonly id?: string;
|
|
665
683
|
readonly kind: "extension";
|
|
666
684
|
readonly title: string;
|
|
667
685
|
readonly component: PlatformComponent;
|
|
@@ -678,6 +696,9 @@ export type EditExtensionSection = {
|
|
|
678
696
|
// tenant's own fields. Only supported on projectionDetail (fw#2166); the
|
|
679
697
|
// boot-validator rejects it on entityEdit/configEdit/actionForm.
|
|
680
698
|
export type EditRelatedListSection = {
|
|
699
|
+
/** Kebab-case tab id, used as the `?tab=` value. Required by the
|
|
700
|
+
* boot-validator when the enclosing `EditLayout.mode` is "tabs". */
|
|
701
|
+
readonly id?: string;
|
|
681
702
|
readonly kind: "relatedList";
|
|
682
703
|
readonly title: string;
|
|
683
704
|
/** Fully qualified query QN. Same paged envelope as projectionList.query:
|
|
@@ -704,8 +725,11 @@ export type EditLayout = {
|
|
|
704
725
|
readonly width?: FormWidth;
|
|
705
726
|
/** Default "single". "wizard" renders one section per step (with
|
|
706
727
|
* progress + per-step validation) instead of all sections at once —
|
|
707
|
-
* boot-validator requires >= 2 sections, each with a title, when set.
|
|
708
|
-
|
|
728
|
+
* boot-validator requires >= 2 sections, each with a title, when set.
|
|
729
|
+
* "tabs" renders one section per tab (projectionDetail only — the
|
|
730
|
+
* boot-validator rejects it on entityEdit, see the check for the reason);
|
|
731
|
+
* requires >= 2 sections, each with a title and an `id`. */
|
|
732
|
+
readonly mode?: "single" | "wizard" | "tabs";
|
|
709
733
|
/** Persists in-progress wizard state as a resumable draft instead of
|
|
710
734
|
* discarding it on navigation away. */
|
|
711
735
|
readonly draft?: boolean;
|