@cosmicdrift/kumiko-types 0.170.0 → 0.171.1
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/fields.ts +5 -0
- package/src/screen.ts +25 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.171.1",
|
|
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/fields.ts
CHANGED
|
@@ -112,6 +112,11 @@ export type PiiAnnotations = {
|
|
|
112
112
|
* text-Feldern MIT Subject-Annotation erlaubt (Boot-Validator).
|
|
113
113
|
* Siehe docs/plans/datenschutz/blind-index.md (kumiko-framework#818). */
|
|
114
114
|
readonly lookupable?: true;
|
|
115
|
+
/** Foreign key into the `user` entity (authorId, assigneeId, ...) with no
|
|
116
|
+
* annotated content of its own. Triggers no encryption — feeds only the
|
|
117
|
+
* GDPR-hook-coverage boot guard, which otherwise can't see subject data
|
|
118
|
+
* that lives purely in an FK column. */
|
|
119
|
+
readonly subjectRef?: boolean;
|
|
115
120
|
};
|
|
116
121
|
|
|
117
122
|
// --- Retention (DSGVO Art. 5(1)(e) + HGB/AO Aufbewahrungspflichten) ---
|
package/src/screen.ts
CHANGED
|
@@ -212,9 +212,11 @@ export type RowActionNavigate = {
|
|
|
212
212
|
* AUSSCHLIESSLICH aus dem Pfad. Default: "id" wenn der Ziel-Screen
|
|
213
213
|
* ein entityEdit ist. */
|
|
214
214
|
readonly entityId?: string;
|
|
215
|
-
/**
|
|
216
|
-
*
|
|
217
|
-
*
|
|
215
|
+
/** Declarative URL search params extracted from the clicked row.
|
|
216
|
+
* Both actionForm and entityEdit-create targets read `params` as
|
|
217
|
+
* initial values (pre-filling the form). entityEdit-update does
|
|
218
|
+
* not — the existing record's values take precedence.
|
|
219
|
+
* `pick` extracts fields of the same name; `map` renames them. */
|
|
218
220
|
readonly params?: RowFieldExtractor;
|
|
219
221
|
/** Conditional Visibility pro Row. */
|
|
220
222
|
readonly visible?: FieldCondition;
|
|
@@ -513,6 +515,13 @@ export type EditFieldSpec =
|
|
|
513
515
|
readonly readOnly?: FieldCondition;
|
|
514
516
|
readonly required?: FieldCondition;
|
|
515
517
|
readonly renderer?: FieldRenderer;
|
|
518
|
+
/** Prefix icon on the input — symbolic key into the FIELD_ICONS
|
|
519
|
+
* registry (renderer-web), analogous to `ScreenNavSugar.icon`.
|
|
520
|
+
* Unknown key → no icon (clean fallback, no boot-fail). Only takes
|
|
521
|
+
* effect for `type: "text"` and `"number"` — other input kinds
|
|
522
|
+
* (select, combobox, date, …) have no icon slot and silently
|
|
523
|
+
* ignore the key. */
|
|
524
|
+
readonly icon?: string;
|
|
516
525
|
};
|
|
517
526
|
|
|
518
527
|
// A section is either a normal field-grid (default — `kind` omitted keeps
|
|
@@ -529,6 +538,12 @@ export type EditFieldsSection = {
|
|
|
529
538
|
* Überschrift) — für flache Forms (Card-Titel + Felder direkt, ein
|
|
530
539
|
* einzelner Abschnitt) wie bei den meisten shadcn-Form-Mustern. */
|
|
531
540
|
readonly title?: string;
|
|
541
|
+
/** Optional help text under the block heading (i18n key or raw string,
|
|
542
|
+
* like `title`) — makes a form usable without training instead of
|
|
543
|
+
* falling back to custom JSX for help text. Renders through the same
|
|
544
|
+
* `subtitle` slot as `FormProps.subtitle`. Works without `title` too
|
|
545
|
+
* (subtitle-only section). */
|
|
546
|
+
readonly description?: string;
|
|
532
547
|
readonly columns?: number;
|
|
533
548
|
readonly fields: readonly EditFieldSpec[];
|
|
534
549
|
};
|
|
@@ -539,8 +554,15 @@ export type EditExtensionSection = {
|
|
|
539
554
|
readonly component: PlatformComponent;
|
|
540
555
|
};
|
|
541
556
|
|
|
557
|
+
// Max width of the form container (see FormScreenShell in renderer-web).
|
|
558
|
+
export type FormWidth = "sm" | "3xl" | "4xl" | "full";
|
|
559
|
+
|
|
542
560
|
export type EditLayout = {
|
|
543
561
|
readonly sections: readonly EditSectionSpec[];
|
|
562
|
+
/** Default "3xl". "full" for dense multi-column masks (many sections,
|
|
563
|
+
* three-column fields) that would leave dead space on both sides in a
|
|
564
|
+
* 3xl column — see #1676. */
|
|
565
|
+
readonly width?: FormWidth;
|
|
544
566
|
};
|
|
545
567
|
|
|
546
568
|
export type EntityEditScreenDefinition = {
|