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.
- package/README.md +6 -6
- package/cli-contract.yaml +1 -1
- package/dist/view-contracts.bundle.mjs +169 -153
- package/dist/view-contracts.bundle.mjs.map +4 -4
- package/docs/cli-reference.md +1 -1
- package/package.json +1 -1
- package/renderers/NATIVE_THEME_EMIT.md +73 -0
- package/renderers/compose/README.md +7 -0
- package/renderers/compose/templates/Screen.kt.hbs +3 -5
- package/renderers/compose/templates/VcTheme.kt.hbs +7 -13
- package/renderers/react/defaults/theme.yaml +7 -0
- package/renderers/react/defaults/tokens.yaml +11 -0
- package/renderers/react/lowering/foldStyle.ts +87 -0
- package/renderers/react/lowering/lowerToJsx.ts +58 -69
- package/renderers/react/renderComponents.ts +180 -24
- package/renderers/react/renderRuntime.ts +36 -43
- package/renderers/react/routes.yaml +2 -2
- package/renderers/react/runtime/index.ts +1 -1
- package/renderers/react/runtime/style.ts +3 -55
- package/renderers/react/runtime/theme.css +1 -1
- package/renderers/react/runtime/types.ts +0 -24
- package/renderers/react/style/foldLiterals.ts +129 -0
- package/renderers/react/syncGeneratedRuntime.ts +35 -47
- package/renderers/react/templates/components-index.ts.hbs +2 -2
- package/renderers/react/templates/runtime.ts.hbs +10 -0
- package/renderers/react/templates/style-helpers.ts.hbs +2 -2
- package/renderers/swiftui/README.md +7 -0
- package/renderers/swiftui/templates/Screen.swift.hbs +3 -5
- package/renderers/swiftui/templates/VcTheme.swift.hbs +8 -16
- package/spec/ui-dsl.schema.json +1331 -345
- package/src/generated/schema/allowed-components.ts +1 -1
- package/src/generated/schema/dsl-enums.ts +1 -1
- package/src/generated/schema/dsl-properties.ts +1 -1
- package/src/generated/schema/index.ts +1 -1
- package/src/generated/schema/lowering-style-properties.ts +9 -2
- package/src/generated/schema/react-renderer-element-config.ts +1 -1
- 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
|
|
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
|
|
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/
|
|
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.
|
|
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).
|