view-contracts 0.4.0 → 0.4.2
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/dist/dsl.js +2 -0
- package/dist/dsl.js.map +7 -0
- package/dist/preview.mjs +61 -62
- package/dist/preview.mjs.map +4 -4
- package/dist/view-contracts.bundle.mjs +232 -176
- package/dist/view-contracts.bundle.mjs.map +4 -4
- package/package.json +5 -4
- package/renderers/react/defaults/theme.yaml +29 -0
- package/renderers/react/defaults/tokens.yaml +61 -1
- package/renderers/react/lowering/lowerToJsx.ts +6 -6
- package/renderers/react/paths.ts +5 -1
- package/renderers/react/runtime/structural.css +38 -0
- package/renderers/react/style/foldLiterals.ts +14 -4
- package/renderers/swiftui/lowering/lowerToSwiftUI.ts +250 -31
- package/renderers/swiftui/lowering/modifiers.ts +90 -11
- package/renderers/swiftui/renderRuntime.ts +48 -0
- package/renderers/swiftui/renderTheme.ts +69 -3
- package/src/dsl/index.ts +16 -0
- package/src/dsl/screen.tsx +54 -0
- package/src/dsl/types.ts +68 -0
- package/renderers/react/runtime/theme.css +0 -57
package/dist/dsl.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Fragment as r,jsx as i}from"react/jsx-runtime";function s(e){function t({vm:o,actions:n={}}){return i(r,{children:e({vm:o,actions:n})})}return Object.assign(t,{__viewContract:!0,render:e})}function p(e){function t(o){return i(r,{children:e(o)})}return Object.assign(t,{__viewPartial:!0,render:e})}export{s as screen,p as view};
|
|
2
|
+
//# sourceMappingURL=dsl.js.map
|
package/dist/dsl.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/dsl/screen.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { ReactNode } from 'react';\nimport type { FC } from 'react';\nimport type { ScreenContext, ViewContract, ViewPartial, ViewScreenProps } from './types.js';\n\nexport type {\n ViewAction,\n ActionHandlers,\n ScreenContext,\n ViewContract,\n ViewPartial,\n ViewScreenProps,\n CommonProps,\n Option,\n Tone,\n Align,\n Justify,\n ButtonVariant,\n FieldSize,\n} from './types.js';\n\n/**\n * Wrap a restricted view-contract TSX definition.\n *\n * - **Preview runtime**: returns a React component (`vm` + `actions` props).\n * - **Compiler**: statically extracts JSX from the render callback \u2192 View IR.\n */\nexport function screen<TViewModel>(\n render: (ctx: ScreenContext<TViewModel>) => ReactNode,\n): FC<ViewScreenProps<TViewModel>> {\n function ViewScreen({ vm, actions = {} }: ViewScreenProps<TViewModel>) {\n return <>{render({ vm, actions })}</>;\n }\n return Object.assign(ViewScreen, {\n __viewContract: true as const,\n render,\n }) as FC<ViewScreenProps<TViewModel>>;\n}\n\n/**\n * Reusable view-contract sub-component (composable inside screen() or other view()).\n *\n * Compiled by inlining into the parent View IR; preview runtime renders as a normal React FC.\n */\nexport function view<TProps>(\n render: (props: TProps) => ReactNode,\n): FC<TProps> & ViewPartial<TProps> {\n function ViewComponent(props: TProps) {\n return <>{render(props)}</>;\n }\n return Object.assign(ViewComponent, {\n __viewPartial: true as const,\n render,\n }) as FC<TProps> & ViewPartial<TProps>;\n}\n"],
|
|
5
|
+
"mappings": "AA8BW,mBAAAA,EAAA,OAAAC,MAAA,oBAJJ,SAASC,EACdC,EACiC,CACjC,SAASC,EAAW,CAAE,GAAAC,EAAI,QAAAC,EAAU,CAAC,CAAE,EAAgC,CACrE,OAAOL,EAAAD,EAAA,CAAG,SAAAG,EAAO,CAAE,GAAAE,EAAI,QAAAC,CAAQ,CAAC,EAAE,CACpC,CACA,OAAO,OAAO,OAAOF,EAAY,CAC/B,eAAgB,GAChB,OAAAD,CACF,CAAC,CACH,CAOO,SAASI,EACdJ,EACkC,CAClC,SAASK,EAAcC,EAAe,CACpC,OAAOR,EAAAD,EAAA,CAAG,SAAAG,EAAOM,CAAK,EAAE,CAC1B,CACA,OAAO,OAAO,OAAOD,EAAe,CAClC,cAAe,GACf,OAAAL,CACF,CAAC,CACH",
|
|
6
|
+
"names": ["Fragment", "jsx", "screen", "render", "ViewScreen", "vm", "actions", "view", "ViewComponent", "props"]
|
|
7
|
+
}
|