machinalayout 0.1.0 → 0.2.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.
Files changed (45) hide show
  1. package/README.md +280 -49
  2. package/dist/chunk-BJOQRPPX.js +382 -0
  3. package/dist/chunk-HU6XYOH7.js +133 -0
  4. package/dist/chunk-KYWOCAHK.js +205 -0
  5. package/dist/chunk-RJYRJ3LD.js +0 -0
  6. package/dist/chunk-TR24ERZT.js +66 -0
  7. package/dist/dispatch/index.d.ts +49 -0
  8. package/dist/dispatch/index.js +217 -0
  9. package/dist/index.d.ts +15 -238
  10. package/dist/index.js +596 -591
  11. package/dist/react/index.d.ts +33 -0
  12. package/dist/react/index.js +7 -0
  13. package/dist/react-native/index.d.ts +30 -0
  14. package/dist/react-native/index.js +83 -0
  15. package/dist/text/index.d.ts +10 -0
  16. package/dist/text/index.js +9 -0
  17. package/dist/text/react/index.d.ts +14 -0
  18. package/dist/text/react/index.js +7 -0
  19. package/dist/text/react-native/index.d.ts +16 -0
  20. package/dist/text/react-native/index.js +155 -0
  21. package/dist/text/vue/index.d.ts +113 -0
  22. package/dist/text/vue/index.js +202 -0
  23. package/dist/types-BudfpzZX.d.ts +184 -0
  24. package/dist/types-C4poVJpR.d.ts +74 -0
  25. package/dist/vue/index.d.ts +173 -0
  26. package/dist/vue/index.js +111 -0
  27. package/docs/adapter-packaging-a0-plan.md +352 -0
  28. package/docs/adapters.md +19 -0
  29. package/docs/api-coherence-m8-audit.md +397 -0
  30. package/docs/error-codes.md +84 -0
  31. package/docs/grid-arrange-m5a-contract.md +480 -0
  32. package/docs/grid-arrange.md +51 -0
  33. package/docs/layout-interpolation.md +52 -0
  34. package/docs/machina-dispatch-d0-contract.md +496 -0
  35. package/docs/machina-dispatch.md +143 -0
  36. package/docs/named-layers.md +40 -0
  37. package/docs/react-adapter.md +51 -69
  38. package/docs/react-native-adapter.md +56 -0
  39. package/docs/react-native-text-renderer.md +50 -0
  40. package/docs/reference-alignment-m7a-contract.md +384 -0
  41. package/docs/reference-alignment.md +44 -0
  42. package/docs/responsive-variants.md +54 -0
  43. package/docs/vue-adapter.md +55 -0
  44. package/docs/vue-text-renderer.md +55 -0
  45. package/package.json +60 -5
@@ -0,0 +1,202 @@
1
+ import {
2
+ parseMachinaText
3
+ } from "../../chunk-BJOQRPPX.js";
4
+
5
+ // src/text/vue/MachinaVueTextView.ts
6
+ import { computed, defineComponent, h } from "vue";
7
+ var DEFAULT_POLICY = {
8
+ variant: "body",
9
+ wrap: "word",
10
+ overflow: "clip",
11
+ align: "start",
12
+ leading: "normal",
13
+ blockGap: 8,
14
+ listGap: 2,
15
+ valign: "top"
16
+ };
17
+ var INLINE_CODE_FONT = 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace';
18
+ var VARIANT_STYLE = {
19
+ body: { fontSize: "14px", fontWeight: 400, lineHeight: 1.4 },
20
+ label: { fontSize: "12px", fontWeight: 500, lineHeight: 1.3 },
21
+ caption: { fontSize: "11px", fontWeight: 400, lineHeight: 1.25, opacity: 0.8 },
22
+ title: { fontSize: "18px", fontWeight: 700, lineHeight: 1.25 },
23
+ mono: { fontSize: "12px", lineHeight: 1.35, fontFamily: INLINE_CODE_FONT }
24
+ };
25
+ var isDocument = (v) => typeof v === "object" && v !== null && "blocks" in v;
26
+ var isSpec = (v) => typeof v === "object" && v !== null && "kind" in v && v.kind === "text";
27
+ var np = (v, f) => typeof v === "number" && Number.isFinite(v) && v > 0 ? v : f;
28
+ var nnn = (v, f) => typeof v === "number" && Number.isFinite(v) && v >= 0 ? v : f;
29
+ var resolveLineHeight = (p) => p.leading === "tight" ? 1.15 : p.leading === "loose" ? 1.6 : typeof p.leading === "number" ? p.leading : VARIANT_STYLE[p.variant].lineHeight;
30
+ var normalizeLeading = (v) => v === void 0 ? DEFAULT_POLICY.leading : v === "tight" || v === "normal" || v === "loose" ? v : np(v, resolveLineHeight(DEFAULT_POLICY));
31
+ var normalizeSpecPolicy = (s) => ({
32
+ variant: s.variant ?? DEFAULT_POLICY.variant,
33
+ wrap: s.wrap ?? DEFAULT_POLICY.wrap,
34
+ overflow: s.overflow ?? DEFAULT_POLICY.overflow,
35
+ align: s.align ?? DEFAULT_POLICY.align,
36
+ leading: normalizeLeading(s.leading),
37
+ blockGap: nnn(s.blockGap, DEFAULT_POLICY.blockGap),
38
+ listGap: nnn(s.listGap, DEFAULT_POLICY.listGap),
39
+ valign: s.valign ?? DEFAULT_POLICY.valign
40
+ });
41
+ function normalizeText(text) {
42
+ if (isDocument(text)) return { document: text, diagnostics: [], policy: DEFAULT_POLICY };
43
+ if (isSpec(text)) {
44
+ const r2 = parseMachinaText(text.source);
45
+ return { document: r2.document, diagnostics: r2.diagnostics, policy: normalizeSpecPolicy(text) };
46
+ }
47
+ const r = parseMachinaText(typeof text === "string" ? { kind: "machina-text", text } : text);
48
+ return { document: r.document, diagnostics: r.diagnostics, policy: DEFAULT_POLICY };
49
+ }
50
+ function policyStyle(policy) {
51
+ const wrap = policy.wrap === "word" ? { whiteSpace: "normal", overflowWrap: "anywhere" } : { whiteSpace: "nowrap" };
52
+ const ov = policy.overflow === "clip" ? { overflow: "hidden" } : policy.overflow === "ellipsis" ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } : { overflow: "auto" };
53
+ const align = policy.align === "center" ? { textAlign: "center" } : policy.align === "end" ? { textAlign: "right" } : { textAlign: "left" };
54
+ const jc = policy.valign === "center" ? "center" : policy.valign === "bottom" ? "flex-end" : "flex-start";
55
+ return {
56
+ width: "100%",
57
+ height: "100%",
58
+ boxSizing: "border-box",
59
+ display: "flex",
60
+ flexDirection: "column",
61
+ justifyContent: jc,
62
+ minWidth: 0,
63
+ ...VARIANT_STYLE[policy.variant],
64
+ lineHeight: resolveLineHeight(policy),
65
+ ...wrap,
66
+ ...ov,
67
+ ...align
68
+ };
69
+ }
70
+ function renderInline(inline, key, props) {
71
+ switch (inline.kind) {
72
+ case "text":
73
+ return inline.text;
74
+ case "strong":
75
+ return h(
76
+ "strong",
77
+ { key },
78
+ inline.children.map((c, i) => renderInline(c, `${key}-s-${i}`, props))
79
+ );
80
+ case "emphasis":
81
+ return h(
82
+ "em",
83
+ { key },
84
+ inline.children.map((c, i) => renderInline(c, `${key}-e-${i}`, props))
85
+ );
86
+ case "code":
87
+ return h(
88
+ "code",
89
+ {
90
+ key,
91
+ class: props.codeClass,
92
+ style: [
93
+ {
94
+ fontFamily: INLINE_CODE_FONT,
95
+ backgroundColor: "rgba(127, 127, 127, 0.15)",
96
+ borderRadius: "3px",
97
+ padding: "0 0.25em"
98
+ },
99
+ props.codeStyle
100
+ ]
101
+ },
102
+ inline.text
103
+ );
104
+ case "link": {
105
+ const rel = props.linkTarget === "_blank" ? "noreferrer noopener" : void 0;
106
+ return h(
107
+ "a",
108
+ {
109
+ key,
110
+ href: inline.href,
111
+ target: props.linkTarget,
112
+ rel,
113
+ class: props.linkClass,
114
+ style: props.linkStyle,
115
+ onClick: (e) => props.onLinkClick?.(inline.href, e)
116
+ },
117
+ inline.children.map((c, i) => renderInline(c, `${key}-l-${i}`, props))
118
+ );
119
+ }
120
+ }
121
+ }
122
+ function renderBulletItem(item, path, props, listGap) {
123
+ return h("li", { key: path, style: { marginBottom: `${listGap}px` } }, [
124
+ ...item.inline.map((i, idx) => renderInline(i, `${path}-i-${idx}`, props)),
125
+ ...item.children?.length ? [
126
+ h(
127
+ "ul",
128
+ { style: { margin: "0.25em 0 0 0", paddingLeft: "1.25em" } },
129
+ item.children.map((c, idx) => renderBulletItem(c, `${path}-c-${idx}`, props, listGap))
130
+ )
131
+ ] : []
132
+ ]);
133
+ }
134
+ var MachinaVueTextView = defineComponent({
135
+ name: "MachinaVueTextView",
136
+ props: {
137
+ text: { type: [String, Object], required: true },
138
+ rootClass: { type: null, default: void 0 },
139
+ rootStyle: { type: null, default: void 0 },
140
+ linkTarget: { type: String, default: void 0 },
141
+ onLinkClick: {
142
+ type: Function,
143
+ default: void 0
144
+ },
145
+ showDiagnostics: { type: Boolean, default: false },
146
+ linkClass: { type: null, default: void 0 },
147
+ linkStyle: { type: null, default: void 0 },
148
+ codeClass: { type: null, default: void 0 },
149
+ codeStyle: { type: null, default: void 0 }
150
+ },
151
+ setup(props) {
152
+ const normalized = computed(() => normalizeText(props.text));
153
+ return () => h(
154
+ "div",
155
+ { class: props.rootClass, style: [policyStyle(normalized.value.policy), props.rootStyle] },
156
+ [
157
+ h("div", { style: { minWidth: 0 } }, [
158
+ ...normalized.value.document.blocks.map((block, index) => {
159
+ const blockStyle = {
160
+ margin: index === normalized.value.document.blocks.length - 1 ? "0" : `0 0 ${normalized.value.policy.blockGap}px 0`
161
+ };
162
+ return block.kind === "paragraph" ? h(
163
+ "p",
164
+ { key: `b-${index}`, style: blockStyle },
165
+ block.inline.map((i, idx) => renderInline(i, `b-${index}-${idx}`, props))
166
+ ) : h(
167
+ "ul",
168
+ { key: `b-${index}`, style: { ...blockStyle, paddingLeft: "1.25em" } },
169
+ block.items.map(
170
+ (item, itemIndex) => renderBulletItem(
171
+ item,
172
+ `b-${index}-item-${itemIndex}`,
173
+ props,
174
+ normalized.value.policy.listGap
175
+ )
176
+ )
177
+ );
178
+ }),
179
+ ...props.showDiagnostics && normalized.value.diagnostics.length > 0 ? [
180
+ h(
181
+ "pre",
182
+ {
183
+ style: {
184
+ margin: `${normalized.value.policy.blockGap}px 0 0 0`,
185
+ padding: "0.5em",
186
+ fontSize: "11px",
187
+ fontFamily: INLINE_CODE_FONT,
188
+ whiteSpace: "pre-wrap",
189
+ background: "rgba(127, 127, 127, 0.12)"
190
+ }
191
+ },
192
+ normalized.value.diagnostics.map((d) => `${d.code} (${d.line}:${d.column}) ${d.message}`).join("\n")
193
+ )
194
+ ] : []
195
+ ])
196
+ ]
197
+ );
198
+ }
199
+ });
200
+ export {
201
+ MachinaVueTextView
202
+ };
@@ -0,0 +1,184 @@
1
+ type NodeId = string;
2
+ type LayerName = string;
3
+ type Rect = {
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ };
9
+ type AbsoluteFrame = {
10
+ kind: "absolute";
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ };
16
+ type UiLength = number | {
17
+ unit: "px";
18
+ value: number;
19
+ } | {
20
+ unit: "ui";
21
+ value: number;
22
+ };
23
+ type OffsetSpec = {
24
+ x?: UiLength;
25
+ y?: UiLength;
26
+ };
27
+ type RectEdge = "left" | "right" | "top" | "bottom" | "centerX" | "centerY";
28
+ type EdgeRef = {
29
+ ref: NodeId;
30
+ edge: RectEdge;
31
+ offset?: UiLength;
32
+ };
33
+ type GuideLength = UiLength | EdgeRef;
34
+ type AnchorFrame = {
35
+ kind: "anchor";
36
+ left?: UiLength;
37
+ right?: UiLength;
38
+ top?: UiLength;
39
+ bottom?: UiLength;
40
+ width?: UiLength;
41
+ height?: UiLength;
42
+ };
43
+ type GuideFrame = {
44
+ kind: "guide";
45
+ left?: GuideLength;
46
+ right?: GuideLength;
47
+ top?: GuideLength;
48
+ bottom?: GuideLength;
49
+ width?: UiLength;
50
+ height?: UiLength;
51
+ };
52
+ type RootFrame = {
53
+ kind: "root";
54
+ };
55
+ type FixedFrame = {
56
+ kind: "fixed";
57
+ width: number;
58
+ height: number;
59
+ };
60
+ type FillFrame = {
61
+ kind: "fill";
62
+ weight?: number;
63
+ cross?: number | "fill";
64
+ };
65
+ type CellFrame = {
66
+ kind: "cell";
67
+ col: number;
68
+ row: number;
69
+ colSpan?: number;
70
+ rowSpan?: number;
71
+ };
72
+ type FrameSpec = RootFrame | AbsoluteFrame | AnchorFrame | FixedFrame | FillFrame | CellFrame | GuideFrame;
73
+ type StackAxis = "horizontal" | "vertical";
74
+ type StackJustify = "start" | "center" | "end" | "space-between";
75
+ type StackAlign = "start" | "center" | "end";
76
+ type EdgeInsets = {
77
+ top: number;
78
+ right: number;
79
+ bottom: number;
80
+ left: number;
81
+ };
82
+ type StackArrange = {
83
+ kind: "stack";
84
+ axis: StackAxis;
85
+ gap?: number;
86
+ padding?: number | EdgeInsets;
87
+ justify?: StackJustify;
88
+ align?: StackAlign;
89
+ };
90
+ type GridTrack = {
91
+ kind: "fixed";
92
+ size: number;
93
+ } | {
94
+ kind: "fill";
95
+ weight?: number;
96
+ };
97
+ type GridArrange = {
98
+ kind: "grid";
99
+ columns: GridTrack[];
100
+ rows: GridTrack[];
101
+ columnGap?: number;
102
+ rowGap?: number;
103
+ padding?: number | EdgeInsets;
104
+ };
105
+ type ArrangeSpec = StackArrange | GridArrange;
106
+ type LayoutVariantCondition = {
107
+ minWidth?: number;
108
+ maxWidth?: number;
109
+ minHeight?: number;
110
+ maxHeight?: number;
111
+ };
112
+ type LayoutRowVariant = {
113
+ when: LayoutVariantCondition;
114
+ frame?: FrameSpec;
115
+ arrange?: ArrangeSpec;
116
+ offset?: OffsetSpec;
117
+ z?: number;
118
+ view?: string;
119
+ slot?: string;
120
+ debugLabel?: string;
121
+ layer?: LayerName;
122
+ };
123
+ type LayoutRow = {
124
+ id: NodeId;
125
+ parent?: NodeId;
126
+ order?: number;
127
+ z?: number;
128
+ frame: FrameSpec;
129
+ arrange?: ArrangeSpec;
130
+ view?: string;
131
+ slot?: string;
132
+ debugLabel?: string;
133
+ layer?: LayerName;
134
+ offset?: OffsetSpec;
135
+ variants?: LayoutRowVariant[];
136
+ };
137
+ type LayoutNode = {
138
+ id: NodeId;
139
+ z?: number;
140
+ frame: FrameSpec;
141
+ arrange?: ArrangeSpec;
142
+ view?: string;
143
+ slot?: string;
144
+ debugLabel?: string;
145
+ layer?: LayerName;
146
+ offset?: OffsetSpec;
147
+ };
148
+ type LayoutDocument = {
149
+ rootId: NodeId;
150
+ nodes: Record<NodeId, LayoutNode>;
151
+ children: Record<NodeId, NodeId[]>;
152
+ };
153
+ type ResolvedLayoutNode = {
154
+ id: NodeId;
155
+ z?: number;
156
+ rect: Rect;
157
+ frame: FrameSpec;
158
+ arrange?: ArrangeSpec;
159
+ view?: string;
160
+ slot?: string;
161
+ debugLabel?: string;
162
+ layer?: LayerName;
163
+ offset?: OffsetSpec;
164
+ };
165
+ type ResolvedLayoutDocument = {
166
+ rootId: NodeId;
167
+ nodes: Record<NodeId, ResolvedLayoutNode>;
168
+ children: Record<NodeId, NodeId[]>;
169
+ };
170
+ type ResolvedLayoutTree = {
171
+ id: NodeId;
172
+ z?: number;
173
+ rect: Rect;
174
+ frame: FrameSpec;
175
+ arrange?: ArrangeSpec;
176
+ view?: string;
177
+ slot?: string;
178
+ debugLabel?: string;
179
+ layer?: LayerName;
180
+ offset?: OffsetSpec;
181
+ children: ResolvedLayoutTree[];
182
+ };
183
+
184
+ export type { AbsoluteFrame as A, CellFrame as C, EdgeInsets as E, FrameSpec as F, GridArrange as G, LayoutRow as L, NodeId as N, OffsetSpec as O, Rect as R, StackAlign as S, UiLength as U, ResolvedLayoutNode as a, ResolvedLayoutDocument as b, LayoutDocument as c, ResolvedLayoutTree as d, AnchorFrame as e, ArrangeSpec as f, EdgeRef as g, FillFrame as h, FixedFrame as i, GridTrack as j, GuideFrame as k, GuideLength as l, LayerName as m, LayoutNode as n, LayoutRowVariant as o, LayoutVariantCondition as p, RectEdge as q, RootFrame as r, StackArrange as s, StackAxis as t, StackJustify as u };
@@ -0,0 +1,74 @@
1
+ type MachinaTextSource = {
2
+ kind: "plain";
3
+ text: string;
4
+ } | {
5
+ kind: "machina-text";
6
+ text: string;
7
+ };
8
+ type MachinaTextVariant = "body" | "label" | "caption" | "title" | "mono";
9
+ type MachinaTextWrap = "word" | "none";
10
+ type MachinaTextOverflow = "clip" | "ellipsis" | "scroll";
11
+ type MachinaTextAlign = "start" | "center" | "end";
12
+ type MachinaTextLeading = "tight" | "normal" | "loose" | number;
13
+ type MachinaTextVerticalAlign = "top" | "center" | "bottom";
14
+ type MachinaTextSpec = {
15
+ kind: "text";
16
+ source: MachinaTextSource;
17
+ variant?: MachinaTextVariant;
18
+ wrap?: MachinaTextWrap;
19
+ overflow?: MachinaTextOverflow;
20
+ align?: MachinaTextAlign;
21
+ leading?: MachinaTextLeading;
22
+ blockGap?: number;
23
+ listGap?: number;
24
+ valign?: MachinaTextVerticalAlign;
25
+ };
26
+ type MachinaTextDocument = {
27
+ blocks: MachinaTextBlock[];
28
+ };
29
+ type MachinaTextBlock = {
30
+ kind: "paragraph";
31
+ inline: MachinaInline[];
32
+ } | {
33
+ kind: "bulletList";
34
+ items: MachinaBulletItem[];
35
+ };
36
+ type MachinaBulletItem = {
37
+ inline: MachinaInline[];
38
+ children?: MachinaBulletItem[];
39
+ };
40
+ type MachinaInline = {
41
+ kind: "text";
42
+ text: string;
43
+ } | {
44
+ kind: "strong";
45
+ children: MachinaInline[];
46
+ } | {
47
+ kind: "emphasis";
48
+ children: MachinaInline[];
49
+ } | {
50
+ kind: "code";
51
+ text: string;
52
+ } | {
53
+ kind: "link";
54
+ href: string;
55
+ children: MachinaInline[];
56
+ };
57
+ type MachinaTextDiagnosticLevel = "error" | "warning";
58
+ type MachinaTextDiagnosticCode = "unsupported_syntax" | "heading_forbidden" | "max_list_depth_exceeded" | "malformed_link" | "unclosed_inline" | "invalid_escape";
59
+ type MachinaTextDiagnostic = {
60
+ code: MachinaTextDiagnosticCode;
61
+ message: string;
62
+ index: number;
63
+ length: number;
64
+ line: number;
65
+ column: number;
66
+ level: MachinaTextDiagnosticLevel;
67
+ };
68
+ type ParseMachinaTextResult = {
69
+ ok: boolean;
70
+ document: MachinaTextDocument;
71
+ diagnostics: MachinaTextDiagnostic[];
72
+ };
73
+
74
+ export type { MachinaTextSpec as M, ParseMachinaTextResult as P, MachinaTextSource as a, MachinaTextDocument as b, MachinaBulletItem as c, MachinaInline as d, MachinaTextAlign as e, MachinaTextBlock as f, MachinaTextDiagnostic as g, MachinaTextDiagnosticCode as h, MachinaTextDiagnosticLevel as i, MachinaTextLeading as j, MachinaTextOverflow as k, MachinaTextVariant as l, MachinaTextVerticalAlign as m, MachinaTextWrap as n };
@@ -0,0 +1,173 @@
1
+ import * as vue from 'vue';
2
+ import { PropType, Component, StyleValue } from 'vue';
3
+ import { N as NodeId, R as Rect, a as ResolvedLayoutNode, b as ResolvedLayoutDocument } from '../types-BudfpzZX.js';
4
+
5
+ type MachinaVueSlotProps<TViewData = unknown, TNodeData = unknown> = {
6
+ id: NodeId;
7
+ rect: Rect;
8
+ debugLabel?: string;
9
+ node: ResolvedLayoutNode;
10
+ viewKey?: string;
11
+ viewData?: TViewData;
12
+ nodeData?: TNodeData;
13
+ };
14
+ type MachinaVueLayer = {
15
+ z: number;
16
+ };
17
+ type MachinaVueViewProps = {
18
+ layout: ResolvedLayoutDocument;
19
+ views?: Record<string, Component>;
20
+ viewData?: Record<string, unknown>;
21
+ nodeData?: Record<NodeId, unknown>;
22
+ layers?: Record<string, MachinaVueLayer>;
23
+ defaultLayer?: string;
24
+ debug?: boolean;
25
+ rootClass?: unknown;
26
+ rootStyle?: StyleValue;
27
+ nodeClass?: unknown;
28
+ nodeStyle?: StyleValue;
29
+ nodeContainment?: "none" | "layout-paint" | "strict";
30
+ nodeContentVisibility?: "none" | "auto";
31
+ nodeContainIntrinsicSize?: string;
32
+ };
33
+ declare const MachinaVueView: vue.DefineComponent<vue.ExtractPropTypes<{
34
+ layout: {
35
+ type: PropType<ResolvedLayoutDocument>;
36
+ required: true;
37
+ };
38
+ views: {
39
+ type: PropType<Record<string, Component>>;
40
+ default: () => {};
41
+ };
42
+ viewData: {
43
+ type: PropType<Record<string, unknown>>;
44
+ default: () => {};
45
+ };
46
+ nodeData: {
47
+ type: PropType<Record<NodeId, unknown>>;
48
+ default: () => {};
49
+ };
50
+ layers: {
51
+ type: PropType<Record<string, MachinaVueLayer>>;
52
+ default: () => {
53
+ base: {
54
+ z: number;
55
+ };
56
+ };
57
+ };
58
+ defaultLayer: {
59
+ type: StringConstructor;
60
+ default: string;
61
+ };
62
+ debug: {
63
+ type: BooleanConstructor;
64
+ default: boolean;
65
+ };
66
+ rootClass: {
67
+ type: PropType<unknown>;
68
+ default: undefined;
69
+ };
70
+ rootStyle: {
71
+ type: PropType<StyleValue>;
72
+ default: undefined;
73
+ };
74
+ nodeClass: {
75
+ type: PropType<unknown>;
76
+ default: undefined;
77
+ };
78
+ nodeStyle: {
79
+ type: PropType<StyleValue>;
80
+ default: undefined;
81
+ };
82
+ nodeContainment: {
83
+ type: PropType<"none" | "layout-paint" | "strict">;
84
+ default: string;
85
+ };
86
+ nodeContentVisibility: {
87
+ type: PropType<"none" | "auto">;
88
+ default: string;
89
+ };
90
+ nodeContainIntrinsicSize: {
91
+ type: StringConstructor;
92
+ default: undefined;
93
+ };
94
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
95
+ [key: string]: any;
96
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
97
+ layout: {
98
+ type: PropType<ResolvedLayoutDocument>;
99
+ required: true;
100
+ };
101
+ views: {
102
+ type: PropType<Record<string, Component>>;
103
+ default: () => {};
104
+ };
105
+ viewData: {
106
+ type: PropType<Record<string, unknown>>;
107
+ default: () => {};
108
+ };
109
+ nodeData: {
110
+ type: PropType<Record<NodeId, unknown>>;
111
+ default: () => {};
112
+ };
113
+ layers: {
114
+ type: PropType<Record<string, MachinaVueLayer>>;
115
+ default: () => {
116
+ base: {
117
+ z: number;
118
+ };
119
+ };
120
+ };
121
+ defaultLayer: {
122
+ type: StringConstructor;
123
+ default: string;
124
+ };
125
+ debug: {
126
+ type: BooleanConstructor;
127
+ default: boolean;
128
+ };
129
+ rootClass: {
130
+ type: PropType<unknown>;
131
+ default: undefined;
132
+ };
133
+ rootStyle: {
134
+ type: PropType<StyleValue>;
135
+ default: undefined;
136
+ };
137
+ nodeClass: {
138
+ type: PropType<unknown>;
139
+ default: undefined;
140
+ };
141
+ nodeStyle: {
142
+ type: PropType<StyleValue>;
143
+ default: undefined;
144
+ };
145
+ nodeContainment: {
146
+ type: PropType<"none" | "layout-paint" | "strict">;
147
+ default: string;
148
+ };
149
+ nodeContentVisibility: {
150
+ type: PropType<"none" | "auto">;
151
+ default: string;
152
+ };
153
+ nodeContainIntrinsicSize: {
154
+ type: StringConstructor;
155
+ default: undefined;
156
+ };
157
+ }>> & Readonly<{}>, {
158
+ views: Record<string, Component>;
159
+ viewData: Record<string, unknown>;
160
+ nodeData: Record<string, unknown>;
161
+ layers: Record<string, MachinaVueLayer>;
162
+ defaultLayer: string;
163
+ debug: boolean;
164
+ rootClass: undefined;
165
+ rootStyle: StyleValue;
166
+ nodeClass: undefined;
167
+ nodeStyle: StyleValue;
168
+ nodeContainment: "none" | "layout-paint" | "strict";
169
+ nodeContentVisibility: "none" | "auto";
170
+ nodeContainIntrinsicSize: string;
171
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
172
+
173
+ export { type MachinaVueLayer, type MachinaVueSlotProps, MachinaVueView, type MachinaVueViewProps };