@cosmicdrift/kumiko-renderer 0.105.2 → 0.109.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-renderer",
3
- "version": "0.105.2",
3
+ "version": "0.109.0",
4
4
  "description": "Platform-agnostic React renderer for Kumiko screens. Contains the shared logic — primitives-contract, hooks, KumikoScreen, navigation & SSE abstractions — that any platform-specific renderer (web, native) composes. No DOM, no EventSource, no react-dom.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -15,8 +15,8 @@
15
15
  }
16
16
  },
17
17
  "dependencies": {
18
- "@cosmicdrift/kumiko-framework": "0.105.2",
19
- "@cosmicdrift/kumiko-headless": "0.105.2",
18
+ "@cosmicdrift/kumiko-framework": "0.109.0",
19
+ "@cosmicdrift/kumiko-headless": "0.109.0",
20
20
  "react": "^19.2.6"
21
21
  },
22
22
  "devDependencies": {
@@ -1,9 +1,7 @@
1
1
  import type { EditSectionViewModel, SubmitResult } from "@cosmicdrift/kumiko-headless";
2
2
 
3
- // A read-only inspector form every field readOnly, no editable section — has
4
- // nothing to submit, so the renderer drops the Save button rather than show a
5
- // dead disabled one. An extension section carries its own dirty/save, so it
6
- // counts as editable.
3
+ // Hides the Save button when no field is editable and no extension section
4
+ // exists (extension carries its own dirty/save; a purely read-only form has nothing to submit).
7
5
  export function hasEditableSection(sections: readonly EditSectionViewModel[]): boolean {
8
6
  return sections.some((s) => s.kind !== "fields" || s.fields.some((f) => !f.readOnly));
9
7
  }