view-contracts 0.3.3 → 0.3.5

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.
Files changed (37) hide show
  1. package/README.md +6 -6
  2. package/cli-contract.yaml +1 -1
  3. package/dist/view-contracts.bundle.mjs +169 -153
  4. package/dist/view-contracts.bundle.mjs.map +4 -4
  5. package/docs/cli-reference.md +1 -1
  6. package/package.json +1 -1
  7. package/renderers/NATIVE_THEME_EMIT.md +73 -0
  8. package/renderers/compose/README.md +7 -0
  9. package/renderers/compose/templates/Screen.kt.hbs +3 -5
  10. package/renderers/compose/templates/VcTheme.kt.hbs +7 -13
  11. package/renderers/react/defaults/theme.yaml +7 -0
  12. package/renderers/react/defaults/tokens.yaml +11 -0
  13. package/renderers/react/lowering/foldStyle.ts +87 -0
  14. package/renderers/react/lowering/lowerToJsx.ts +58 -69
  15. package/renderers/react/renderComponents.ts +180 -24
  16. package/renderers/react/renderRuntime.ts +36 -43
  17. package/renderers/react/routes.yaml +2 -2
  18. package/renderers/react/runtime/index.ts +1 -1
  19. package/renderers/react/runtime/style.ts +3 -55
  20. package/renderers/react/runtime/theme.css +1 -1
  21. package/renderers/react/runtime/types.ts +0 -24
  22. package/renderers/react/style/foldLiterals.ts +129 -0
  23. package/renderers/react/syncGeneratedRuntime.ts +35 -47
  24. package/renderers/react/templates/components-index.ts.hbs +2 -2
  25. package/renderers/react/templates/runtime.ts.hbs +10 -0
  26. package/renderers/react/templates/style-helpers.ts.hbs +2 -2
  27. package/renderers/swiftui/README.md +7 -0
  28. package/renderers/swiftui/templates/Screen.swift.hbs +3 -5
  29. package/renderers/swiftui/templates/VcTheme.swift.hbs +8 -16
  30. package/spec/ui-dsl.schema.json +1331 -345
  31. package/src/generated/schema/allowed-components.ts +1 -1
  32. package/src/generated/schema/dsl-enums.ts +1 -1
  33. package/src/generated/schema/dsl-properties.ts +1 -1
  34. package/src/generated/schema/index.ts +1 -1
  35. package/src/generated/schema/lowering-style-properties.ts +9 -2
  36. package/src/generated/schema/react-renderer-element-config.ts +1 -1
  37. package/src/generated/schema/schema-document.ts +1 -1
package/README.md CHANGED
@@ -99,7 +99,7 @@ Compiler (in-memory View IR)
99
99
 
100
100
  Renderer
101
101
 
102
- generated/react/*.tsx + generated/runtime/
102
+ generated/react/ (*.generated.tsx, components/, runtime/)
103
103
  ```
104
104
 
105
105
  The generated output is deterministic.
@@ -110,7 +110,7 @@ The generated output is deterministic.
110
110
 
111
111
  ### Supported
112
112
 
113
- - React generation (`generated/react/`, `generated/components/`, `generated/theme.css`)
113
+ - React generation (`generated/react/` — screens, `runtime.ts`, `theme.css`, …)
114
114
  - Design tokens + theme variants (`views/design/tokens.yaml`, `theme.yaml`)
115
115
  - Live DSL preview (`dev:preview`) with `views/preview/*.mock.yaml` sample data
116
116
  - Extension registry (`extensions.yaml`) with plain HTML/CSS implementations
@@ -161,9 +161,9 @@ flowchart TB
161
161
  reactRenderer --> generatedReact["generated/react/*.generated.tsx"]
162
162
  build --> runtimeCopy["renderRuntime → generated/"]
163
163
  build --> bridgeGen["render bridge"]
164
- runtimeCopy --> generatedTheme["generated/theme.css"]
165
- bridgeGen --> bridgeTs["generated/view-bridge.generated.ts"]
166
- runtimeCopy --> generatedRuntime["generated/components + runtime/"]
164
+ runtimeCopy --> generatedTheme["generated/react/theme.css"]
165
+ bridgeGen --> bridgeTs["generated/react/view-bridge.generated.ts"]
166
+ runtimeCopy --> generatedRuntime["generated/react/runtime.ts"]
167
167
 
168
168
  generatedReact --> app["Standalone app (src/main.tsx)"]
169
169
  generatedTheme --> app
@@ -178,7 +178,7 @@ flowchart TB
178
178
  | Authoring | OpenAPI types flow into `.view.tsx` via `generated/contracts.ts` | Type-safe view source |
179
179
  | Binding | `view-bindings.yaml` links a screen (`operationId`, `ViewModel`) to a view file | No schema duplication |
180
180
  | Compilation | Compiler reads layout from TSX and lowers `vm.*` / `action` to language-neutral IR | In-memory View IR |
181
- | Design | `tokens.yaml` + `theme.yaml` validate and emit `generated/theme.css` | CSS variables + `.vc-*` variant rules |
181
+ | Design | `tokens.yaml` + `theme.yaml` validate and emit `generated/react/theme.css` | CSS variables + `.vc-*` variant rules |
182
182
  | Generation | Renderer copies runtime + emits React from IR + bridge registry | `generated/` (no `@view-contracts` imports) |
183
183
 
184
184
  ### Preview path (no compile step)
package/cli-contract.yaml CHANGED
@@ -3,7 +3,7 @@ cli_contracts: 0.1.0
3
3
 
4
4
  info:
5
5
  title: view-contracts CLI
6
- version: 0.3.3
6
+ version: 0.3.5
7
7
  description: >-
8
8
  Contract-first UI design toolchain. Compiles restricted view-contract TSX
9
9
  to language-neutral View IR and renders platform targets (React, SwiftUI, Compose).