@cosmicdrift/kumiko-types 0.232.0 → 0.233.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-types",
3
- "version": "0.232.0",
3
+ "version": "0.233.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/fields.ts CHANGED
@@ -371,6 +371,9 @@ export type NumberFieldDef = {
371
371
  /** `true` → `integer` column + `.int()` Zod validation. Omitted/`false` →
372
372
  * `double precision` column, fractional values allowed. */
373
373
  readonly integer?: boolean;
374
+ /** Display-only suffix: a static string, or a sibling field name whose
375
+ * value supplies it. Never converts the stored number. */
376
+ readonly unit?: string | { readonly field: string };
374
377
  } & ResolvedPiiFlags;
375
378
 
376
379
  /**
package/src/nav-icon.ts CHANGED
@@ -1,12 +1,13 @@
1
- // Closed vocabulary of nav icon keys. NavDefinition.icon, ScreenNavSugar.icon
2
- // and ConfigMask.icon are all typed against this union, so an unregistered
3
- // key is a compile error at the r.nav()/r.screen()/config-mask call site
4
- // instead of a silent missing-icon at runtime.
1
+ // Closed vocabulary of nav and button icon keys. NavDefinition.icon,
2
+ // ScreenNavSugar.icon, ConfigMask.icon and ButtonProps.icon/iconEnd are all
3
+ // typed against this union, so an unregistered key is a compile error at the
4
+ // r.nav()/r.screen()/config-mask/button call site instead of a silent
5
+ // missing-icon at runtime.
5
6
  //
6
- // The renderer-web NAV_ICONS map (packages/renderer-web/src/layout/
7
- // nav-tree.tsx) is checked against this same union via `satisfies`, so the
8
- // two can't drift — add a key here only together with its lucide-react entry
9
- // there, and vice versa.
7
+ // The renderer-web NAV_ICONS map (packages/renderer-web/src/icons.tsx) is
8
+ // checked against this same union via `satisfies`, so the two can't drift —
9
+ // add a key here only together with its lucide-react entry there, and vice
10
+ // versa.
10
11
  export type NavIconKey =
11
12
  | "dashboard"
12
13
  | "layout-grid"
@@ -55,4 +56,10 @@ export type NavIconKey =
55
56
  | "upload"
56
57
  | "rocket"
57
58
  | "plus"
58
- | "languages";
59
+ | "languages"
60
+ | "trash"
61
+ | "x"
62
+ | "check"
63
+ | "arrow-left"
64
+ | "arrow-right"
65
+ | "copy";
package/src/screen.ts CHANGED
@@ -34,7 +34,7 @@ export type PlatformComponent = {
34
34
  // formats it as a locale-formatted number with a literal "m²" suffix. The
35
35
  // rest map to a CLDR-sanctioned Intl.NumberFormat unit id and get
36
36
  // locale-correct pluralization/spacing straight from Intl.
37
- export type UnitKey = "m2" | "km" | "m" | "kg" | "percent";
37
+ export type UnitKey = "m2" | "km" | "m" | "kg" | "percent" | "mi";
38
38
 
39
39
  // Built-in value formatters. Apps extend via module augmentation:
40
40
  // declare module "@cosmicdrift/kumiko-framework/engine/types" {