@cosmicdrift/kumiko-headless 0.38.0 → 0.39.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-headless",
3
- "version": "0.38.0",
3
+ "version": "0.39.0",
4
4
  "description": "Headless UI logic for Kumiko — Dispatcher contract, Form-Controller, View-Model, Nav-Resolver. Plattform- und React-frei; jeder Renderer (renderer, renderer-web, renderer-native, …) komponiert darauf.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -28,7 +28,7 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@cosmicdrift/kumiko-framework": "0.37.0",
31
+ "@cosmicdrift/kumiko-framework": "0.38.0",
32
32
  "zod": "^4.4.3"
33
33
  },
34
34
  "publishConfig": {
@@ -77,6 +77,13 @@ export function computeEditViewModel<
77
77
  fieldDef.type === "text"
78
78
  ? (fieldDef as unknown as { multiline?: boolean | { rows?: number } }).multiline
79
79
  : undefined;
80
+ // Wall-Clock-Hint bei `type: "timestamp"` mit locatedBy — der
81
+ // Renderer emittiert dann lokale Zeit ohne `Z` statt UTC-Instant.
82
+ const wallClock =
83
+ fieldDef.type === "timestamp" &&
84
+ (fieldDef as unknown as { locatedBy?: string }).locatedBy !== undefined
85
+ ? true
86
+ : undefined;
80
87
  // Tier 2.7e-3: Reference-Field — refEntity + refLabelField in
81
88
  // das ViewModel reichen damit der Renderer die Lookup-Query
82
89
  // bauen kann ohne noch an EntityDefinition zu greifen.
@@ -112,6 +119,7 @@ export function computeEditViewModel<
112
119
  ...(options !== undefined && { options }),
113
120
  ...(optionLabels !== undefined && { optionLabels }),
114
121
  ...(multiline !== undefined && { multiline }),
122
+ ...(wallClock !== undefined && { wallClock }),
115
123
  ...(refEntity !== undefined && { refEntity }),
116
124
  ...(refFeature !== undefined && { refFeature }),
117
125
  ...(refLabelField !== undefined && { refLabelField }),
@@ -107,6 +107,10 @@ export type EditFieldViewModel = {
107
107
  * ist — dann rendert der Renderer textarea statt single-line input.
108
108
  * `true` = Default-Zeilen, `{ rows }` = explizite Höhe. */
109
109
  readonly multiline?: boolean | { readonly rows?: number };
110
+ /** Nur bei `type: "timestamp"` gesetzt wenn TimestampFieldDef.locatedBy
111
+ * existiert — Wall-Clock-Zeit ohne Offset. Der Renderer emittiert
112
+ * dann lokale Zeit ohne `Z` statt eines UTC-Instants. */
113
+ readonly wallClock?: boolean;
110
114
  /** Nur bei `type: "reference"` gesetzt — Tier 2.7e-3.
111
115
  * Die referenced Entity (kurz, ohne feature-prefix). Der Renderer
112
116
  * baut die Query-QN als `<refFeature>:query:<refEntity>:list`. */