@visual-platform/runtime-core 0.2.0 → 0.4.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/events.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type Flow, type FlowTrigger, type MotionEntry, type MotionPreset, type MotionSettings, type NodeLifecycle } from "@visual-platform/contracts";
1
2
  import { type ReactNode } from "react";
2
3
  export type EventKind = "click" | "change" | "blur" | "enter" | "submit" | "reset" | "toggle";
3
4
  /**
@@ -28,6 +29,8 @@ export type VisualEvent<V = unknown> = {
28
29
  title?: string;
29
30
  /** @deprecated use value (Accordion). */
30
31
  open?: boolean;
32
+ /** Action input computed on the server from the data this block was rendered with (ADR-048). */
33
+ input?: Record<string, unknown>;
31
34
  /** Stop the browser default (e.g. following a link). */
32
35
  preventDefault(): void;
33
36
  nativeEvent: Event;
@@ -58,12 +61,82 @@ export declare function VisualEvents(p: {
58
61
  } | null>>;
59
62
  /** The serializable part of an event (for Server Actions, logs, analytics). */
60
63
  export declare function eventData<V>(e: VisualEvent<V>): VisualEventData<V>;
64
+ /** Steps chosen in Studio after an action (ADR-048): a toast, a navigation or a data refresh. */
65
+ type Step = {
66
+ kind: "toast";
67
+ text: string;
68
+ } | {
69
+ kind: "navigate";
70
+ href: string;
71
+ } | {
72
+ kind: "refresh";
73
+ };
74
+ type Steps = Partial<Record<EventKind, {
75
+ success?: Step | undefined;
76
+ error?: Step | undefined;
77
+ }>>;
78
+ /** Page state for flows and state showIf: a tiny store gates subscribe to (re-render only what reads it). */
79
+ export type FlowStateStore = {
80
+ get(): Record<string, unknown>;
81
+ set(key: string, value: unknown): void;
82
+ subscribe(listener: () => void): () => void;
83
+ };
84
+ type FlowCtx = {
85
+ flows: Map<string, Flow>;
86
+ store: FlowStateStore;
87
+ presets: Record<string, MotionPreset>;
88
+ motion?: MotionSettings | undefined;
89
+ };
90
+ type Trigger = FlowTrigger;
91
+ /**
92
+ * Flows of the document (page or component; library flows included by delivery), the page state (initial
93
+ * values + `set` steps) and the page triggers. One per document; nested providers share the parent state.
94
+ */
95
+ export declare function FlowProvider(p: {
96
+ flows: Flow[];
97
+ initialState?: Record<string, unknown> | undefined;
98
+ triggers?: Trigger[] | undefined;
99
+ triggerInputs?: Record<string, Record<string, unknown>> | undefined;
100
+ /** Presets used by "animate" steps (ADR-052) + motion settings for easing tokens. */
101
+ presets?: Record<string, MotionPreset> | undefined;
102
+ motion?: MotionSettings | undefined;
103
+ children?: ReactNode;
104
+ }): import("react").FunctionComponentElement<import("react").ProviderProps<FlowCtx | null>>;
105
+ /**
106
+ * Block lifecycle (ADR-051): runs flows/handlers when the block mounts, unmounts, scrolls into or out of
107
+ * view, or every N seconds while it is shown. Never in the editor. Server-read values (item.*) come as `inputs`.
108
+ */
109
+ export declare function LifecycleBoundary(p: {
110
+ nodeId: string;
111
+ type: string;
112
+ lifecycle: NodeLifecycle;
113
+ inputs?: Record<string, Record<string, unknown>> | undefined;
114
+ itemIndex?: number | undefined;
115
+ children?: ReactNode;
116
+ }): import("react").DetailedReactHTMLElement<{
117
+ ref: import("react").RefObject<HTMLSpanElement | null>;
118
+ "data-vp-lifecycle": string;
119
+ style: {
120
+ display: "contents";
121
+ };
122
+ }, HTMLSpanElement>;
123
+ /**
124
+ * A block whose showIf reads the page state (ADR-050): shown/hidden in the browser as flows change the
125
+ * state. Other paths of the condition were read on the server (`server`). Server render uses the initial state.
126
+ */
127
+ export declare function StateGate(p: {
128
+ when: string;
129
+ server?: Record<string, unknown> | undefined;
130
+ children?: ReactNode;
131
+ }): import("react").FunctionComponentElement<import("react").FragmentProps> | null;
61
132
  /** Wraps one node that has event bindings; `display: contents` keeps layout untouched. */
62
133
  export declare function EventBoundary(p: {
63
134
  nodeId: string;
64
135
  type: string;
65
136
  events: Partial<Record<EventKind, string>>;
66
137
  itemIndex?: number;
138
+ inputs?: Record<string, Record<string, unknown>>;
139
+ steps?: Steps;
67
140
  children?: ReactNode;
68
141
  }): import("react").DetailedReactHTMLElement<{
69
142
  ref: import("react").RefObject<HTMLSpanElement | null>;
@@ -72,4 +145,17 @@ export declare function EventBoundary(p: {
72
145
  display: "contents";
73
146
  };
74
147
  }, HTMLSpanElement>;
148
+ /**
149
+ * Turns animations on for this document (`.vp-motion`, so visitors without JS see content) and starts
150
+ * entrance animations: at mount, or when the block comes into view (15 %). Repeat copies and staggered
151
+ * children get --vp-stagger. Blocks that appear later (state gates, client data) are picked up too.
152
+ */
153
+ export declare function MotionObserver(p: {
154
+ entries: MotionEntry[];
155
+ }): import("react").DetailedReactHTMLElement<{
156
+ ref: import("react").RefObject<HTMLSpanElement | null>;
157
+ "data-vp-motion": string;
158
+ hidden: true;
159
+ }, HTMLSpanElement>;
160
+ export {};
75
161
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpG,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9F;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI;IACrC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,KAAK,EAAE,CAAC,CAAC;IACT,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,cAAc,IAAI,IAAI,CAAC;IACvB,WAAW,EAAE,KAAK,CAAC;CACpB,CAAC;AACF,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAC7C,mEAAmE;AACnE,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC;AAClG,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1F,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;AAGtF,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAIpD;AAaD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE;cATvJ,mBAAmB;YAAU,kBAAkB,GAAG,SAAS;WAiBhG;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAGlE;AAID,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE;;;;;;oBA4DtJ"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.tsx"],"names":[],"mappings":"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"}
package/dist/events.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { createContext, createElement, useContext, useEffect, useRef } from "react";
2
+ import { matchFilter, MAX_FLOW_DEPTH, parseFilter, presetKeyframes, readPath, resolveEasing } from "@visual-platform/contracts";
3
+ import { createContext, createElement, Fragment, useContext, useEffect, useRef, useSyncExternalStore } from "react";
3
4
  const warned = new Set();
4
5
  /** One console warning per problem (a button clicked 50 times warns once). */
5
6
  export function warnOnce(key, message) {
@@ -8,15 +9,18 @@ export function warnOnce(key, message) {
8
9
  warned.add(key);
9
10
  console.warn(message);
10
11
  }
11
- /** Call an app handler; sync throws and async rejections become console warnings. */
12
+ /** Call an app handler; sync throws and async rejections become console warnings. Resolves to { ok, result }. */
12
13
  function safeCall(fn, payload, name) {
13
14
  try {
14
15
  const r = fn(payload);
15
- if (r && typeof r.then === "function")
16
- r.then(undefined, (e) => console.warn(`[visual] handler "${name}" failed — ignored.`, e));
16
+ if (r && typeof r.then === "function") {
17
+ return r.then((result) => ({ ok: true, result }), (e) => { console.warn(`[visual] handler "${name}" failed — ignored.`, e); return { ok: false }; });
18
+ }
19
+ return Promise.resolve({ ok: true, result: r });
17
20
  }
18
21
  catch (e) {
19
22
  console.warn(`[visual] handler "${name}" threw — ignored.`, e);
23
+ return Promise.resolve({ ok: false });
20
24
  }
21
25
  }
22
26
  const Ctx = createContext(null);
@@ -42,6 +46,396 @@ export function eventData(e) {
42
46
  const { preventDefault: _p, nativeEvent: _n, ...data } = e;
43
47
  return JSON.parse(JSON.stringify(data));
44
48
  }
49
+ function showToast(text, error) {
50
+ if (typeof document === "undefined")
51
+ return;
52
+ let host = document.querySelector("[data-vp-toasts]");
53
+ if (!host) {
54
+ host = document.createElement("div");
55
+ host.setAttribute("data-vp-toasts", "");
56
+ host.setAttribute("role", "status");
57
+ host.setAttribute("aria-live", "polite");
58
+ Object.assign(host.style, { position: "fixed", insetInline: "0", bottom: "16px", display: "grid", justifyItems: "center", gap: "8px", zIndex: "2147483000", pointerEvents: "none" });
59
+ document.body.appendChild(host);
60
+ }
61
+ const t = document.createElement("div");
62
+ t.textContent = text; // text only — never HTML
63
+ Object.assign(t.style, { background: error ? "#991b1b" : "#111827", color: "#fff", padding: "10px 16px", borderRadius: "8px", font: "14px/1.4 system-ui, sans-serif", boxShadow: "0 4px 16px rgba(0,0,0,.2)", maxWidth: "min(90vw, 420px)" });
64
+ host.appendChild(t);
65
+ setTimeout(() => t.remove(), 4000);
66
+ }
67
+ /** Run one step; the action result may carry `revalidated` source names (SDK actions). */
68
+ function runStep(step, result, error) {
69
+ const revalidated = result?.revalidated;
70
+ if (Array.isArray(revalidated) && revalidated.length && typeof window !== "undefined")
71
+ window.dispatchEvent(new CustomEvent("vp:sources-changed", { detail: { names: revalidated } }));
72
+ if (!step || typeof window === "undefined")
73
+ return;
74
+ if (step.kind === "toast")
75
+ showToast(step.text, error);
76
+ else if (step.kind === "navigate" && /^(\/(?!\/)|https?:\/\/)/.test(step.href))
77
+ window.location.assign(step.href);
78
+ else if (step.kind === "refresh")
79
+ window.dispatchEvent(new CustomEvent("vp:refresh"));
80
+ }
81
+ function createStateStore(initial) {
82
+ let state = { ...initial };
83
+ const listeners = new Set();
84
+ return {
85
+ get: () => state,
86
+ set: (key, value) => { state = { ...state, [key]: value }; listeners.forEach((l) => l()); },
87
+ subscribe: (l) => { listeners.add(l); return () => { listeners.delete(l); }; },
88
+ };
89
+ }
90
+ const FlowContext = createContext(null);
91
+ /**
92
+ * Run a flow by name — or, if no flow has that name, the app handler of that name (VisualEvents), so
93
+ * developers can implement onMount-style names in code. Shared by events, block lifecycle and page triggers.
94
+ */
95
+ function runByName(name, o) {
96
+ const flow = o.ctx?.flows.get(name);
97
+ if (flow && o.ctx) {
98
+ void runSteps(flow.steps, { event: o.event, steps: {}, args: {}, server: o.server ?? {}, ctx: o.ctx, handlers: o.handlers, base: o.base }, 1, flow.name)
99
+ .catch((x) => console.warn(`[visual] flow "${flow.name}" failed — stopped.`, x));
100
+ return;
101
+ }
102
+ const h = o.handlers[name];
103
+ if (typeof h === "function")
104
+ void safeCall(h, { ...o.base, name, ...(o.server && Object.keys(o.server).length ? { input: o.server } : {}) }, name);
105
+ else
106
+ warnOnce(`named-missing:${name}`, `[visual] "${name}" (${o.event.trigger ?? o.event.lifecycle ?? "event"}) has no flow or handler — ignored.`);
107
+ }
108
+ const plainBase = (elementType, nodeId, detail) => ({ kind: "click", nodeId, elementType, value: undefined, detail, preventDefault: () => { }, nativeEvent: new Event("vp") });
109
+ /**
110
+ * Flows of the document (page or component; library flows included by delivery), the page state (initial
111
+ * values + `set` steps) and the page triggers. One per document; nested providers share the parent state.
112
+ */
113
+ export function FlowProvider(p) {
114
+ const parent = useContext(FlowContext);
115
+ const handlers = useContext(Ctx);
116
+ const ref = useRef(null);
117
+ if (!ref.current)
118
+ ref.current = { flows: new Map(), store: parent?.store ?? createStateStore(p.initialState ?? {}), presets: {} };
119
+ ref.current.flows = new Map([...(parent?.flows ?? []), ...p.flows.map((f) => [f.name, f])]);
120
+ ref.current.presets = { ...(parent?.presets ?? {}), ...(p.presets ?? {}) };
121
+ ref.current.motion = p.motion ?? parent?.motion;
122
+ const handlersRef = useRef(handlers);
123
+ handlersRef.current = handlers;
124
+ useEffect(() => {
125
+ const cleanups = [];
126
+ const fire = (t, detail = {}) => runByName(t.flow, {
127
+ ctx: ref.current, handlers: (handlersRef.current?.handlers ?? {}), server: p.triggerInputs?.[t.flow],
128
+ event: { trigger: t.on, ...detail }, base: plainBase("Page", "", { trigger: t.on, ...detail }),
129
+ });
130
+ for (const t of p.triggers ?? []) {
131
+ const once = t.once ?? true;
132
+ let done = false;
133
+ const fireOnce = (detail) => { if (once && done)
134
+ return; done = true; fire(t, detail); };
135
+ const listen = (target, type, fn, opts) => { target.addEventListener(type, fn, opts); cleanups.push(() => target.removeEventListener(type, fn, opts)); };
136
+ switch (t.on) {
137
+ case "load": {
138
+ const id = setTimeout(() => fire(t), t.delayMs ?? 0);
139
+ cleanups.push(() => clearTimeout(id));
140
+ break;
141
+ }
142
+ case "exitIntent":
143
+ listen(document, "mouseout", (e) => { const m = e; if (!m.relatedTarget && m.clientY <= 0)
144
+ fireOnce(); });
145
+ break;
146
+ case "scroll": {
147
+ const check = () => { const h = document.documentElement.scrollHeight - window.innerHeight; const pct = h <= 0 ? 100 : (window.scrollY / h) * 100; if (pct >= (t.percent ?? 50))
148
+ fireOnce({ percent: Math.round(pct) }); };
149
+ listen(window, "scroll", check, { passive: true });
150
+ break;
151
+ }
152
+ case "idle": {
153
+ let id;
154
+ const arm = () => { clearTimeout(id); if (once && done)
155
+ return; id = setTimeout(() => fireOnce(), t.ms ?? 30_000); };
156
+ for (const type of ["mousemove", "keydown", "scroll", "touchstart", "pointerdown"])
157
+ listen(window, type, arm, { passive: true });
158
+ arm();
159
+ cleanups.push(() => clearTimeout(id));
160
+ break;
161
+ }
162
+ case "interval": {
163
+ let n = 0;
164
+ const id = setInterval(() => { n++; fire(t, { count: n }); if (t.max && n >= t.max)
165
+ clearInterval(id); }, t.ms ?? 60_000);
166
+ cleanups.push(() => clearInterval(id));
167
+ break;
168
+ }
169
+ case "tabHidden":
170
+ case "tabVisible":
171
+ listen(document, "visibilitychange", () => { if ((document.visibilityState === "hidden") === (t.on === "tabHidden"))
172
+ fireOnce(); });
173
+ break;
174
+ case "leave":
175
+ listen(window, "pagehide", () => fire(t));
176
+ break;
177
+ }
178
+ }
179
+ return () => cleanups.forEach((c) => c());
180
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps — triggers are set up once per page view
181
+ return createElement(FlowContext.Provider, { value: ref.current }, p.children);
182
+ }
183
+ /**
184
+ * Block lifecycle (ADR-051): runs flows/handlers when the block mounts, unmounts, scrolls into or out of
185
+ * view, or every N seconds while it is shown. Never in the editor. Server-read values (item.*) come as `inputs`.
186
+ */
187
+ export function LifecycleBoundary(p) {
188
+ const ref = useRef(null);
189
+ const flowCtx = useContext(FlowContext);
190
+ const handlers = useContext(Ctx);
191
+ const live = useRef({ flowCtx, handlers });
192
+ live.current = { flowCtx, handlers };
193
+ const pendingUnmount = useRef(null);
194
+ const mounted = useRef(false);
195
+ useEffect(() => {
196
+ const l = p.lifecycle;
197
+ const run = (name, kind, extra = {}) => {
198
+ if (!name)
199
+ return;
200
+ const detail = { lifecycle: kind, ...(p.itemIndex !== undefined ? { itemIndex: p.itemIndex } : {}), ...extra };
201
+ runByName(name, { ctx: live.current.flowCtx, handlers: (live.current.handlers?.handlers ?? {}), server: p.inputs?.[name], event: detail, base: plainBase(p.type, p.nodeId, detail) });
202
+ };
203
+ // React StrictMode (development) unmounts and remounts once: a quick remount cancels the unmount.
204
+ if (pendingUnmount.current) {
205
+ clearTimeout(pendingUnmount.current);
206
+ pendingUnmount.current = null;
207
+ }
208
+ else if (!mounted.current) {
209
+ mounted.current = true;
210
+ run(l.mount, "mount");
211
+ }
212
+ const cleanups = [];
213
+ let el = ref.current?.querySelector(`[data-vp-node="${CSS.escape(p.nodeId)}"]`) ?? ref.current?.firstElementChild;
214
+ // A component scope is display: contents (no box): watch its first child instead.
215
+ if (el && typeof getComputedStyle !== "undefined" && getComputedStyle(el).display === "contents")
216
+ el = el.firstElementChild ?? el;
217
+ if (el && (l.visible || l.leave) && typeof IntersectionObserver !== "undefined") {
218
+ let seen = false;
219
+ let inView = false;
220
+ const io = new IntersectionObserver((entries) => {
221
+ for (const e of entries) {
222
+ if (e.isIntersecting && !inView) {
223
+ inView = true;
224
+ if (!(seen && (l.visibleOnce ?? true))) {
225
+ seen = true;
226
+ run(l.visible, "visible");
227
+ }
228
+ }
229
+ else if (!e.isIntersecting && inView) {
230
+ inView = false;
231
+ run(l.leave, "leave");
232
+ }
233
+ }
234
+ }, { threshold: 0.3 });
235
+ io.observe(el);
236
+ cleanups.push(() => io.disconnect());
237
+ }
238
+ if (l.every) {
239
+ let n = 0;
240
+ const id = setInterval(() => { n++; run(l.every.run, "every", { count: n }); if (l.every.max && n >= l.every.max)
241
+ clearInterval(id); }, l.every.ms);
242
+ cleanups.push(() => clearInterval(id));
243
+ }
244
+ return () => {
245
+ cleanups.forEach((c) => c());
246
+ pendingUnmount.current = setTimeout(() => { pendingUnmount.current = null; mounted.current = false; run(l.unmount, "unmount"); }, 0);
247
+ };
248
+ }, [p.nodeId]); // eslint-disable-line react-hooks/exhaustive-deps — one lifecycle per block instance
249
+ return createElement("span", { ref, "data-vp-lifecycle": "", style: { display: "contents" } }, p.children);
250
+ }
251
+ /** Nested object from { "item.price": 3 } (no prototype keys). */
252
+ function nest(values) {
253
+ const out = {};
254
+ for (const [path, v] of Object.entries(values)) {
255
+ const segs = path.split(".");
256
+ if (segs.some((s) => s === "__proto__" || s === "constructor" || s === "prototype"))
257
+ continue;
258
+ let cur = out;
259
+ segs.forEach((seg, i) => { if (i === segs.length - 1)
260
+ cur[seg] = v;
261
+ else
262
+ cur = (cur[seg] = cur[seg] && typeof cur[seg] === "object" ? cur[seg] : {}); });
263
+ }
264
+ return out;
265
+ }
266
+ /**
267
+ * A block whose showIf reads the page state (ADR-050): shown/hidden in the browser as flows change the
268
+ * state. Other paths of the condition were read on the server (`server`). Server render uses the initial state.
269
+ */
270
+ export function StateGate(p) {
271
+ const ctx = useContext(FlowContext);
272
+ const state = useSyncExternalStore(ctx?.store.subscribe ?? noopSubscribe, () => ctx?.store.get() ?? EMPTY, () => ctx?.store.get() ?? EMPTY);
273
+ let shown = false;
274
+ try {
275
+ const f = parseFilter(p.when);
276
+ shown = f ? matchFilter({ ...nest(p.server ?? {}), state }, f) : true;
277
+ }
278
+ catch {
279
+ shown = true;
280
+ }
281
+ return shown ? createElement(Fragment, null, p.children) : null;
282
+ }
283
+ const EMPTY = {};
284
+ const noopSubscribe = () => () => { };
285
+ const SAFE_NAV = /^(\/(?!\/)|https?:\/\/|mailto:|tel:)[^\s"'<>]*$/;
286
+ const STOP = Symbol("stop");
287
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
288
+ function resolveRef(r, run) {
289
+ if (!r)
290
+ return undefined;
291
+ if ("value" in r)
292
+ return r.value;
293
+ const root = r.path.split(".")[0];
294
+ if (root === "event" || root === "state" || root === "steps" || root === "args")
295
+ return readPath({ event: run.event, state: run.ctx.store.get(), steps: run.steps, args: run.args }, r.path);
296
+ return run.server[r.path];
297
+ }
298
+ const resolveRefs = (refs, run) => Object.fromEntries(Object.entries(refs ?? {}).map(([k, r]) => [k, resolveRef(r, run)]));
299
+ /** Object view of everything a condition can read: client roots + server values (nested by path). */
300
+ const conditionScope = (run) => ({ ...nest(run.server), event: run.event, state: run.ctx.store.get(), steps: run.steps, args: run.args });
301
+ const nodeEl = (id) => (typeof document === "undefined" ? null : document.querySelector(`[data-vp-node="${CSS.escape(id)}"]`));
302
+ async function runSteps(steps, run, depth, flowName) {
303
+ for (const s of steps) {
304
+ switch (s.kind) {
305
+ case "action": {
306
+ const h = run.handlers[s.action];
307
+ const input = resolveRefs(s.input, run);
308
+ let ok = false;
309
+ let result;
310
+ if (typeof h === "function") {
311
+ const payload = { ...run.base, name: s.action, input };
312
+ ({ ok, result } = await safeCall(h, payload, s.action));
313
+ if (ok && result?.ok === false)
314
+ ok = false;
315
+ }
316
+ else
317
+ warnOnce(`flow-missing:${s.action}`, `[visual] flow "${flowName}": no handler or app action "${s.action}" — treated as a failure.`);
318
+ if (s.as)
319
+ run.steps[s.as] = result;
320
+ const revalidated = result?.revalidated;
321
+ if (Array.isArray(revalidated) && revalidated.length)
322
+ window.dispatchEvent(new CustomEvent("vp:sources-changed", { detail: { names: revalidated } }));
323
+ if (!ok) {
324
+ const f = run.ctx.flows.get(flowName);
325
+ if (f?.onError?.length)
326
+ await runSteps(f.onError, run, depth, flowName);
327
+ return STOP;
328
+ }
329
+ break;
330
+ }
331
+ case "flow": {
332
+ const sub = run.ctx.flows.get(s.flow);
333
+ if (!sub) {
334
+ warnOnce(`flow-unknown:${s.flow}`, `[visual] flow "${flowName}" calls unknown flow "${s.flow}".`);
335
+ return STOP;
336
+ }
337
+ if (depth + 1 > MAX_FLOW_DEPTH) {
338
+ warnOnce(`flow-depth:${s.flow}`, `[visual] flows nest too deep (max ${MAX_FLOW_DEPTH}).`);
339
+ return STOP;
340
+ }
341
+ // A sub-flow gets its own arguments; state and step results are shared with the caller.
342
+ if ((await runSteps(sub.steps, { ...run, args: resolveRefs(s.args, run) }, depth + 1, sub.name)) === STOP)
343
+ return STOP;
344
+ break;
345
+ }
346
+ case "open":
347
+ window.dispatchEvent(new CustomEvent("vp:modal", { detail: { name: s.modal, open: true } }));
348
+ break;
349
+ case "close":
350
+ window.dispatchEvent(new CustomEvent("vp:modal", { detail: { name: s.modal ?? null, open: false } }));
351
+ break;
352
+ case "navigate": {
353
+ const href = s.href ?? String(resolveRef(s.hrefFrom, run) ?? "");
354
+ if (!SAFE_NAV.test(href)) {
355
+ warnOnce(`flow-href:${href}`, `[visual] flow "${flowName}": blocked link "${href}".`);
356
+ return STOP;
357
+ }
358
+ if (s.newTab)
359
+ window.open(href, "_blank", "noopener,noreferrer");
360
+ else {
361
+ window.location.assign(href);
362
+ return STOP;
363
+ }
364
+ break;
365
+ }
366
+ case "toast":
367
+ showToast(s.text, s.tone === "error");
368
+ break;
369
+ case "set": {
370
+ const cur = run.ctx.store.get()[s.key];
371
+ const v = resolveRef(s.value, run);
372
+ const op = s.op ?? "set";
373
+ const next = op === "toggle" ? !cur : op === "increment" ? (Number(cur) || 0) + (v === undefined ? 1 : Number(v) || 0) : op === "decrement" ? (Number(cur) || 0) - (v === undefined ? 1 : Number(v) || 0) : v;
374
+ run.ctx.store.set(s.key, next);
375
+ break;
376
+ }
377
+ case "wait":
378
+ await sleep(Math.min(Math.max(s.ms, 0), 30_000));
379
+ break;
380
+ case "scroll":
381
+ nodeEl(s.target)?.scrollIntoView({ behavior: "smooth", block: "start" });
382
+ break;
383
+ case "focus": {
384
+ const el = nodeEl(s.target);
385
+ (el?.matches("input,select,textarea,button,a[href],[tabindex]") ? el : el?.querySelector("input,select,textarea,button,a[href],[tabindex]"))?.focus();
386
+ break;
387
+ }
388
+ case "copy": {
389
+ try {
390
+ await navigator.clipboard.writeText(String(resolveRef(s.value, run) ?? ""));
391
+ }
392
+ catch {
393
+ warnOnce("flow-copy", `[visual] flow "${flowName}": the browser refused to copy.`);
394
+ }
395
+ break;
396
+ }
397
+ case "track": {
398
+ // Analytics hook: listen to "vp:track" or use a dataLayer (GTM).
399
+ const props = resolveRefs(s.props, run);
400
+ window.dispatchEvent(new CustomEvent("vp:track", { detail: { event: s.event, props, flow: flowName } }));
401
+ const dl = window.dataLayer;
402
+ if (Array.isArray(dl))
403
+ dl.push({ event: s.event, ...props });
404
+ break;
405
+ }
406
+ case "animate": {
407
+ const preset = run.ctx.presets[s.preset];
408
+ let el = nodeEl(s.target);
409
+ if (el && getComputedStyle(el).display === "contents")
410
+ el = el.firstElementChild;
411
+ const reduced = typeof matchMedia !== "undefined" && matchMedia("(prefers-reduced-motion: reduce)").matches;
412
+ if (!preset)
413
+ warnOnce(`flow-preset:${s.preset}`, `[visual] flow "${flowName}": unknown animation "${s.preset}".`);
414
+ else if (el && !reduced && "animate" in el) {
415
+ el.animate(presetKeyframes(preset), { duration: preset.duration, easing: resolveEasing(preset.easing, run.ctx.motion), iterations: preset.iterations === "infinite" ? Infinity : preset.iterations ?? 1, direction: preset.alternate ? "alternate" : "normal" });
416
+ }
417
+ break;
418
+ }
419
+ case "refresh":
420
+ window.dispatchEvent(new CustomEvent("vp:refresh"));
421
+ break;
422
+ case "if": {
423
+ let yes = false;
424
+ try {
425
+ const f = parseFilter(s.when);
426
+ yes = f ? matchFilter(conditionScope(run), f) : false;
427
+ }
428
+ catch {
429
+ yes = false;
430
+ }
431
+ if ((await runSteps(yes ? s.then : s.else ?? [], run, depth, flowName)) === STOP)
432
+ return STOP;
433
+ break;
434
+ }
435
+ case "stop": return STOP;
436
+ }
437
+ }
438
+ }
45
439
  const owner = (target) => (target instanceof Element ? target.closest("[data-vp-node]")?.getAttribute("data-vp-node") : null);
46
440
  /** Wraps one node that has event bindings; `display: contents` keeps layout untouched. */
47
441
  export function EventBoundary(p) {
@@ -49,6 +443,10 @@ export function EventBoundary(p) {
49
443
  const ctx = useContext(Ctx);
50
444
  const ctxRef = useRef(ctx);
51
445
  ctxRef.current = ctx;
446
+ const flowCtx = useContext(FlowContext);
447
+ const flowRef = useRef(flowCtx);
448
+ flowRef.current = flowCtx;
449
+ const running = useRef(false);
52
450
  useEffect(() => {
53
451
  const el = ref.current;
54
452
  if (!el)
@@ -67,21 +465,40 @@ export function EventBoundary(p) {
67
465
  : kind === "click" || kind === "reset" ? undefined
68
466
  : extra.value;
69
467
  const detail = { ...extra, ...(p.itemIndex !== undefined ? { itemIndex: p.itemIndex } : {}) };
70
- const payload = { ...extra, name, kind, nodeId: p.nodeId, elementType: p.type, value, detail, ...(p.itemIndex !== undefined ? { itemIndex: p.itemIndex } : {}), preventDefault: () => native.preventDefault(), nativeEvent: native };
468
+ const input = p.inputs?.[name];
469
+ const payload = { ...extra, name, kind, nodeId: p.nodeId, elementType: p.type, value, detail, ...(p.itemIndex !== undefined ? { itemIndex: p.itemIndex } : {}), ...(input ? { input } : {}), preventDefault: () => native.preventDefault(), nativeEvent: native };
470
+ const step = p.steps?.[kind];
471
+ // A flow with this name runs instead of a single handler (ADR-049). One run at a time per block.
472
+ const flow = flowRef.current?.flows.get(name);
473
+ if (flow) {
474
+ if (running.current)
475
+ return;
476
+ running.current = true;
477
+ const { name: _n, input: _i, ...base } = payload;
478
+ void runSteps(flow.steps, { event: { value, detail, ...(p.itemIndex !== undefined ? { itemIndex: p.itemIndex } : {}) }, steps: {}, args: {}, server: input ?? {}, ctx: flowRef.current, handlers: (ctxRef.current?.handlers ?? {}), base }, 1, flow.name)
479
+ .catch((x) => console.warn(`[visual] flow "${flow.name}" failed — stopped.`, x))
480
+ .finally(() => { running.current = false; });
481
+ return;
482
+ }
71
483
  const c = ctxRef.current;
72
484
  if (!c) {
73
485
  warnOnce("no-provider", `[visual] "${name}" (${p.type} ${kind}) fired but no <VisualEvents> wraps this content — ignored.`);
74
486
  return;
75
487
  }
76
488
  const h = c.handlers?.[name];
77
- if (typeof h === "function")
78
- safeCall(h, payload, name);
489
+ if (typeof h === "function") {
490
+ void safeCall(h, payload, name).then(({ ok, result }) => {
491
+ // SDK actions answer { ok: false, error } instead of throwing.
492
+ const failed = !ok || result?.ok === false;
493
+ runStep(failed ? step?.error : step?.success, result, failed);
494
+ });
495
+ }
79
496
  else if (h !== undefined)
80
497
  warnOnce(`bad:${name}`, `[visual] handler "${name}" is not a function (got ${typeof h}) — ignored.`);
81
498
  else if (!c.onAny)
82
499
  warnOnce(`missing:${name}`, `[visual] no handler "${name}" for ${p.type} ${kind} — pass it to <VisualEvents handlers={{ ${name}: (e) => … }}>. Ignored.`);
83
500
  if (typeof c.onAny === "function")
84
- safeCall(c.onAny, payload, "onAny");
501
+ void safeCall(c.onAny, payload, "onAny");
85
502
  }
86
503
  catch (e) {
87
504
  console.warn("[visual] event handling failed — ignored.", e);
@@ -124,7 +541,62 @@ export function EventBoundary(p) {
124
541
  el.addEventListener(type, fn, capture ?? false);
125
542
  return () => { for (const [type, fn, capture] of on)
126
543
  el.removeEventListener(type, fn, capture ?? false); };
127
- }, [p.nodeId, p.type, p.events]);
544
+ }, [p.nodeId, p.type, p.events, p.inputs, p.steps]);
128
545
  return createElement("span", { ref, "data-vp-events": Object.values(p.events).join(" "), style: { display: "contents" } }, p.children);
129
546
  }
547
+ // ---------- animations (ADR-052) ----------
548
+ /**
549
+ * Turns animations on for this document (`.vp-motion`, so visitors without JS see content) and starts
550
+ * entrance animations: at mount, or when the block comes into view (15 %). Repeat copies and staggered
551
+ * children get --vp-stagger. Blocks that appear later (state gates, client data) are picked up too.
552
+ */
553
+ export function MotionObserver(p) {
554
+ const ref = useRef(null);
555
+ useEffect(() => {
556
+ const root = (ref.current?.closest("[data-vp-root]") ?? document.documentElement);
557
+ root.classList.add("vp-motion");
558
+ const meta = new WeakMap();
559
+ const replay = (el) => { el.style.animation = "none"; void el.offsetWidth; el.style.animation = ""; };
560
+ const io = typeof IntersectionObserver !== "undefined" ? new IntersectionObserver((list) => {
561
+ for (const e of list) {
562
+ const m = meta.get(e.target);
563
+ if (!m)
564
+ continue;
565
+ if (e.isIntersecting) {
566
+ e.target.setAttribute("data-vp-in", "");
567
+ if (m.once)
568
+ io.unobserve(e.target);
569
+ }
570
+ else if (!m.once && e.target.hasAttribute("data-vp-in")) {
571
+ e.target.removeAttribute("data-vp-in");
572
+ replay(e.target);
573
+ }
574
+ }
575
+ }, { threshold: 0.15 }) : null;
576
+ const seen = new WeakSet();
577
+ const scan = () => {
578
+ for (const m of p.entries) {
579
+ root.querySelectorAll(m.sel).forEach((el, i) => {
580
+ if (seen.has(el))
581
+ return;
582
+ seen.add(el);
583
+ const stagger = (m.offsetMs ?? 0) + (m.staggerMs ? i * m.staggerMs : 0);
584
+ if (stagger)
585
+ el.style.setProperty("--vp-stagger", `${stagger}ms`);
586
+ if (m.trigger === "mount" || !io)
587
+ requestAnimationFrame(() => el.setAttribute("data-vp-in", ""));
588
+ else {
589
+ meta.set(el, m);
590
+ io.observe(el);
591
+ }
592
+ });
593
+ }
594
+ };
595
+ scan();
596
+ const mo = typeof MutationObserver !== "undefined" ? new MutationObserver(scan) : null;
597
+ mo?.observe(root, { childList: true, subtree: true });
598
+ return () => { io?.disconnect(); mo?.disconnect(); };
599
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps — one observer per document view
600
+ return createElement("span", { ref, "data-vp-motion": "", hidden: true });
601
+ }
130
602
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.tsx"],"names":[],"mappings":"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"}
package/dist/render.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type ComponentNode, type PageDocument } from "@visual-platform/contracts";
1
+ import { type Flow, type ComponentNode, type PageDocument } from "@visual-platform/contracts";
2
2
  import { type ReactNode } from "react";
3
3
  import type { VisualRegistry } from "./registry.js";
4
4
  import type { DesignSnapshot } from "@visual-platform/contracts";
@@ -23,17 +23,37 @@ export type RenderOptions = {
23
23
  locale?: string | undefined;
24
24
  /** Text direction of the content (ADR-035): set as `dir` on the root so rtl locales mirror the layout. */
25
25
  dir?: "ltr" | "rtl" | undefined;
26
+ /** Data inputs whose source failed with fallback "hide" (ADR-048): blocks reading them render nothing. */
27
+ unavailable?: ReadonlySet<string> | undefined;
28
+ /**
29
+ * Data inputs still loading (ADR-048 `stream: true`): blocks reading them render inside <Suspense>
30
+ * and appear when the promise settles; the rest of the page does not wait. Resolve to undefined on failure.
31
+ */
32
+ deferred?: ReadonlyMap<string, Promise<unknown>> | undefined;
33
+ /** Extra props per node (ADR-048 `needs`): data the app injects into components that declare it. Bound props win. */
34
+ injectProps?: ((node: ComponentNode) => Record<string, unknown> | undefined) | undefined;
35
+ /** Editor previews: never run block lifecycle (mount/visible/every) while editing (ADR-051). */
36
+ noLifecycle?: boolean | undefined;
37
+ /**
38
+ * Where a page link (`{ kind: "page", pageKey }`) points in this app. Runs on the server while rendering;
39
+ * the result is set as the link's `href` (relative or https). Omitted → `/<pageKey>`.
40
+ */
41
+ pageHref?: ((link: {
42
+ pageKey: string;
43
+ anchor?: string | undefined;
44
+ locale?: string | undefined;
45
+ }) => string | undefined) | undefined;
46
+ /** Flows of the document (ADR-049); renderDocument reads them from root.props.flows. */
47
+ flows?: Flow[] | undefined;
48
+ /** Inputs of Server-Action events (ADR-048 actions): event name → values computed from the data scope at render. */
49
+ eventInput?: ((eventName: string, scope: Record<string, unknown>) => Record<string, unknown> | undefined) | undefined;
26
50
  };
27
51
  type Scope = Record<string, unknown>;
28
52
  /** Directional glyphs (arrows) mirror in right-to-left locales (ADR-035). */
29
53
  export declare const RTL_CSS = "[dir=rtl] [data-vp-flip-rtl]{transform:scaleX(-1)}";
30
54
  /** Props with data bindings applied; a value that is missing or does not fit keeps the static prop. */
31
55
  export declare function bindProps(node: ComponentNode, opts: Pick<RenderOptions, "registry" | "locale">, scope: Scope): Record<string, unknown>;
32
- /**
33
- * Render a PageDocument with the local registry. Pure function of its inputs → works in
34
- * React Server Components and on the client. Emits one <style> with tokens + responsive rules.
35
- */
36
- export declare function renderDocument(document: PageDocument, opts: RenderOptions): ReactNode;
56
+ export declare function renderDocument(document: PageDocument, inputOpts: RenderOptions): ReactNode;
37
57
  /** Render nodes with a data scope (editor previews of Repeat copies). No <style>/root wrapper. */
38
58
  export declare function renderNodes(nodes: readonly ComponentNode[], opts: RenderOptions, scope?: Record<string, unknown>): ReactNode[];
39
59
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmH,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpM,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mGAAmG;IACnG,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,oGAAoG;IACpG,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC3C,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0GAA0G;IAC1G,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErC,6EAA6E;AAC7E,eAAO,MAAM,OAAO,uDAAuD,CAAC;AAE5E,uGAAuG;AACvG,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYtI;AA0CD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,SAAS,CAWrF;AAED,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,SAAS,EAAE,CAElI"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/dist/render.js CHANGED
@@ -1,8 +1,45 @@
1
- import { BINDABLE_FIELD_TYPES, coerceBound, nodeVisible, readPath, repeatItems, REPEAT_TYPE, THEME_SCOPE_TYPE, walkNodes } from "@visual-platform/contracts";
2
- import { createElement, Fragment } from "react";
1
+ import { allPresets, animationCss, BINDABLE_FIELD_TYPES, COMPONENT_SCOPE_TYPE, coerceBound, flowPresets, flowServerPaths, lifecycleNames, nodeVisible, parseFilter, showIfServerPaths, showIfUsesState, readPath, repeatItems, REPEAT_TYPE, THEME_SCOPE_TYPE, walkNodes } from "@visual-platform/contracts";
2
+ import { createElement, Fragment, Suspense, use } from "react";
3
3
  import { responsiveCss } from "./responsive.js";
4
4
  import { designCss, tokensCss } from "./tokens.js";
5
- import { EventBoundary } from "./events.js";
5
+ import { EventBoundary, FlowProvider, LifecycleBoundary, MotionObserver, StateGate } from "./events.js";
6
+ /** Data inputs this block itself reads (bound props, Repeat list, showIf fields). */
7
+ function readsOf(node) {
8
+ const out = [];
9
+ const add = (p) => { if (typeof p === "string" && p)
10
+ out.push(p.split(".")[0]); };
11
+ if (node.type === REPEAT_TYPE)
12
+ add(node.props.source);
13
+ for (const b of Object.values(node.bind ?? {}))
14
+ add(b.path);
15
+ if (node.showIf) {
16
+ let f;
17
+ try {
18
+ f = parseFilter(node.showIf);
19
+ }
20
+ catch {
21
+ f = undefined;
22
+ }
23
+ const walk = (x) => { if (!x)
24
+ return; if ("and" in x)
25
+ x.and.forEach(walk);
26
+ else if ("or" in x)
27
+ x.or.forEach(walk);
28
+ else if ("not" in x)
29
+ walk(x.not);
30
+ else
31
+ add(x.field); };
32
+ walk(f);
33
+ }
34
+ return out;
35
+ }
36
+ function readsAny(node, names) {
37
+ return readsOf(node).some((n) => names.has(n));
38
+ }
39
+ /** Renders a block once the data it reads has arrived (React `use`, works in RSC and on the client). */
40
+ function Deferred(p) {
41
+ return p.render(use(p.wait));
42
+ }
6
43
  /** Directional glyphs (arrows) mirror in right-to-left locales (ADR-035). */
7
44
  export const RTL_CSS = "[dir=rtl] [data-vp-flip-rtl]{transform:scaleX(-1)}";
8
45
  /** Props with data bindings applied; a value that is missing or does not fit keeps the static prop. */
@@ -22,16 +59,56 @@ export function bindProps(node, opts, scope) {
22
59
  }
23
60
  return props;
24
61
  }
62
+ /** Lifecycle boundary around a block (ADR-051): values its flows read from the block's data are read here. */
63
+ function lifecycleWrap(node, opts, scope, el) {
64
+ if (!node.lifecycle || opts.noLifecycle)
65
+ return el;
66
+ const lifeInputs = {};
67
+ for (const name of new Set(lifecycleNames(node.lifecycle))) {
68
+ if (!opts.flows?.some((f) => f.name === name))
69
+ continue;
70
+ const paths = flowServerPaths(name, opts.flows);
71
+ if (paths.length)
72
+ lifeInputs[name] = Object.fromEntries(paths.map((path) => [path, readPath(scope, path, opts.locale)]));
73
+ }
74
+ const itemIndex = typeof scope.index === "number" ? scope.index : undefined;
75
+ return createElement(LifecycleBoundary, { key: node.id, nodeId: node.id, type: node.type, lifecycle: node.lifecycle, ...(Object.keys(lifeInputs).length ? { inputs: lifeInputs } : {}), ...(itemIndex !== undefined ? { itemIndex } : {}) }, el);
76
+ }
25
77
  function renderNode(node, opts, scope) {
78
+ // A component placed on a page with lifecycle/animation (ADR-052): layout-neutral wrapper.
79
+ if (node.type === COMPONENT_SCOPE_TYPE) {
80
+ const el = createElement("div", { key: node.id, "data-vp-node": node.id, "data-vp-component-scope": "", style: { display: "contents" } }, ...(node.slots?.children ?? []).map((c) => renderNode(c, opts, scope)));
81
+ return lifecycleWrap(node, opts, scope, el);
82
+ }
26
83
  // Theme scope inserted around a composed component that pins a theme (ADR-028).
27
84
  if (node.type === THEME_SCOPE_TYPE) {
28
85
  const theme = String(node.props.theme ?? "");
29
- const ok = /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(theme) && (!opts.design || theme in opts.design.themes);
30
- return createElement("div", { key: node.id, ...(ok ? { "data-vp-theme": theme } : {}), style: { background: "var(--vp-color-background)", color: "var(--vp-color-text)" } }, ...(node.slots?.children ?? []).map((c) => renderNode(c, opts, scope)));
86
+ const ds = typeof node.props.designSystemId === "string" && opts.design?.systems?.[node.props.designSystemId] ? node.props.designSystemId : undefined;
87
+ const themesOf = ds ? opts.design.systems[ds].themes : opts.design?.themes;
88
+ const ok = /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(theme) && (!themesOf || theme in themesOf);
89
+ return createElement("div", { key: node.id, ...(ds ? { "data-vp-ds": ds } : {}), ...(ok ? { "data-vp-theme": theme } : {}), style: { background: "var(--vp-color-background)", color: "var(--vp-color-text)" } }, ...(node.slots?.children ?? []).map((c) => renderNode(c, opts, scope)));
31
90
  }
32
91
  // Conditional blocks (ADR-046): hidden when the data does not match. The editor shows them anyway.
92
+ // Streamed sources (ADR-048): wait for them inside <Suspense>, then render with their data in scope.
93
+ if (opts.deferred?.size && readsAny(node, opts.deferred)) {
94
+ const pending = [...new Set(readsOf(node))].filter((n) => opts.deferred.has(n));
95
+ const rest = new Map([...opts.deferred].filter(([k]) => !pending.includes(k)));
96
+ const wait = Promise.all(pending.map((n) => opts.deferred.get(n))).then((vals) => Object.fromEntries(pending.flatMap((n, i) => (vals[i] === undefined ? [] : [[n, vals[i]]]))));
97
+ // "hide" marks a streamed input up front; it only applies if the value did not arrive.
98
+ const unavailableNow = (extra) => new Set([...(opts.unavailable ?? [])].filter((n) => !pending.includes(n) || !(n in extra)));
99
+ return createElement(Suspense, { key: node.id, fallback: null }, createElement(Deferred, { wait, render: (extra) => renderNode(node, { ...opts, deferred: rest, unavailable: unavailableNow(extra) }, { ...scope, ...extra }) }));
100
+ }
101
+ // Conditions on the page state (ADR-050) are decided in the browser; other paths are read here.
102
+ if (!opts.ignoreConditions && showIfUsesState(node.showIf)) {
103
+ const server = Object.fromEntries(showIfServerPaths(node.showIf).map((path) => [path, readPath(scope, path, opts.locale)]));
104
+ const { showIf: _s, ...rest } = node;
105
+ return createElement(StateGate, { key: node.id, when: node.showIf, server }, renderNode(rest, opts, scope));
106
+ }
33
107
  if (!opts.ignoreConditions && !nodeVisible(node, scope))
34
108
  return null;
109
+ // Source failed with fallback "hide" (ADR-048): the block disappears instead of showing broken data.
110
+ if (opts.unavailable?.size && readsAny(node, opts.unavailable))
111
+ return null;
35
112
  const entry = opts.registry.get(node.type);
36
113
  if (!entry) {
37
114
  opts.onUnknownComponent?.(node.type, node.id);
@@ -54,22 +131,110 @@ function renderNode(node, opts, scope) {
54
131
  }
55
132
  }
56
133
  const vp = node.className ? { "data-vp-node": node.id, className: node.className } : { "data-vp-node": node.id };
57
- const element = createElement(entry.component, { key: node.id, ...bindProps(node, opts, scope), ...slots, ...extra, vp });
134
+ const injected = opts.injectProps?.(node);
135
+ const bound = injected ? { ...bindProps(node, opts, scope) } : bindProps(node, opts, scope);
136
+ if (injected)
137
+ for (const [k, v] of Object.entries(injected))
138
+ if (!node.bind?.[k] && v !== undefined)
139
+ bound[k] = v;
140
+ // On a copy: bound props may be the document's own objects.
141
+ const props = opts.pageHref ? { ...bound } : bound;
142
+ if (opts.pageHref)
143
+ resolvePageLinks(props, opts);
144
+ const element = createElement(entry.component, { key: node.id, ...props, ...slots, ...extra, vp });
58
145
  // Only nodes with event bindings get the (tiny) client boundary (ADR-032).
59
146
  const events = node.events && Object.values(node.events).some(Boolean) ? node.events : null;
60
147
  const itemIndex = typeof scope.index === "number" ? scope.index : undefined;
61
- return events ? createElement(EventBoundary, { key: node.id, nodeId: node.id, type: node.type, events, ...(itemIndex !== undefined ? { itemIndex } : {}) }, element) : element;
148
+ // Block lifecycle (ADR-051): a tiny client boundary, only on blocks that use it, never in the editor.
149
+ const withLife = (el) => lifecycleWrap(node, opts, scope, el);
150
+ if (!events)
151
+ return withLife(element);
152
+ // Action inputs (ADR-048) are computed here, on the server, from the data the block was rendered with.
153
+ const inputs = {};
154
+ if (opts.eventInput)
155
+ for (const name of new Set(Object.values(events))) {
156
+ const v = name ? opts.eventInput(name, scope) : undefined;
157
+ if (v)
158
+ inputs[name] = v;
159
+ }
160
+ // Flows (ADR-049): the paths a flow reads from the block's data (item.id, page inputs…) are read here.
161
+ if (opts.flows?.length)
162
+ for (const name of new Set(Object.values(events))) {
163
+ if (!name || !opts.flows.some((f) => f.name === name))
164
+ continue;
165
+ const paths = flowServerPaths(name, opts.flows);
166
+ if (paths.length)
167
+ inputs[name] = { ...(inputs[name] ?? {}), ...Object.fromEntries(paths.map((path) => [path, readPath(scope, path, opts.locale)])) };
168
+ }
169
+ return withLife(createElement(EventBoundary, {
170
+ key: node.id, nodeId: node.id, type: node.type, events,
171
+ ...(itemIndex !== undefined ? { itemIndex } : {}),
172
+ ...(Object.keys(inputs).length ? { inputs } : {}),
173
+ ...(node.eventSteps && Object.keys(node.eventSteps).length ? { steps: node.eventSteps } : {}),
174
+ }, element));
62
175
  }
63
176
  /**
64
177
  * Render a PageDocument with the local registry. Pure function of its inputs → works in
65
178
  * React Server Components and on the client. Emits one <style> with tokens + responsive rules.
66
179
  */
67
- export function renderDocument(document, opts) {
180
+ /** Page links in props (also inside arrays/objects) get the app's href (RenderOptions.pageHref). */
181
+ const SAFE_PAGE_HREF = /^(\/(?!\/)|https:\/\/|#)/;
182
+ function resolvePageLinks(props, opts, depth = 0) {
183
+ if (depth > 4)
184
+ return;
185
+ for (const [k, v] of Object.entries(props)) {
186
+ if (!v || typeof v !== "object")
187
+ continue;
188
+ const o = v;
189
+ if (o.kind === "page" && typeof o.pageKey === "string") {
190
+ const href = opts.pageHref({ pageKey: o.pageKey, anchor: typeof o.anchor === "string" ? o.anchor : undefined, locale: opts.locale });
191
+ // Only same-site paths, anchors or https: an app mistake never becomes a javascript: link.
192
+ if (href && SAFE_PAGE_HREF.test(href))
193
+ props[k] = { ...o, href };
194
+ }
195
+ else if (Array.isArray(v)) {
196
+ props[k] = v.map((x) => { if (x && typeof x === "object") {
197
+ const c = { ...x };
198
+ resolvePageLinks(c, opts, depth + 1);
199
+ return c;
200
+ } return x; });
201
+ }
202
+ else {
203
+ const c = { ...v };
204
+ resolvePageLinks(c, opts, depth + 1);
205
+ props[k] = c;
206
+ }
207
+ }
208
+ }
209
+ export function renderDocument(document, inputOpts) {
210
+ // A page (or standalone component) on another design system (ADR-047) renders with that system's tokens.
211
+ const own = document.root.props.designSystemId;
212
+ const sys = own && inputOpts.design?.systems?.[own];
213
+ const docFlows = document.root.props.flows ?? [];
214
+ const withFlows = docFlows.length || inputOpts.flows ? { ...inputOpts, flows: [...(inputOpts.flows ?? []), ...docFlows] } : inputOpts;
215
+ const opts = sys ? { ...withFlows, design: { ...sys, systems: inputOpts.design.systems } } : withFlows;
68
216
  // Themes actually used: the page's own + any theme scopes (components pinned to a theme).
69
217
  const usedThemes = [...new Set([opts.theme, ...[...walkNodes(document.nodes)].filter((n) => n.type === THEME_SCOPE_TYPE).map((n) => String(n.props.theme ?? ""))].filter((t) => !!t))];
70
- const css = (opts.design ? designCss(opts.design, { themes: usedThemes }) : tokensCss(opts.tokens)) + RTL_CSS + (opts.classCss ?? "") + responsiveCss(walkNodes(document.nodes), (t) => opts.registry.styleBindings(t));
218
+ const usedSystems = [...new Set([...walkNodes(document.nodes)].filter((n) => n.type === THEME_SCOPE_TYPE && typeof n.props.designSystemId === "string").map((n) => String(n.props.designSystemId)))];
219
+ // Animations (ADR-052): only the presets this document uses, from the release's merged motion settings.
220
+ const motion = opts.noLifecycle ? { css: "", entries: [] } : animationCss(document.nodes, opts.design?.motion);
221
+ const css = (opts.design ? designCss(opts.design, { themes: usedThemes, systems: usedSystems }) : tokensCss(opts.tokens)) + RTL_CSS + (opts.classCss ?? "") + responsiveCss(walkNodes(document.nodes), (t) => opts.registry.styleBindings(t)) + motion.css;
71
222
  const theme = opts.theme && opts.design?.themes[opts.theme] ? opts.theme : undefined;
72
- return createElement(Fragment, null, createElement("style", { key: "vp-style", "data-vp-style": "", dangerouslySetInnerHTML: { __html: css.replace(/</g, "\\3c ") } }), createElement("div", { key: "vp-root", "data-vp-root": "", ...(opts.dir ? { dir: opts.dir } : {}), ...(opts.locale ? { lang: opts.locale } : {}), ...(theme ? { "data-vp-theme": theme } : {}) }, ...document.nodes.map((n) => renderNode(n, opts, { ...(opts.data ?? {}) }))));
223
+ return createElement(Fragment, null, createElement("style", { key: "vp-style", "data-vp-style": "", dangerouslySetInnerHTML: { __html: css.replace(/</g, "\\3c ") } }), (() => {
224
+ const root = createElement("div", { key: "vp-root", "data-vp-root": "", ...(opts.dir ? { dir: opts.dir } : {}), ...(opts.locale ? { lang: opts.locale } : {}), ...(theme ? { "data-vp-theme": theme } : {}) }, ...document.nodes.map((n) => renderNode(n, opts, { ...(opts.data ?? {}) })), ...(motion.css ? [createElement(MotionObserver, { key: "vp-motion", entries: motion.entries })] : []));
225
+ // Flows run in the browser (ADR-049/050): one small provider for the whole document, only when needed.
226
+ const triggers = document.root.props.flowTriggers ?? [];
227
+ const initialState = document.root.props.flowState;
228
+ const usesState = [...walkNodes(document.nodes)].some((n) => showIfUsesState(n.showIf) || (n.lifecycle && !opts.noLifecycle));
229
+ if (!opts.flows?.length && !triggers.length && !initialState && !usesState)
230
+ return root;
231
+ // Trigger flows read page data (no block scope): the paths they need are read here.
232
+ const triggerInputs = Object.fromEntries(triggers.map((t) => [t.flow, Object.fromEntries(flowServerPaths(t.flow, opts.flows ?? []).map((path) => [path, readPath(opts.data ?? {}, path, opts.locale)]))]));
233
+ const all = allPresets(opts.design?.motion);
234
+ const presets = Object.fromEntries(flowPresets(opts.flows ?? []).flatMap((n) => (all[n] ? [[n, all[n]]] : [])));
235
+ return createElement(FlowProvider, { key: "vp-flows", flows: opts.flows ?? [], ...(initialState ? { initialState } : {}), ...(triggers.length ? { triggers, triggerInputs } : {}),
236
+ ...(Object.keys(presets).length ? { presets, ...(opts.design?.motion ? { motion: opts.design.motion } : {}) } : {}) }, root);
237
+ })());
73
238
  }
74
239
  /** Render nodes with a data scope (editor previews of Repeat copies). No <style>/root wrapper. */
75
240
  export function renderNodes(nodes, opts, scope = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../src/responsive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,yBAAsB,GAAG,CAAC,GAAG,SAAS,CAStI;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,EACvE,WAAW,yBAAsB,GAChC,MAAM,CA6BR"}
1
+ {"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../src/responsive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,yBAAsB,GAAG,CAAC,GAAG,SAAS,CAStI;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,EACvE,WAAW,yBAAsB,GAChC,MAAM,CA8BR"}
@@ -26,7 +26,7 @@ export function responsiveCss(nodes, bindingsFor, breakpoints = DEFAULT_BREAKPOI
26
26
  const bindings = bindingsFor(node.type);
27
27
  if (!bindings)
28
28
  continue;
29
- for (const [prop, { cssVar, values }] of Object.entries(bindings)) {
29
+ for (const [prop, { cssVar, values, property }] of Object.entries(bindings)) {
30
30
  if (!/^--[a-z0-9-]+$/.test(cssVar))
31
31
  continue;
32
32
  const raw = node.props[prop];
@@ -40,7 +40,8 @@ export function responsiveCss(nodes, bindingsFor, breakpoints = DEFAULT_BREAKPOI
40
40
  if (css === undefined)
41
41
  continue;
42
42
  const list = perBreakpoint.get(bp) ?? [];
43
- list.push(`[data-vp-node="${node.id}"]{${cssVar}:${css}}`);
43
+ // Direct properties (font-family…, ADR-047) win over the component's own inline style; children inherit.
44
+ list.push(property && /^[a-z-]+$/.test(property) ? `[data-vp-node="${node.id}"]{${property}:${css} !important}` : `[data-vp-node="${node.id}"]{${cssVar}:${css}}`);
44
45
  perBreakpoint.set(bp, list);
45
46
  }
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"responsive.js","sourceRoot":"","sources":["../src/responsive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responsive.js","sourceRoot":"","sources":["../src/responsive.ts"],"names":[],"mappings":"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"}
package/dist/tokens.d.ts CHANGED
@@ -13,6 +13,7 @@ export declare function tokensCss(tokens?: Record<string, string>): string;
13
13
  */
14
14
  export declare function designCss(design: DesignSnapshot, opts?: {
15
15
  themes?: string[] | undefined;
16
+ systems?: string[] | undefined;
16
17
  }): string;
17
18
  export declare const DEFAULT_DESIGN: DesignSnapshot;
18
19
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEvG,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAqD,CAAC;AAE7G,0HAA0H;AAC1H,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO7D;AAED,uGAAuG;AACvG,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAEF,wBAAgB,SAAS,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAkB,GAAG,MAAM,CAEjF;AAID;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAAO,GAAG,MAAM,CAStG;AAED,eAAO,MAAM,cAAc,EAAE,cAAyD,CAAC"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEvG,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAqD,CAAC;AAE7G,0HAA0H;AAC1H,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO7D;AAED,uGAAuG;AACvG,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAEF,wBAAgB,SAAS,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAkB,GAAG,MAAM,CAEjF;AAID;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAAO,GAAG,MAAM,CAmBtI;AAED,eAAO,MAAM,cAAc,EAAE,cAAyD,CAAC"}
package/dist/tokens.js CHANGED
@@ -7,7 +7,7 @@ export function tokenToCss(value) {
7
7
  return String(value);
8
8
  if (typeof value !== "string" || !value)
9
9
  return undefined;
10
- if (/^(spacing|color|radius|font|semantic|layout|palette)\./.test(value)) {
10
+ if (/^(spacing|color|radius|font|semantic|layout|palette|shadow|line)\./.test(value)) {
11
11
  return `var(--vp-${value.replace(/^semantic\./, "").replace(/\./g, "-")})`;
12
12
  }
13
13
  return /^[#a-zA-Z0-9.%()\s,-]+$/.test(value) ? value : undefined; // reject anything that could break out of a declaration
@@ -37,7 +37,17 @@ export function designCss(design, opts = {}) {
37
37
  const themes = Object.entries(design.themes).filter(([name]) => !opts.themes || opts.themes.includes(name)).map(([name, o]) => `[data-vp-theme="${name}"]{${vars(o)}}`);
38
38
  const base = "[data-vp-root]{font-family:var(--vp-font-body,inherit);color:var(--vp-color-text);background:var(--vp-color-background)}"
39
39
  + "[data-vp-root] :is(h1,h2,h3,h4,h5,h6){font-family:var(--vp-font-heading,inherit)}";
40
- return [...faces, `:root{${vars(design.vars)}}`, ...themes, base].join("");
40
+ // Other design systems (ADR-047): their tokens apply inside [data-vp-ds="<id>"] scopes only.
41
+ const scoped = Object.entries(design.systems ?? {}).filter(([id]) => !opts.systems || opts.systems.includes(id)).flatMap(([id, sys]) => {
42
+ const sel = `[data-vp-ds="${id.replace(/[^A-Za-z0-9:_-]/g, "")}"]`;
43
+ return [
44
+ ...sys.fonts.flatMap((f) => f.faces.map((x) => `@font-face{font-family:"${f.family}";font-style:${x.style};font-weight:${x.weight};font-display:swap;src:url("${x.url}") format("${FORMAT[x.format]}")${x.unicodeRange ? `;unicode-range:${x.unicodeRange}` : ""}}`)),
45
+ `${sel}{${vars(sys.vars)};font-family:var(--vp-font-body,inherit);color:var(--vp-color-text)}`,
46
+ `${sel} :is(h1,h2,h3,h4,h5,h6){font-family:var(--vp-font-heading,inherit)}`,
47
+ ...Object.entries(sys.themes).map(([name, o]) => `${sel}[data-vp-theme="${name}"],${sel} [data-vp-theme="${name}"]{${vars(o)}}`),
48
+ ];
49
+ });
50
+ return [...faces, `:root{${vars(design.vars)}}`, ...themes, base, ...scoped].join("");
41
51
  }
42
52
  export const DEFAULT_DESIGN = resolveDesign(DEFAULT_DESIGN_SYSTEM, []);
43
53
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visual-platform/runtime-core",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Visual Page Platform — React renderer for published pages and components.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -18,8 +18,8 @@
18
18
  "access": "public"
19
19
  },
20
20
  "dependencies": {
21
- "@visual-platform/contracts": "^0.2.0",
22
- "@visual-platform/define": "^0.2.0"
21
+ "@visual-platform/contracts": "^0.4.0",
22
+ "@visual-platform/define": "^0.4.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "^19.2.0"