@lattix/dsl 0.1.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/dist/builders/button.d.ts +6 -0
- package/dist/builders/button.d.ts.map +1 -0
- package/dist/builders/button.js +16 -0
- package/dist/builders/button.js.map +1 -0
- package/dist/builders/container.d.ts +48 -0
- package/dist/builders/container.d.ts.map +1 -0
- package/dist/builders/container.js +134 -0
- package/dist/builders/container.js.map +1 -0
- package/dist/builders/leaf.d.ts +23 -0
- package/dist/builders/leaf.d.ts.map +1 -0
- package/dist/builders/leaf.js +44 -0
- package/dist/builders/leaf.js.map +1 -0
- package/dist/builders/screen.d.ts +25 -0
- package/dist/builders/screen.d.ts.map +1 -0
- package/dist/builders/screen.js +44 -0
- package/dist/builders/screen.js.map +1 -0
- package/dist/builders/text.d.ts +4 -0
- package/dist/builders/text.d.ts.map +1 -0
- package/dist/builders/text.js +4 -0
- package/dist/builders/text.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/finalize.d.ts +5 -0
- package/dist/internal/finalize.d.ts.map +1 -0
- package/dist/internal/finalize.js +20 -0
- package/dist/internal/finalize.js.map +1 -0
- package/dist/internal/style.d.ts +21 -0
- package/dist/internal/style.d.ts.map +1 -0
- package/dist/internal/style.js +51 -0
- package/dist/internal/style.js.map +1 -0
- package/dist/internal/trace.d.ts +3 -0
- package/dist/internal/trace.d.ts.map +1 -0
- package/dist/internal/trace.js +3 -0
- package/dist/internal/trace.js.map +1 -0
- package/dist/internal/types.d.ts +15 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/types.js +2 -0
- package/dist/internal/types.js.map +1 -0
- package/dist/screen.d.ts +6 -0
- package/dist/screen.d.ts.map +1 -0
- package/dist/screen.js +6 -0
- package/dist/screen.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/builders/button.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAK7B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { normalizeAction } from "@lattix/core";
|
|
2
|
+
import { pushTrace } from "../internal/trace.js";
|
|
3
|
+
import { LeafBuilder } from "./leaf.js";
|
|
4
|
+
export class ButtonBuilder extends LeafBuilder {
|
|
5
|
+
onPress(actionId) {
|
|
6
|
+
this.state.props.onPress = normalizeAction(actionId);
|
|
7
|
+
this.state.trace = pushTrace(this.state.trace, `onPress(${JSON.stringify(actionId)})`);
|
|
8
|
+
return this;
|
|
9
|
+
}
|
|
10
|
+
variant(value) {
|
|
11
|
+
this.state.props.variant = value;
|
|
12
|
+
this.state.trace = pushTrace(this.state.trace, `variant(${JSON.stringify(value)})`);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/builders/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,QAAgB;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type LattixNode } from "@lattix/core";
|
|
2
|
+
import { StyleChain } from "../internal/style.js";
|
|
3
|
+
import type { BuilderState } from "../internal/types.js";
|
|
4
|
+
import { ButtonBuilder } from "./button.js";
|
|
5
|
+
import { TextBuilder } from "./text.js";
|
|
6
|
+
export type ContainerChildCallback<T extends ContainerBuilder> = (builder: T) => void;
|
|
7
|
+
export interface StackOptions {
|
|
8
|
+
readonly gap?: number | string;
|
|
9
|
+
}
|
|
10
|
+
/** Base container builder — accumulates children, never leaks chain state to nodes. */
|
|
11
|
+
export declare class ContainerBuilder extends StyleChain {
|
|
12
|
+
readonly state: BuilderState;
|
|
13
|
+
protected pending: {
|
|
14
|
+
finalize: () => LattixNode;
|
|
15
|
+
} | null;
|
|
16
|
+
constructor(state: BuilderState);
|
|
17
|
+
debugLabel(label: string): this;
|
|
18
|
+
/** Finalize any in-progress leaf builder into children. */
|
|
19
|
+
flushPending(): void;
|
|
20
|
+
protected nest<T extends ContainerBuilder>(Builder: new (state: BuilderState, parent: ContainerBuilder) => T, kind: BuilderState["kind"], options: StackOptions | undefined, configure: ContainerChildCallback<T> | undefined, op: string): this;
|
|
21
|
+
stack(options?: StackOptions, configure?: ContainerChildCallback<StackBuilder>): this;
|
|
22
|
+
stack(configure: ContainerChildCallback<StackBuilder>): this;
|
|
23
|
+
row(configure?: ContainerChildCallback<RowBuilder>): this;
|
|
24
|
+
box(configure?: ContainerChildCallback<BoxBuilder>): this;
|
|
25
|
+
list(configure?: ContainerChildCallback<ListBuilder>): this;
|
|
26
|
+
protected appendLeaf(kind: BuilderState["kind"], props: Record<string, unknown>, op: string): this;
|
|
27
|
+
image(source: string): this;
|
|
28
|
+
input(placeholder?: string): this;
|
|
29
|
+
badge(label: string): this;
|
|
30
|
+
divider(): this;
|
|
31
|
+
spacer(): this;
|
|
32
|
+
text(content: string): TextBuilder;
|
|
33
|
+
button(label: string, configure?: (btn: ButtonBuilder) => void): ButtonBuilder;
|
|
34
|
+
toNode(): LattixNode;
|
|
35
|
+
}
|
|
36
|
+
export declare class StackBuilder extends ContainerBuilder {
|
|
37
|
+
constructor(state: BuilderState, _parent: ContainerBuilder);
|
|
38
|
+
}
|
|
39
|
+
export declare class RowBuilder extends ContainerBuilder {
|
|
40
|
+
constructor(state: BuilderState, _parent: ContainerBuilder);
|
|
41
|
+
}
|
|
42
|
+
export declare class BoxBuilder extends ContainerBuilder {
|
|
43
|
+
constructor(state: BuilderState, _parent: ContainerBuilder);
|
|
44
|
+
}
|
|
45
|
+
export declare class ListBuilder extends ContainerBuilder {
|
|
46
|
+
constructor(state: BuilderState, _parent: ContainerBuilder);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/builders/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,uFAAuF;AACvF,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;KAAE,GAAG,IAAI,CAAQ;gBAEpD,KAAK,EAAE,YAAY;IAK/B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM/B,2DAA2D;IAC3D,YAAY,IAAI,IAAI;IAOpB,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,gBAAgB,EACvC,OAAO,EAAE,KAAK,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,KAAK,CAAC,EACjE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,OAAO,EAAE,YAAY,GAAG,SAAS,EACjC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS,EAChD,EAAE,EAAE,MAAM,GACT,IAAI;IAoBP,KAAK,CACH,OAAO,CAAC,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAC/C,IAAI;IACP,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,IAAI;IAY5D,GAAG,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,IAAI;IAIzD,GAAG,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,IAAI;IAIzD,IAAI,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,GAAG,IAAI;IAI3D,SAAS,CAAC,UAAU,CAClB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,EAAE,EAAE,MAAM,GACT,IAAI;IAYP,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAQjC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,IAAI;IAId,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAgBlC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GAAG,aAAa;IAiB9E,MAAM,IAAI,UAAU;CAIrB;AAED,qBAAa,YAAa,SAAQ,gBAAgB;gBACpC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB;CAG3D;AAED,qBAAa,UAAW,SAAQ,gBAAgB;gBAClC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB;CAG3D;AAED,qBAAa,UAAW,SAAQ,gBAAgB;gBAClC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB;CAG3D;AAED,qBAAa,WAAY,SAAQ,gBAAgB;gBACnC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB;CAG3D"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createNode } from "@lattix/core";
|
|
2
|
+
import { finalizeState } from "../internal/finalize.js";
|
|
3
|
+
import { StyleChain } from "../internal/style.js";
|
|
4
|
+
import { pushTrace } from "../internal/trace.js";
|
|
5
|
+
import { ButtonBuilder } from "./button.js";
|
|
6
|
+
import { TextBuilder } from "./text.js";
|
|
7
|
+
/** Base container builder — accumulates children, never leaks chain state to nodes. */
|
|
8
|
+
export class ContainerBuilder extends StyleChain {
|
|
9
|
+
state;
|
|
10
|
+
pending = null;
|
|
11
|
+
constructor(state) {
|
|
12
|
+
super();
|
|
13
|
+
this.state = state;
|
|
14
|
+
}
|
|
15
|
+
debugLabel(label) {
|
|
16
|
+
this.state.debugLabel = label;
|
|
17
|
+
this.state.trace = pushTrace(this.state.trace, `debugLabel(${label})`);
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
/** Finalize any in-progress leaf builder into children. */
|
|
21
|
+
flushPending() {
|
|
22
|
+
if (this.pending) {
|
|
23
|
+
this.state.children.push(this.pending.finalize());
|
|
24
|
+
this.pending = null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
nest(Builder, kind, options, configure, op) {
|
|
28
|
+
this.flushPending();
|
|
29
|
+
const childState = {
|
|
30
|
+
kind,
|
|
31
|
+
props: {},
|
|
32
|
+
style: {},
|
|
33
|
+
children: [],
|
|
34
|
+
trace: [...this.state.trace, op],
|
|
35
|
+
};
|
|
36
|
+
if (options?.gap !== undefined) {
|
|
37
|
+
childState.style.gap = options.gap;
|
|
38
|
+
}
|
|
39
|
+
const child = new Builder(childState, this);
|
|
40
|
+
configure?.(child);
|
|
41
|
+
child.flushPending();
|
|
42
|
+
this.state.children.push(finalizeState(child.state));
|
|
43
|
+
this.state.trace = pushTrace(this.state.trace, op);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
stack(optionsOrConfigure, maybeConfigure) {
|
|
47
|
+
const options = typeof optionsOrConfigure === "function" ? undefined : optionsOrConfigure;
|
|
48
|
+
const configure = typeof optionsOrConfigure === "function" ? optionsOrConfigure : maybeConfigure;
|
|
49
|
+
return this.nest(StackBuilder, "stack", options, configure, "stack");
|
|
50
|
+
}
|
|
51
|
+
row(configure) {
|
|
52
|
+
return this.nest(RowBuilder, "row", undefined, configure, "row");
|
|
53
|
+
}
|
|
54
|
+
box(configure) {
|
|
55
|
+
return this.nest(BoxBuilder, "box", undefined, configure, "box");
|
|
56
|
+
}
|
|
57
|
+
list(configure) {
|
|
58
|
+
return this.nest(ListBuilder, "list", undefined, configure, "list");
|
|
59
|
+
}
|
|
60
|
+
appendLeaf(kind, props, op) {
|
|
61
|
+
this.flushPending();
|
|
62
|
+
this.state.children.push(createNode(kind, {
|
|
63
|
+
props,
|
|
64
|
+
builderTrace: pushTrace(this.state.trace, op),
|
|
65
|
+
}));
|
|
66
|
+
this.state.trace = pushTrace(this.state.trace, op);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
image(source) {
|
|
70
|
+
return this.appendLeaf("image", { source }, `image(${JSON.stringify(source)})`);
|
|
71
|
+
}
|
|
72
|
+
input(placeholder) {
|
|
73
|
+
return this.appendLeaf("input", { ...(placeholder !== undefined ? { placeholder } : {}) }, "input");
|
|
74
|
+
}
|
|
75
|
+
badge(label) {
|
|
76
|
+
return this.appendLeaf("badge", { label }, `badge(${JSON.stringify(label)})`);
|
|
77
|
+
}
|
|
78
|
+
divider() {
|
|
79
|
+
return this.appendLeaf("divider", {}, "divider");
|
|
80
|
+
}
|
|
81
|
+
spacer() {
|
|
82
|
+
return this.appendLeaf("spacer", {}, "spacer");
|
|
83
|
+
}
|
|
84
|
+
text(content) {
|
|
85
|
+
this.flushPending();
|
|
86
|
+
const builder = new TextBuilder({
|
|
87
|
+
kind: "text",
|
|
88
|
+
props: { content },
|
|
89
|
+
style: {},
|
|
90
|
+
children: [],
|
|
91
|
+
trace: [...this.state.trace, `text(${JSON.stringify(content)})`],
|
|
92
|
+
}, this);
|
|
93
|
+
this.pending = { finalize: () => builder.toNode() };
|
|
94
|
+
return builder;
|
|
95
|
+
}
|
|
96
|
+
button(label, configure) {
|
|
97
|
+
this.flushPending();
|
|
98
|
+
const builder = new ButtonBuilder({
|
|
99
|
+
kind: "button",
|
|
100
|
+
props: { label },
|
|
101
|
+
style: {},
|
|
102
|
+
children: [],
|
|
103
|
+
trace: [...this.state.trace, `button(${JSON.stringify(label)})`],
|
|
104
|
+
}, this);
|
|
105
|
+
configure?.(builder);
|
|
106
|
+
this.pending = { finalize: () => builder.toNode() };
|
|
107
|
+
return builder;
|
|
108
|
+
}
|
|
109
|
+
toNode() {
|
|
110
|
+
this.flushPending();
|
|
111
|
+
return finalizeState(this.state);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class StackBuilder extends ContainerBuilder {
|
|
115
|
+
constructor(state, _parent) {
|
|
116
|
+
super(state);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export class RowBuilder extends ContainerBuilder {
|
|
120
|
+
constructor(state, _parent) {
|
|
121
|
+
super(state);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export class BoxBuilder extends ContainerBuilder {
|
|
125
|
+
constructor(state, _parent) {
|
|
126
|
+
super(state);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export class ListBuilder extends ContainerBuilder {
|
|
130
|
+
constructor(state, _parent) {
|
|
131
|
+
super(state);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/builders/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { LattixNode } from "@lattix/core";
|
|
2
|
+
import { StyleChain } from "../internal/style.js";
|
|
3
|
+
import type { BuilderState } from "../internal/types.js";
|
|
4
|
+
import type { ButtonBuilder } from "./button.js";
|
|
5
|
+
import { type BoxBuilder, type ContainerBuilder, type ListBuilder, type RowBuilder, type StackBuilder, type StackOptions } from "./container.js";
|
|
6
|
+
import type { TextBuilder } from "./text.js";
|
|
7
|
+
/** Leaf builders delegate sibling container ops back to the parent after committing. */
|
|
8
|
+
export declare abstract class LeafBuilder extends StyleChain {
|
|
9
|
+
protected readonly state: BuilderState;
|
|
10
|
+
protected readonly parent: ContainerBuilder;
|
|
11
|
+
constructor(state: BuilderState, parent: ContainerBuilder);
|
|
12
|
+
debugLabel(label: string): this;
|
|
13
|
+
toNode(): LattixNode;
|
|
14
|
+
protected returnToParent(): ContainerBuilder;
|
|
15
|
+
text(content: string): TextBuilder;
|
|
16
|
+
button(label: string, configure?: (b: ButtonBuilder) => void): ButtonBuilder;
|
|
17
|
+
stack(options?: StackOptions, configure?: (b: StackBuilder) => void): ContainerBuilder;
|
|
18
|
+
stack(configure: (b: StackBuilder) => void): ContainerBuilder;
|
|
19
|
+
row(configure?: (b: RowBuilder) => void): ContainerBuilder;
|
|
20
|
+
box(configure?: (b: BoxBuilder) => void): ContainerBuilder;
|
|
21
|
+
list(configure?: (b: ListBuilder) => void): ContainerBuilder;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=leaf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../src/builders/leaf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,wFAAwF;AACxF,8BAAsB,WAAY,SAAQ,UAAU;IAClD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEhC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB;IAMzD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM/B,MAAM,IAAI,UAAU;IAIpB,SAAS,CAAC,cAAc,IAAI,gBAAgB;IAK5C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAIlC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,aAAa;IAI5E,KAAK,CACH,OAAO,CAAC,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GACpC,gBAAgB;IACnB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,gBAAgB;IAW7D,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,gBAAgB;IAI1D,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,gBAAgB;IAI1D,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,gBAAgB;CAG7D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { finalizeState } from "../internal/finalize.js";
|
|
2
|
+
import { StyleChain } from "../internal/style.js";
|
|
3
|
+
import { pushTrace } from "../internal/trace.js";
|
|
4
|
+
/** Leaf builders delegate sibling container ops back to the parent after committing. */
|
|
5
|
+
export class LeafBuilder extends StyleChain {
|
|
6
|
+
state;
|
|
7
|
+
parent;
|
|
8
|
+
constructor(state, parent) {
|
|
9
|
+
super();
|
|
10
|
+
this.state = state;
|
|
11
|
+
this.parent = parent;
|
|
12
|
+
}
|
|
13
|
+
debugLabel(label) {
|
|
14
|
+
this.state.debugLabel = label;
|
|
15
|
+
this.state.trace = pushTrace(this.state.trace, `debugLabel(${label})`);
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
toNode() {
|
|
19
|
+
return finalizeState(this.state);
|
|
20
|
+
}
|
|
21
|
+
returnToParent() {
|
|
22
|
+
this.parent.flushPending();
|
|
23
|
+
return this.parent;
|
|
24
|
+
}
|
|
25
|
+
text(content) {
|
|
26
|
+
return this.returnToParent().text(content);
|
|
27
|
+
}
|
|
28
|
+
button(label, configure) {
|
|
29
|
+
return this.returnToParent().button(label, configure);
|
|
30
|
+
}
|
|
31
|
+
stack(optionsOrConfigure, maybeConfigure) {
|
|
32
|
+
return this.returnToParent().stack(optionsOrConfigure, maybeConfigure);
|
|
33
|
+
}
|
|
34
|
+
row(configure) {
|
|
35
|
+
return this.returnToParent().row(configure);
|
|
36
|
+
}
|
|
37
|
+
box(configure) {
|
|
38
|
+
return this.returnToParent().box(configure);
|
|
39
|
+
}
|
|
40
|
+
list(configure) {
|
|
41
|
+
return this.returnToParent().list(configure);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=leaf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaf.js","sourceRoot":"","sources":["../../src/builders/leaf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAajD,wFAAwF;AACxF,MAAM,OAAgB,WAAY,SAAQ,UAAU;IAC/B,KAAK,CAAe;IACpB,MAAM,CAAmB;IAE5C,YAAY,KAAmB,EAAE,MAAwB;QACvD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,KAAK,GAAG,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAES,cAAc;QACtB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,SAAsC;QAC1D,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAOD,KAAK,CACH,kBAA+D,EAC/D,cAA0C;QAE1C,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAChC,kBAAkC,EAClC,cAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,SAAmC;QACrC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,SAAmC;QACrC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,SAAoC;QACvC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LattixNode } from "@lattix/core";
|
|
2
|
+
import { explainNode, type CreateTreeOptions, type LattixValidatedTree } from "@lattix/diagnostics";
|
|
3
|
+
import { ContainerBuilder } from "./container.js";
|
|
4
|
+
export type ScreenCallback = (screen: ScreenBuilder) => void;
|
|
5
|
+
/** @deprecated Use tree.validation — validation is always attached on toTree(). */
|
|
6
|
+
export type LattixDebugInfo = LattixValidatedTree & {
|
|
7
|
+
readonly printed: string;
|
|
8
|
+
};
|
|
9
|
+
/** Root screen builder — entry point for fluent UI definitions. */
|
|
10
|
+
export declare class ScreenBuilder extends ContainerBuilder {
|
|
11
|
+
constructor(id: string, configure?: ScreenCallback);
|
|
12
|
+
toNode(): LattixNode;
|
|
13
|
+
/**
|
|
14
|
+
* Build the semantic tree. Validation and per-node diagnostics are automatic.
|
|
15
|
+
* Throws in strict mode when the tree is invalid (default).
|
|
16
|
+
*/
|
|
17
|
+
toTree(options?: CreateTreeOptions): LattixValidatedTree;
|
|
18
|
+
/**
|
|
19
|
+
* Explain a node at a semantic path using diagnostics already on the tree.
|
|
20
|
+
*/
|
|
21
|
+
explain(path: string, options?: CreateTreeOptions): ReturnType<typeof explainNode>;
|
|
22
|
+
/** Pretty-print the tree with builder traces and validation summary. */
|
|
23
|
+
debug(options?: CreateTreeOptions): LattixDebugInfo;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=screen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/builders/screen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAEL,WAAW,EAEX,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAE7D,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,mEAAmE;AACnE,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc;IAczC,MAAM,IAAI,UAAU;IAI7B;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,mBAAmB;IAIxD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC;IAKlF,wEAAwE;IACxE,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe;CAOpD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createTree, explainNode, printTree, } from "@lattix/diagnostics";
|
|
2
|
+
import { ContainerBuilder } from "./container.js";
|
|
3
|
+
/** Root screen builder — entry point for fluent UI definitions. */
|
|
4
|
+
export class ScreenBuilder extends ContainerBuilder {
|
|
5
|
+
constructor(id, configure) {
|
|
6
|
+
const state = {
|
|
7
|
+
kind: "screen",
|
|
8
|
+
id,
|
|
9
|
+
props: {},
|
|
10
|
+
style: {},
|
|
11
|
+
children: [],
|
|
12
|
+
trace: [`Screen(${JSON.stringify(id)})`],
|
|
13
|
+
};
|
|
14
|
+
super(state);
|
|
15
|
+
configure?.(this);
|
|
16
|
+
this.flushPending();
|
|
17
|
+
}
|
|
18
|
+
toNode() {
|
|
19
|
+
return super.toNode();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build the semantic tree. Validation and per-node diagnostics are automatic.
|
|
23
|
+
* Throws in strict mode when the tree is invalid (default).
|
|
24
|
+
*/
|
|
25
|
+
toTree(options) {
|
|
26
|
+
return createTree(this.toNode(), options);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Explain a node at a semantic path using diagnostics already on the tree.
|
|
30
|
+
*/
|
|
31
|
+
explain(path, options) {
|
|
32
|
+
const tree = this.toTree(options);
|
|
33
|
+
return explainNode(tree, path, { diagnostics: tree.validation.diagnostics });
|
|
34
|
+
}
|
|
35
|
+
/** Pretty-print the tree with builder traces and validation summary. */
|
|
36
|
+
debug(options) {
|
|
37
|
+
const tree = this.toTree(options);
|
|
38
|
+
return {
|
|
39
|
+
...tree,
|
|
40
|
+
printed: printTree(tree, { showBuilderTrace: true }),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/builders/screen.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,GAGV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAUlD,mEAAmE;AACnE,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,EAAU,EAAE,SAA0B;QAChD,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC;SACzC,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEQ,MAAM;QACb,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAA2B;QAChC,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY,EAAE,OAA2B;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,OAA2B;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/builders/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,qBAAa,WAAY,SAAQ,WAAW;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/builders/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,OAAO,WAAY,SAAQ,WAAW;CAAG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Screen, screen } from "./screen.js";
|
|
2
|
+
export { ScreenBuilder, type ScreenCallback, type LattixDebugInfo } from "./builders/screen.js";
|
|
3
|
+
export { ContainerBuilder, type StackOptions } from "./builders/container.js";
|
|
4
|
+
export { TextBuilder } from "./builders/text.js";
|
|
5
|
+
export { ButtonBuilder } from "./builders/button.js";
|
|
6
|
+
export { StackBuilder, RowBuilder, BoxBuilder, ListBuilder, } from "./builders/container.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Screen, screen } from "./screen.js";
|
|
2
|
+
export { ScreenBuilder } from "./builders/screen.js";
|
|
3
|
+
export { ContainerBuilder } from "./builders/container.js";
|
|
4
|
+
export { TextBuilder } from "./builders/text.js";
|
|
5
|
+
export { ButtonBuilder } from "./builders/button.js";
|
|
6
|
+
export { StackBuilder, RowBuilder, BoxBuilder, ListBuilder, } from "./builders/container.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAA6C,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAqB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LattixNode } from "@lattix/core";
|
|
2
|
+
import type { BuilderState } from "./types.js";
|
|
3
|
+
/** Convert builder state into a normalized semantic node with built-in validation and styles. */
|
|
4
|
+
export declare const finalizeState: (state: BuilderState) => LattixNode;
|
|
5
|
+
//# sourceMappingURL=finalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/internal/finalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,iGAAiG;AACjG,eAAO,MAAM,aAAa,GAAI,OAAO,YAAY,KAAG,UAkBnD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createNode, validateNodeShallow } from "@lattix/core";
|
|
2
|
+
import { validateNodeStyle } from "@lattix/tokens";
|
|
3
|
+
/** Convert builder state into a normalized semantic node with built-in validation and styles. */
|
|
4
|
+
export const finalizeState = (state) => {
|
|
5
|
+
const style = Object.keys(state.style).length > 0
|
|
6
|
+
? state.style
|
|
7
|
+
: undefined;
|
|
8
|
+
const node = createNode(state.kind, {
|
|
9
|
+
id: state.id,
|
|
10
|
+
debugLabel: state.debugLabel,
|
|
11
|
+
props: { ...state.props },
|
|
12
|
+
style,
|
|
13
|
+
animation: state.animation,
|
|
14
|
+
children: state.children.length > 0 ? [...state.children] : undefined,
|
|
15
|
+
builderTrace: state.trace.length > 0 ? [...state.trace] : undefined,
|
|
16
|
+
});
|
|
17
|
+
const withStyle = validateNodeStyle(node);
|
|
18
|
+
return validateNodeShallow(withStyle.node).node;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=finalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/internal/finalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,iGAAiG;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAc,EAAE;IAC/D,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QACjC,CAAC,CAAE,KAAK,CAAC,KAA6B;QACtC,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE;QAClC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;QACzB,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LattixAnimation, LattixAnimationPreset } from "@lattix/core";
|
|
2
|
+
import type { BuilderState, StyleInput } from "./types.js";
|
|
3
|
+
/** Shared style chaining for container and leaf builders. */
|
|
4
|
+
export declare abstract class StyleChain {
|
|
5
|
+
protected abstract readonly state: BuilderState;
|
|
6
|
+
protected setStyle(key: string, value: StyleInput, op: string): this;
|
|
7
|
+
animate(preset: LattixAnimationPreset, options?: Omit<LattixAnimation, "preset">): this;
|
|
8
|
+
padding(value: StyleInput): this;
|
|
9
|
+
margin(value: StyleInput): this;
|
|
10
|
+
marginTop(value: StyleInput): this;
|
|
11
|
+
background(value: StyleInput): this;
|
|
12
|
+
color(value: StyleInput): this;
|
|
13
|
+
gap(value: StyleInput): this;
|
|
14
|
+
radius(value: StyleInput): this;
|
|
15
|
+
fontSize(value: StyleInput): this;
|
|
16
|
+
weight(value: StyleInput): this;
|
|
17
|
+
size(value: StyleInput): this;
|
|
18
|
+
width(value: StyleInput): this;
|
|
19
|
+
height(value: StyleInput): this;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/internal/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D,6DAA6D;AAC7D,8BAAsB,UAAU;IAC9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAEhD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAMpE,OAAO,CACL,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAM,GAC5C,IAAI;IAMP,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIhC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI/B,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIlC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAInC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI9B,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI5B,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI/B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI/B,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI7B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI9B,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAGhC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { pushTrace } from "./trace.js";
|
|
2
|
+
/** Shared style chaining for container and leaf builders. */
|
|
3
|
+
export class StyleChain {
|
|
4
|
+
setStyle(key, value, op) {
|
|
5
|
+
this.state.style[key] = value;
|
|
6
|
+
this.state.trace = pushTrace(this.state.trace, op);
|
|
7
|
+
return this;
|
|
8
|
+
}
|
|
9
|
+
animate(preset, options = {}) {
|
|
10
|
+
this.state.animation = { preset, ...options };
|
|
11
|
+
this.state.trace = pushTrace(this.state.trace, `animate(${preset})`);
|
|
12
|
+
return this;
|
|
13
|
+
}
|
|
14
|
+
padding(value) {
|
|
15
|
+
return this.setStyle("padding", value, "padding");
|
|
16
|
+
}
|
|
17
|
+
margin(value) {
|
|
18
|
+
return this.setStyle("margin", value, "margin");
|
|
19
|
+
}
|
|
20
|
+
marginTop(value) {
|
|
21
|
+
return this.setStyle("marginTop", value, "marginTop");
|
|
22
|
+
}
|
|
23
|
+
background(value) {
|
|
24
|
+
return this.setStyle("background", value, "background");
|
|
25
|
+
}
|
|
26
|
+
color(value) {
|
|
27
|
+
return this.setStyle("color", value, "color");
|
|
28
|
+
}
|
|
29
|
+
gap(value) {
|
|
30
|
+
return this.setStyle("gap", value, "gap");
|
|
31
|
+
}
|
|
32
|
+
radius(value) {
|
|
33
|
+
return this.setStyle("borderRadius", value, "radius");
|
|
34
|
+
}
|
|
35
|
+
fontSize(value) {
|
|
36
|
+
return this.setStyle("fontSize", value, "fontSize");
|
|
37
|
+
}
|
|
38
|
+
weight(value) {
|
|
39
|
+
return this.setStyle("fontWeight", value, "weight");
|
|
40
|
+
}
|
|
41
|
+
size(value) {
|
|
42
|
+
return this.fontSize(value);
|
|
43
|
+
}
|
|
44
|
+
width(value) {
|
|
45
|
+
return this.setStyle("width", value, "width");
|
|
46
|
+
}
|
|
47
|
+
height(value) {
|
|
48
|
+
return this.setStyle("height", value, "height");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/internal/style.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,6DAA6D;AAC7D,MAAM,OAAgB,UAAU;IAGpB,QAAQ,CAAC,GAAW,EAAE,KAAiB,EAAE,EAAU;QAC3D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAA6B,EAC7B,UAA2C,EAAE;QAE7C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,MAAM,GAAG,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAiB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,KAAiB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAiB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,KAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,CAAC,KAAiB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,KAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAiB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/internal/trace.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,MAAM,EAAE,EACxB,WAAW,MAAM,KAChB,SAAS,MAAM,EAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/internal/trace.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAwB,EACxB,SAAiB,EACE,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LattixAnimation, LattixNode, LattixNodeKind } from "@lattix/core";
|
|
2
|
+
import type { LattixStyleValue } from "@lattix/core";
|
|
3
|
+
/** Mutable state while authoring — never stored on semantic nodes. */
|
|
4
|
+
export interface BuilderState {
|
|
5
|
+
kind: LattixNodeKind | (string & {});
|
|
6
|
+
id?: string;
|
|
7
|
+
debugLabel?: string;
|
|
8
|
+
props: Record<string, unknown>;
|
|
9
|
+
style: Record<string, LattixStyleValue>;
|
|
10
|
+
animation?: LattixAnimation | readonly LattixAnimation[];
|
|
11
|
+
children: LattixNode[];
|
|
12
|
+
trace: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export type StyleInput = LattixStyleValue;
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAElE,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,CAAC;IACzD,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":""}
|
package/dist/screen.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ScreenBuilder, type ScreenCallback } from "./builders/screen.js";
|
|
2
|
+
/** Create a screen using PascalCase entry (matches component naming). */
|
|
3
|
+
export declare const Screen: (id: string, configure?: ScreenCallback) => ScreenBuilder;
|
|
4
|
+
/** Create a screen using lowercase entry. */
|
|
5
|
+
export declare const screen: (id: string, configure?: ScreenCallback) => ScreenBuilder;
|
|
6
|
+
//# sourceMappingURL=screen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,yEAAyE;AACzE,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,EAAE,YAAY,cAAc,KAAG,aAC9B,CAAC;AAEnC,6CAA6C;AAC7C,eAAO,MAAM,MAAM,OAJQ,MAAM,cAAc,cAAc,KAAG,aAIpC,CAAC"}
|
package/dist/screen.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ScreenBuilder } from "./builders/screen.js";
|
|
2
|
+
/** Create a screen using PascalCase entry (matches component naming). */
|
|
3
|
+
export const Screen = (id, configure) => new ScreenBuilder(id, configure);
|
|
4
|
+
/** Create a screen using lowercase entry. */
|
|
5
|
+
export const screen = Screen;
|
|
6
|
+
//# sourceMappingURL=screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E,yEAAyE;AACzE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,SAA0B,EAAiB,EAAE,CAC9E,IAAI,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAEnC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lattix/dsl",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Fluent authoring DSL that compiles to Lattix semantic trees",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": ["dist"],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"clean": "rm -rf dist *.tsbuildinfo",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@lattix/core": "0.1.0",
|
|
25
|
+
"@lattix/diagnostics": "0.1.0",
|
|
26
|
+
"@lattix/tokens": "0.1.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"typescript": "^5.7.3",
|
|
30
|
+
"vitest": "^3.0.5"
|
|
31
|
+
}
|
|
32
|
+
}
|