@cocoar/vue-page-builder 2.19.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/IDP_INTEGRATION.md +350 -0
  2. package/README.md +498 -169
  3. package/dist/BuilderElementCodeDialog-DXGNzleE.js +64 -0
  4. package/dist/BuilderExpressionDialog-yIfwYgXD.js +61 -0
  5. package/dist/BuilderLogicPanel-C9urz5Cd.js +68 -0
  6. package/dist/BuilderPageRootCodeDialog-CQsg_ozW.js +61 -0
  7. package/dist/CoarPageBuilder.vue.d.ts +71 -1
  8. package/dist/CoarPageBuilder.vue.d.ts.map +1 -1
  9. package/dist/CoarPageRenderer.vue.d.ts +36 -1
  10. package/dist/CoarPageRenderer.vue.d.ts.map +1 -1
  11. package/dist/PageNode.vue.d.ts +9 -1
  12. package/dist/PageNode.vue.d.ts.map +1 -1
  13. package/dist/VisualMarkupInspector-CmAOc-CH.js +54 -0
  14. package/dist/_plugin-vue_export-helper-BTgDAbhb.js +8 -0
  15. package/dist/actionValues.d.ts +21 -0
  16. package/dist/actionValues.d.ts.map +1 -0
  17. package/dist/assets/pageScriptRuntime.worker-Cll8Lm_I.js +25 -0
  18. package/dist/builder/BuilderCanvas.vue.d.ts +31 -1
  19. package/dist/builder/BuilderCanvas.vue.d.ts.map +1 -1
  20. package/dist/builder/BuilderCanvasNode.vue.d.ts.map +1 -1
  21. package/dist/builder/BuilderCompositionsPanel.vue.d.ts +3 -0
  22. package/dist/builder/BuilderCompositionsPanel.vue.d.ts.map +1 -0
  23. package/dist/builder/BuilderElementCodeDialog.vue.d.ts +14 -0
  24. package/dist/builder/BuilderElementCodeDialog.vue.d.ts.map +1 -0
  25. package/dist/builder/BuilderExpressionDialog.vue.d.ts +11 -0
  26. package/dist/builder/BuilderExpressionDialog.vue.d.ts.map +1 -0
  27. package/dist/builder/BuilderFxButton.vue.d.ts +28 -0
  28. package/dist/builder/BuilderFxButton.vue.d.ts.map +1 -0
  29. package/dist/builder/BuilderLogicPanel.vue.d.ts +3 -0
  30. package/dist/builder/BuilderLogicPanel.vue.d.ts.map +1 -0
  31. package/dist/builder/BuilderOutline.vue.d.ts.map +1 -1
  32. package/dist/builder/BuilderOutlineNode.vue.d.ts.map +1 -1
  33. package/dist/builder/BuilderPageRootCodeDialog.vue.d.ts +13 -0
  34. package/dist/builder/BuilderPageRootCodeDialog.vue.d.ts.map +1 -0
  35. package/dist/builder/BuilderPalette.vue.d.ts +3 -0
  36. package/dist/builder/BuilderPalette.vue.d.ts.map +1 -0
  37. package/dist/builder/BuilderPropsPanel.vue.d.ts.map +1 -1
  38. package/dist/builder/BuilderTranslationsPanel.vue.d.ts +6 -0
  39. package/dist/builder/BuilderTranslationsPanel.vue.d.ts.map +1 -0
  40. package/dist/builder/boxSides.d.ts +30 -0
  41. package/dist/builder/boxSides.d.ts.map +1 -0
  42. package/dist/builder/builderContext.d.ts +46 -4
  43. package/dist/builder/builderContext.d.ts.map +1 -1
  44. package/dist/builder/expressionAuthoring.d.ts +7 -0
  45. package/dist/builder/expressionAuthoring.d.ts.map +1 -0
  46. package/dist/builder/nodeDefaults.d.ts +10 -5
  47. package/dist/builder/nodeDefaults.d.ts.map +1 -1
  48. package/dist/builder/pageCodeAuthoring.d.ts +11 -0
  49. package/dist/builder/pageCodeAuthoring.d.ts.map +1 -0
  50. package/dist/builder/props/ActionPropsEditor.vue.d.ts +9 -0
  51. package/dist/builder/props/ActionPropsEditor.vue.d.ts.map +1 -0
  52. package/dist/builder/props/BuilderViewportControl.vue.d.ts +23 -0
  53. package/dist/builder/props/BuilderViewportControl.vue.d.ts.map +1 -0
  54. package/dist/builder/props/BuilderZoomControl.vue.d.ts +24 -0
  55. package/dist/builder/props/BuilderZoomControl.vue.d.ts.map +1 -0
  56. package/dist/builder/props/CompoundLengthProperty.vue.d.ts +20 -0
  57. package/dist/builder/props/CompoundLengthProperty.vue.d.ts.map +1 -0
  58. package/dist/builder/props/StyleProps.vue.d.ts +1 -0
  59. package/dist/builder/props/StyleProps.vue.d.ts.map +1 -1
  60. package/dist/builder/schemaMigrateV1.d.ts +7 -0
  61. package/dist/builder/schemaMigrateV1.d.ts.map +1 -1
  62. package/dist/builder/schemaNormalize.d.ts.map +1 -1
  63. package/dist/builder/{useSchemaValidation.d.ts → useAuthoringFindings.d.ts} +8 -8
  64. package/dist/builder/useAuthoringFindings.d.ts.map +1 -0
  65. package/dist/builder/useBuilderDnd.d.ts +8 -1
  66. package/dist/builder/useBuilderDnd.d.ts.map +1 -1
  67. package/dist/builder/useCanvasZoom.d.ts +50 -0
  68. package/dist/builder/useCanvasZoom.d.ts.map +1 -0
  69. package/dist/builder/usePageBuilder.d.ts +2 -0
  70. package/dist/builder/usePageBuilder.d.ts.map +1 -1
  71. package/dist/builder/usePageCompositions.d.ts +71 -0
  72. package/dist/builder/usePageCompositions.d.ts.map +1 -0
  73. package/dist/builderContext-B3rX2dxZ.js +4 -0
  74. package/dist/compositions.d.ts +79 -0
  75. package/dist/compositions.d.ts.map +1 -0
  76. package/dist/conditions.d.ts +8 -0
  77. package/dist/conditions.d.ts.map +1 -0
  78. package/dist/context.d.ts +17 -3
  79. package/dist/context.d.ts.map +1 -1
  80. package/dist/documentValidation.d.ts +12 -0
  81. package/dist/documentValidation.d.ts.map +1 -0
  82. package/dist/elements/builtins.d.ts.map +1 -1
  83. package/dist/elements/button/ButtonInspector.vue.d.ts.map +1 -1
  84. package/dist/elements/button/ButtonRenderer.vue.d.ts.map +1 -1
  85. package/dist/elements/button/index.d.ts +2 -2
  86. package/dist/elements/button/index.d.ts.map +1 -1
  87. package/dist/elements/card/CardInspector.vue.d.ts.map +1 -1
  88. package/dist/elements/card/index.d.ts.map +1 -1
  89. package/dist/elements/checkbox/CheckboxDefaultInput.vue.d.ts.map +1 -1
  90. package/dist/elements/checkbox/CheckboxInspector.vue.d.ts.map +1 -1
  91. package/dist/elements/checkbox/CheckboxRenderer.vue.d.ts.map +1 -1
  92. package/dist/elements/checkbox/index.d.ts.map +1 -1
  93. package/dist/elements/date-input/DateInputDefaultInput.vue.d.ts.map +1 -1
  94. package/dist/elements/date-input/DateInputInspector.vue.d.ts.map +1 -1
  95. package/dist/elements/date-input/index.d.ts.map +1 -1
  96. package/dist/elements/datetime-input/DateTimeInputDefaultInput.vue.d.ts.map +1 -1
  97. package/dist/elements/datetime-input/DateTimeInputInspector.vue.d.ts.map +1 -1
  98. package/dist/elements/datetime-input/index.d.ts.map +1 -1
  99. package/dist/elements/feedback/FeedbackInspector.vue.d.ts +8 -0
  100. package/dist/elements/feedback/FeedbackInspector.vue.d.ts.map +1 -0
  101. package/dist/elements/feedback/FeedbackPreview.vue.d.ts +7 -0
  102. package/dist/elements/feedback/FeedbackPreview.vue.d.ts.map +1 -0
  103. package/dist/elements/{stack/StackInspector.vue.d.ts → feedback/FeedbackRenderer.vue.d.ts} +3 -4
  104. package/dist/elements/feedback/FeedbackRenderer.vue.d.ts.map +1 -0
  105. package/dist/elements/feedback/index.d.ts +6 -0
  106. package/dist/elements/feedback/index.d.ts.map +1 -0
  107. package/dist/elements/heading/HeadingInspector.vue.d.ts.map +1 -1
  108. package/dist/elements/heading/index.d.ts.map +1 -1
  109. package/dist/elements/image/ImageInspector.vue.d.ts.map +1 -1
  110. package/dist/elements/image/index.d.ts.map +1 -1
  111. package/dist/elements/link/LinkInspector.vue.d.ts +1 -1
  112. package/dist/elements/link/LinkInspector.vue.d.ts.map +1 -1
  113. package/dist/elements/link/index.d.ts +1 -2
  114. package/dist/elements/link/index.d.ts.map +1 -1
  115. package/dist/elements/multi-select/MultiSelectDefaultInput.vue.d.ts.map +1 -1
  116. package/dist/elements/multi-select/MultiSelectInspector.vue.d.ts.map +1 -1
  117. package/dist/elements/multi-select/index.d.ts.map +1 -1
  118. package/dist/elements/note/NoteInspector.vue.d.ts.map +1 -1
  119. package/dist/elements/number-input/NumberInputDefaultInput.vue.d.ts.map +1 -1
  120. package/dist/elements/number-input/NumberInputInspector.vue.d.ts.map +1 -1
  121. package/dist/elements/number-input/index.d.ts.map +1 -1
  122. package/dist/elements/otp-input/OtpInputInspector.vue.d.ts.map +1 -1
  123. package/dist/elements/otp-input/index.d.ts.map +1 -1
  124. package/dist/elements/paragraph/index.d.ts.map +1 -1
  125. package/dist/elements/password-input/PasswordInputInspector.vue.d.ts.map +1 -1
  126. package/dist/elements/password-input/index.d.ts.map +1 -1
  127. package/dist/elements/previewUtils.d.ts.map +1 -1
  128. package/dist/elements/radio-group/RadioGroupDefaultInput.vue.d.ts.map +1 -1
  129. package/dist/elements/radio-group/RadioGroupInspector.vue.d.ts.map +1 -1
  130. package/dist/elements/radio-group/index.d.ts.map +1 -1
  131. package/dist/elements/registry.d.ts +265 -2
  132. package/dist/elements/registry.d.ts.map +1 -1
  133. package/dist/elements/repeat/RepeatInspector.vue.d.ts +8 -0
  134. package/dist/elements/repeat/RepeatInspector.vue.d.ts.map +1 -0
  135. package/dist/elements/repeat/RepeatRenderer.vue.d.ts +29 -0
  136. package/dist/elements/repeat/RepeatRenderer.vue.d.ts.map +1 -0
  137. package/dist/elements/repeat/index.d.ts +10 -0
  138. package/dist/elements/repeat/index.d.ts.map +1 -0
  139. package/dist/elements/section/SectionInspector.vue.d.ts.map +1 -1
  140. package/dist/elements/section/index.d.ts.map +1 -1
  141. package/dist/elements/select/SelectDefaultInput.vue.d.ts.map +1 -1
  142. package/dist/elements/select/SelectInspector.vue.d.ts.map +1 -1
  143. package/dist/elements/select/index.d.ts.map +1 -1
  144. package/dist/elements/spacer/SpacerInspector.vue.d.ts.map +1 -1
  145. package/dist/elements/stack/StackRenderer.vue.d.ts.map +1 -1
  146. package/dist/elements/stack/index.d.ts.map +1 -1
  147. package/dist/elements/switch/SwitchDefaultInput.vue.d.ts.map +1 -1
  148. package/dist/elements/switch/SwitchInspector.vue.d.ts.map +1 -1
  149. package/dist/elements/switch/index.d.ts.map +1 -1
  150. package/dist/elements/text-input/TextInputInspector.vue.d.ts.map +1 -1
  151. package/dist/elements/text-input/index.d.ts.map +1 -1
  152. package/dist/elements/usePageElement.d.ts +6 -2
  153. package/dist/elements/usePageElement.d.ts.map +1 -1
  154. package/dist/elements/visual-markup/VisualMarkupInspector.vue.d.ts +10 -0
  155. package/dist/elements/visual-markup/VisualMarkupInspector.vue.d.ts.map +1 -0
  156. package/dist/elements/visual-markup/VisualMarkupPreview.vue.d.ts +7 -0
  157. package/dist/elements/visual-markup/VisualMarkupPreview.vue.d.ts.map +1 -0
  158. package/dist/elements/visual-markup/VisualMarkupRenderer.vue.d.ts +7 -0
  159. package/dist/elements/visual-markup/VisualMarkupRenderer.vue.d.ts.map +1 -0
  160. package/dist/elements/visual-markup/index.d.ts +6 -0
  161. package/dist/elements/visual-markup/index.d.ts.map +1 -0
  162. package/dist/elements/visual-markup/visualDocument.d.ts +13 -0
  163. package/dist/elements/visual-markup/visualDocument.d.ts.map +1 -0
  164. package/dist/expressionAuthoring-7iAyadA3.js +74 -0
  165. package/dist/index.css +1 -1
  166. package/dist/index.d.ts +32 -2
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +8571 -3448
  169. package/dist/pageCode-echPQdna.js +455 -0
  170. package/dist/pageCode.d.ts +101 -0
  171. package/dist/pageCode.d.ts.map +1 -0
  172. package/dist/pageCodeAuthoring-C8grEAUf.js +123 -0
  173. package/dist/responsive.d.ts +7 -0
  174. package/dist/responsive.d.ts.map +1 -0
  175. package/dist/runtime/PageRuntimeHost.d.ts +57 -0
  176. package/dist/runtime/PageRuntimeHost.d.ts.map +1 -0
  177. package/dist/runtime/PageScriptRuntime.d.ts +62 -0
  178. package/dist/runtime/PageScriptRuntime.d.ts.map +1 -0
  179. package/dist/runtime/pageScriptRuntime.worker.d.ts +1 -0
  180. package/dist/runtime/pageScriptRuntime.worker.d.ts.map +1 -0
  181. package/dist/runtime/runtimeProtocol.d.ts +150 -0
  182. package/dist/runtime/runtimeProtocol.d.ts.map +1 -0
  183. package/dist/runtime/usePageCodeRuntime.d.ts +32 -0
  184. package/dist/runtime/usePageCodeRuntime.d.ts.map +1 -0
  185. package/dist/runtime-worker.js +240 -0
  186. package/dist/runtimeBindings.d.ts +32 -0
  187. package/dist/runtimeBindings.d.ts.map +1 -0
  188. package/dist/runtimeExpressions.d.ts +16 -0
  189. package/dist/runtimeExpressions.d.ts.map +1 -0
  190. package/dist/runtimeProtocol-Bg1C-O0c.js +36 -0
  191. package/dist/runtimeWorkerEntry.d.ts +2 -0
  192. package/dist/runtimeWorkerEntry.d.ts.map +1 -0
  193. package/dist/schema.d.ts +298 -31
  194. package/dist/schema.d.ts.map +1 -1
  195. package/dist/styleMapping.d.ts +7 -0
  196. package/dist/styleMapping.d.ts.map +1 -1
  197. package/dist/translations.d.ts +8 -0
  198. package/dist/translations.d.ts.map +1 -0
  199. package/dist/visualDocument-DKjWBfpW.js +139 -0
  200. package/package.json +24 -6
  201. package/dist/builder/useSchemaValidation.d.ts.map +0 -1
  202. package/dist/elements/stack/StackInspector.vue.d.ts.map +0 -1
package/dist/schema.d.ts CHANGED
@@ -1,5 +1,22 @@
1
1
  import { PageElementRegistry } from './elements/registry';
2
+ export declare const CURRENT_PAGE_SCHEMA_VERSION = 6;
2
3
  export interface NodeStyle {
4
+ surface?: 'default' | 'subtle' | 'raised' | 'accent' | 'success' | 'warning' | 'error';
5
+ foreground?: 'primary' | 'secondary' | 'tertiary' | 'inverse' | 'accent' | 'success' | 'warning' | 'error';
6
+ borderTone?: 'neutral' | 'accent' | 'success' | 'warning' | 'error';
7
+ borderWidth?: '0' | '1px' | '2px';
8
+ radius?: 'none' | 'small' | 'medium' | 'large' | 'full';
9
+ elevation?: 'none' | 'small' | 'medium' | 'large';
10
+ fontFamily?: 'body' | 'heading' | 'mono';
11
+ fontSize?: 'caption' | 'small' | 'base' | 'large' | 'xlarge' | 'display';
12
+ fontWeight?: 'regular' | 'medium' | 'semibold' | 'bold';
13
+ fontStyle?: 'normal' | 'italic' | 'oblique';
14
+ /** Safe CSS variable-font axes, e.g. `"wght" 650, "opsz" 32`. */
15
+ fontVariationSettings?: string;
16
+ lineHeight?: 'tight' | 'normal' | 'relaxed';
17
+ letterSpacing?: 'tight' | 'normal' | 'wide';
18
+ textAlign?: 'start' | 'center' | 'end';
19
+ textDecoration?: 'none' | 'underline' | 'line-through';
3
20
  /** CSS gap between children, e.g. '8px', '1rem'. Applied to inner layout. */
4
21
  gap?: string;
5
22
  /** CSS padding inside this node. */
@@ -8,33 +25,145 @@ export interface NodeStyle {
8
25
  justify?: 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly';
9
26
  /** align-items — alignment of children along the cross axis. */
10
27
  align?: 'start' | 'center' | 'end' | 'stretch';
28
+ /** Stack direction override. On stack nodes this wins over the legacy props.direction value. */
29
+ direction?: 'column' | 'row';
30
+ /** Whether a row stack wraps. On stack nodes this wins over the legacy props.wrap value. */
31
+ wrap?: boolean;
11
32
  /** align-self — overrides the parent's `align` for just this node. */
12
33
  alignSelf?: 'start' | 'center' | 'end' | 'stretch';
13
34
  /**
14
35
  * Sizing along the parent's main axis:
15
36
  * - `fit` — natural content size (no grow / no shrink)
16
- * - `fill` — grow to fill the available space
37
+ * - `fill` — grow to fill the available space. Direction-aware: in a row
38
+ * this distributes space evenly from a zero basis; in a column
39
+ * it only means full width, so it cannot grow vertically.
40
+ * - `grow` — take the remaining main-axis space in EITHER direction,
41
+ * growing from natural size. This is what lets a layout put a
42
+ * height on the outermost node only and let everything below it
43
+ * resolve through flex.
17
44
  * - `fixed` — exact `width`
18
45
  */
19
- size?: 'fit' | 'fill' | 'fixed';
46
+ size?: 'fit' | 'fill' | 'grow' | 'fixed';
20
47
  /** CSS width. Applied when `size` is `fixed` (or when set without a `size`). */
21
48
  width?: string;
49
+ /** Minimum width of this node's box. */
50
+ minWidth?: string;
51
+ /** Maximum width of this node's box. */
52
+ maxWidth?: string;
53
+ /** CSS height of this node's box. */
54
+ height?: string;
22
55
  /**
23
- * CSS min-height of this node's box, e.g. '100vh', '400px'. On the `page`
56
+ * CSS min-height of this node's box, e.g. '100dvh', '400px'. On the `page`
24
57
  * root this makes the page fill the viewport so `justify` (vertical) +
25
58
  * `align` (horizontal) can center content — e.g. a login card centered on a
26
59
  * full-screen page. The host element provides the width; min-height lets the
27
60
  * page own its vertical extent without depending on host CSS.
28
61
  */
29
62
  minHeight?: string;
63
+ /** Maximum height of this node's box. */
64
+ maxHeight?: string;
65
+ /** CSS aspect-ratio, e.g. `16 / 9` or `1`. */
66
+ aspectRatio?: string;
67
+ /** Overflow behavior of this node's box. */
68
+ overflow?: 'visible' | 'hidden' | 'clip' | 'auto' | 'scroll';
69
+ /** Responsive presentation switch. Hidden nodes do not render or participate in actions. */
70
+ hidden?: boolean;
30
71
  }
72
+ /** Breakpoints use a mobile-first cascade: compact/base → phone → tablet → desktop. */
73
+ export type PageBreakpoint = 'compact' | 'phone' | 'tablet' | 'desktop';
74
+ /** Per-breakpoint style differences. Compact is represented by the base `style`. */
75
+ export type ResponsiveNodeStyles = Partial<Record<Exclude<PageBreakpoint, 'compact'>, Partial<NodeStyle>>>;
31
76
  interface PageNodeBase {
32
77
  /** Stable UUID assigned by the builder. */
33
78
  id: string;
34
79
  style?: NodeStyle;
80
+ /** Mobile-first style overrides; unset properties inherit from the preceding breakpoint. */
81
+ responsive?: ResponsiveNodeStyles;
82
+ /**
83
+ * Builder-only origin of this node inside a reusable composition template.
84
+ * The runtime compiler removes it before delivery. It lets composition
85
+ * updates preserve the instance's public names and node ids.
86
+ */
87
+ compositionOrigins?: PageCompositionOrigin[];
88
+ /**
89
+ * Builder-only link carried by the root of a materialized composition
90
+ * instance. The subtree itself always remains present and renderable.
91
+ */
92
+ composition?: PageCompositionReference;
93
+ }
94
+ /** Immutable source/version selected for one materialized composition instance. */
95
+ export interface PageCompositionReference {
96
+ id: string;
97
+ version: string;
98
+ }
99
+ /** One stable template identity in a possibly nested composition chain. */
100
+ export interface PageCompositionOrigin {
101
+ id: string;
102
+ sourceNodeId: string;
35
103
  }
36
104
  /** Element-specific props. Must stay JSON-safe — the bag is persisted verbatim. */
37
105
  export type ElementProps = Record<string, unknown>;
106
+ export type PageContextValueType = 'string' | 'number' | 'boolean' | 'string[]' | 'object' | 'array';
107
+ export interface PageContextItemField {
108
+ path: string;
109
+ type: Exclude<PageContextValueType, 'array'>;
110
+ }
111
+ /** One explicitly exposed host-context path. Paths not listed here are unreadable. */
112
+ export interface PageContextField {
113
+ path: string;
114
+ type: PageContextValueType;
115
+ itemFields?: PageContextItemField[];
116
+ /**
117
+ * Closed set of values this field can take. The condition editor offers them
118
+ * as a dropdown instead of a free-text box, which is what makes a host's
119
+ * view state, tier or status authorable without a second mechanism for it.
120
+ */
121
+ allowedValues?: string[];
122
+ }
123
+ export interface RuntimeBinding {
124
+ source: 'context' | 'state' | 'item' | 'index' | 'field' | 'selection';
125
+ /** Context/page-state/item/field/selection path. Index bindings omit it. */
126
+ path?: string;
127
+ fallback?: unknown;
128
+ }
129
+ /**
130
+ * A pure JavaScript expression authored by the tenant. The expression returns
131
+ * one value for exactly one target property; it never mutates the page tree.
132
+ * Evaluation happens in the host-provided sandbox runtime, not in the schema
133
+ * resolver. Until a result exists (startup/error), the persisted static value
134
+ * remains authoritative, with `fallback` as the optional final fallback.
135
+ */
136
+ export interface RuntimeExpressionBinding {
137
+ source: 'expression';
138
+ /** False keeps the authored expression but makes the static property authoritative. */
139
+ enabled?: boolean;
140
+ expression: string;
141
+ fallback?: unknown;
142
+ }
143
+ export interface LocalizedValue<T = string> {
144
+ localized: Record<string, T>;
145
+ fallback?: T;
146
+ }
147
+ /**
148
+ * A locale-reactive reference into the page/host translation catalogue.
149
+ * It stays JSON-safe when produced by Element Code; the renderer resolves it
150
+ * after the sandbox result has been applied.
151
+ */
152
+ export interface TranslationBinding {
153
+ source: 'translation';
154
+ key: string;
155
+ params?: Record<string, unknown>;
156
+ fallback?: string;
157
+ }
158
+ /** Page-owned messages, grouped by locale and addressed by stable dot keys. */
159
+ export type PageTranslations = Record<string, Record<string, string>>;
160
+ export interface RuntimeTemplate {
161
+ template: string | LocalizedValue<string> | TranslationBinding;
162
+ placeholders: Record<string, RuntimeBinding>;
163
+ }
164
+ export type PropertyBinding = RuntimeBinding | RuntimeTemplate | RuntimeExpressionBinding | TranslationBinding;
165
+ /** Results supplied by the sandbox runtime, keyed by runtimeExpressionKey(). */
166
+ export type RuntimeExpressionValues = Readonly<Record<string, unknown>>;
38
167
  /**
39
168
  * The unified node grammar: `type` is an open string (the element-registry
40
169
  * key), everything element-specific lives in the `props` bag, and the host
@@ -43,19 +172,33 @@ export type ElementProps = Record<string, unknown>;
43
172
  * can never collide with host fields; built-ins follow the same grammar for
44
173
  * uniformity.
45
174
  *
46
- * `name`/`defaultValue`/`validation` are only meaningful when the element's
47
- * registry definition declares a `value` spec; `children` only when it
48
- * declares `container`.
175
+ * Every element has one page-wide unique public `name`. Element Code uses it
176
+ * as the stable authoring identity; value elements additionally use the exact
177
+ * same name as their form/value-model key. `defaultValue`/`validation` are only
178
+ * meaningful when the registry definition declares a `value` spec;
179
+ * `children` only when it declares `container`.
49
180
  */
50
181
  export interface ElementNode<K extends string = string, P extends ElementProps = ElementProps> extends PageNodeBase {
51
182
  type: K;
52
183
  props: P;
53
- /** When set (and the definition has a value spec), the renderer manages this node's value. */
184
+ /**
185
+ * Public Page-Code name; also the form key when the definition has a value
186
+ * spec. Canonical v4 documents always contain it. It remains optional in
187
+ * this ingest type so pre-v4 documents can be passed to the normalizer.
188
+ */
54
189
  name?: string;
55
190
  defaultValue?: unknown;
56
191
  validation?: FieldValidation;
192
+ /** Safe host-provided values mapped onto top-level element props. */
193
+ bindings?: Record<string, PropertyBinding>;
57
194
  /** Conditional visibility against the live value model. See `VisibleWhen`. */
58
195
  visibleWhen?: VisibleWhen;
196
+ /**
197
+ * JavaScript configuration for this element. The host evaluates it in its
198
+ * sandbox runtime with a mutable `element` draft and read-only page inputs.
199
+ * Structure, type and name are never part of the returned patch.
200
+ */
201
+ elementCode?: string;
59
202
  children?: PageNode[];
60
203
  }
61
204
  /** Marker bag for elements without element-specific props. */
@@ -73,9 +216,10 @@ export interface OptionItem {
73
216
  export interface PageRootNode extends PageNodeBase {
74
217
  type: 'page';
75
218
  /**
76
- * Wire-format version. `2` = unified props-bag grammar (current). `1` /
77
- * absent = the pre-GA flat grammar, migrated transparently on ingest by
78
- * `normalizePageSchema` (and on the fly by the renderer).
219
+ * Wire-format version. `5` adds authoring metadata for reusable, versioned
220
+ * compositions; `4` makes every element name mandatory and unique;
221
+ * `3` adds responsive overrides, runtime bindings, repeaters and feedback
222
+ * zones. Older documents are migrated on ingest.
79
223
  */
80
224
  schemaVersion?: number;
81
225
  /**
@@ -85,8 +229,38 @@ export interface PageRootNode extends PageNodeBase {
85
229
  * button in tree order. Off by default.
86
230
  */
87
231
  enterSubmits?: boolean;
232
+ /**
233
+ * One JavaScript page program evaluated by a host-provided sandbox runtime.
234
+ * The page-builder persists and edits the source, but never evaluates it.
235
+ * Structural fields (`id`, `type`, `name`, `children`) remain owned by the
236
+ * visual builder; the program can only return configuration drafts.
237
+ */
238
+ pageCode?: string;
239
+ /**
240
+ * Reactive configuration for the page root itself. Unlike the legacy
241
+ * whole-page `pageCode`, this has the same narrow responsibility as an
242
+ * element's `elementCode`: it may configure only the existing root draft
243
+ * (`style`, `responsive`, and `enterSubmits`).
244
+ */
245
+ rootCode?: string;
246
+ /** Customer-authored initial state shared by this page's element scripts. */
247
+ stateCode?: string;
248
+ /** Customer-owned messages edited in the Builder's Translations tab. */
249
+ translations?: PageTranslations;
88
250
  children: PageNode[];
89
251
  }
252
+ /**
253
+ * One entry in the editor/preview size picker. Authoring-only: the width
254
+ * decides which breakpoint the cascade resolves against, so a custom size
255
+ * needs no new breakpoint name and documents stay self-describing.
256
+ */
257
+ export interface PagePreviewViewport {
258
+ id: string;
259
+ label: string;
260
+ /** Omit for a size that follows the host container ("fluid"). */
261
+ width?: number;
262
+ height?: number;
263
+ }
90
264
  /**
91
265
  * Generic flex container. Direction is toggleable in the props panel, so users
92
266
  * never have to delete + recreate to switch between vertical and horizontal stacks.
@@ -109,6 +283,30 @@ export interface SectionNode extends ElementNode<'section', {
109
283
  }> {
110
284
  children: PageNode[];
111
285
  }
286
+ export interface RepeatSelection {
287
+ /** ActionValues array field produced by `$selection` checkboxes in the template. */
288
+ name: string;
289
+ valuePath: string;
290
+ requiredPath?: string;
291
+ /** Initial selection for newly observed optional items. */
292
+ defaultSelection?: 'none' | 'all';
293
+ /** @deprecated Use `defaultSelection: 'all'`. */
294
+ defaultSelected?: boolean;
295
+ }
296
+ /** Native template repeater over one allowlisted host-context array. */
297
+ export interface RepeatNode extends ElementNode<'repeat', {
298
+ /** Allow-listed host-context array path. Page Code may instead provide `items`. */
299
+ contextPath?: string;
300
+ keyPath?: string;
301
+ /** Runtime-only data source produced by Page Code (still JSON-safe data). */
302
+ items?: unknown[];
303
+ itemAlias?: string;
304
+ maxItems?: number;
305
+ emptyText?: string;
306
+ selection?: RepeatSelection;
307
+ }> {
308
+ children: PageNode[];
309
+ }
112
310
  export type DividerNode = ElementNode<'divider', EmptyProps>;
113
311
  export type SpacerNode = ElementNode<'spacer', {
114
312
  /** CSS size, e.g. '24px'. Defaults to flex:1 (fills available space). */
@@ -126,6 +324,12 @@ export type NoteNode = ElementNode<'note', {
126
324
  /** Visual tone of the note box. Defaults to the design system's 'neutral'. */
127
325
  variant?: 'neutral' | 'success' | 'warning' | 'error' | 'info' | 'accent';
128
326
  }>;
327
+ /** Authorable semantic placement for renderer/host feedback. */
328
+ export type FeedbackNode = ElementNode<'feedback', {
329
+ kind?: 'form-error' | 'error' | 'success' | 'info' | 'loading';
330
+ text?: string;
331
+ emptyText?: string;
332
+ }>;
129
333
  export type TextInputNode = ElementNode<'text-input', {
130
334
  label?: string;
131
335
  placeholder?: string;
@@ -217,10 +421,20 @@ export type DateTimeInputNode = ElementNode<'datetime-input', {
217
421
  placeholder?: string;
218
422
  disabled?: boolean;
219
423
  }>;
220
- export type ButtonNode = ElementNode<'button', {
221
- label: string;
424
+ /** Shared props contract for every registry element that declares `action: true`. */
425
+ export interface ActionProps extends ElementProps {
222
426
  /** Action ID matched against the `actions` map passed to the renderer. */
223
427
  action?: string;
428
+ /** Static, JSON-safe additions merged into this action call only. */
429
+ actionValues?: Record<string, unknown>;
430
+ /** Optional single dynamic action value; bind `actionValue` from context, item data, or an expression. */
431
+ actionValueField?: string;
432
+ actionValue?: unknown;
433
+ }
434
+ export type ButtonNode = ElementNode<'button', ActionProps & {
435
+ label: string;
436
+ /** Static or runtime-resolved interaction state. */
437
+ disabled?: boolean;
224
438
  /** When true, validates all named fields before calling the action. */
225
439
  validates?: boolean;
226
440
  /**
@@ -233,16 +447,19 @@ export type ButtonNode = ElementNode<'button', {
233
447
  variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
234
448
  size?: 'xs' | 's' | 'm' | 'l';
235
449
  }>;
236
- export type LinkNode = ElementNode<'link', {
450
+ export type LinkNode = ElementNode<'link', ActionProps & {
237
451
  label: string;
238
- /** Action ID matched against the `actions` map passed to the renderer. */
239
- action?: string;
240
452
  }>;
241
453
  export type ImageNode = ElementNode<'image', {
242
454
  /** Asset ID resolved by `assetResolver` at render time. Never a raw URL. */
243
455
  assetId: string;
244
456
  alt?: string;
245
457
  }>;
458
+ /** Scriptless decorative HTML/SVG/CSS rendered in an opaque sandboxed iframe. */
459
+ export type VisualMarkupNode = ElementNode<'visual-markup', {
460
+ html: string;
461
+ css?: string;
462
+ }>;
246
463
  /**
247
464
  * Declarative field validation, at node level (host vocabulary — uniform for
248
465
  * every valued element). Which rules an element actually enforces is the
@@ -271,15 +488,24 @@ export interface FieldValidation {
271
488
  */
272
489
  export interface VisibleWhen {
273
490
  /** Name of the controlling field (a named input on the page). */
274
- field: string;
491
+ field?: string;
275
492
  /** Visible while the field's value equals this (JSON-safe values compare by content). */
276
493
  equals?: unknown;
277
494
  /** Visible while the field's value is one of these. */
278
495
  in?: unknown[];
496
+ /** Safe source for the extended condition grammar. Legacy conditions omit this. */
497
+ source?: 'field' | 'context' | 'item';
498
+ /** Field/context/item path. */
499
+ path?: string;
500
+ operator?: 'equals' | 'notEquals' | 'in' | 'notIn' | 'exists' | 'isEmpty' | 'isNotEmpty';
501
+ value?: unknown;
502
+ /** Bounded boolean composition; free expressions are deliberately unsupported. */
503
+ all?: VisibleWhen[];
504
+ any?: VisibleWhen[];
279
505
  }
280
- export type ContainerNode = PageRootNode | StackNode | CardNode | SectionNode;
506
+ export type ContainerNode = PageRootNode | StackNode | CardNode | SectionNode | RepeatNode;
281
507
  /** The built-in element set (closed — drives the internal per-type tables). */
282
- export type BuiltinNode = StackNode | CardNode | SectionNode | DividerNode | SpacerNode | HeadingNode | ParagraphNode | NoteNode | TextInputNode | PasswordInputNode | NumberInputNode | CheckboxNode | SwitchNode | RadioGroupNode | SelectNode | MultiSelectNode | OtpInputNode | DateInputNode | DateTimeInputNode | ButtonNode | LinkNode | ImageNode;
508
+ export type BuiltinNode = StackNode | CardNode | SectionNode | RepeatNode | DividerNode | SpacerNode | HeadingNode | ParagraphNode | NoteNode | FeedbackNode | TextInputNode | PasswordInputNode | NumberInputNode | CheckboxNode | SwitchNode | RadioGroupNode | SelectNode | MultiSelectNode | OtpInputNode | DateInputNode | DateTimeInputNode | ButtonNode | LinkNode | ImageNode | VisualMarkupNode;
283
509
  /**
284
510
  * Any node in a page tree. The union is OPEN: the last member admits
285
511
  * consumer-registered elements (whose `type` is their registry key). Code
@@ -333,36 +559,56 @@ export interface PageConfig {
333
559
  * Consumer-registered elements, merged ADDITIVELY over the built-in set
334
560
  * (shadowing a built-in key warns in DEV). The same config reaches builder
335
561
  * and renderer, so one registration serves palette, canvas, inspector and
336
- * runtime. App-wide defaults can be provided under `PAGE_ELEMENTS_KEY`
562
+ * runtime. App-wide defaults can be provided under `PAGE_ELEMENT_TYPES_KEY`
337
563
  * instead; this field wins when both are present.
338
564
  */
339
- elements?: PageElementRegistry;
565
+ elementTypes?: PageElementRegistry;
340
566
  /**
341
- * The data contract behind the page (DTO fields). When present, the
567
+ * The data contract behind the page (DTO properties). When present, the
342
568
  * builder's Field section offers these instead of a free-text name —
343
569
  * filtered to the fields the selected element can edit (see
344
570
  * `ElementValueSpec.types`) — and the lint flags unknown names,
345
571
  * incompatible bindings, and missing required fields.
346
572
  */
347
- fields?: PageFieldSpec[];
573
+ dataContract?: PageFieldSpec[];
574
+ /** Typed allowlist of host values the document may bind or use in conditions. */
575
+ contextFields?: PageContextField[];
576
+ /** Locales offered by the builder for LocalizedValue props. */
577
+ locales?: {
578
+ id: string;
579
+ label: string;
580
+ }[];
581
+ defaultLocale?: string;
582
+ documentLimits?: {
583
+ maxNodes?: number;
584
+ maxDepth?: number;
585
+ };
586
+ /**
587
+ * Device sizes offered in the editor and preview toolbars. Purely an
588
+ * authoring convenience: the document never records which one was chosen,
589
+ * and the style cascade keeps using the fixed breakpoints, derived from the
590
+ * width. A host can therefore add "Wide · 1920" without making its documents
591
+ * depend on a host-defined breakpoint name to stay readable.
592
+ *
593
+ * Unset falls back to the built-in sizes.
594
+ */
595
+ previewViewports?: PagePreviewViewport[];
348
596
  /**
349
597
  * Allow binding names outside `fields`. Defaults to false — with a
350
598
  * contract, authors pick from it.
351
599
  */
352
600
  allowCustomFields?: boolean;
353
601
  /**
354
- * Hide the free INPUTS offering (the palette's Inputs group and the input
355
- * entries of the outline's add-child menu)i.e. exactly the value
356
- * elements the field contract replaces; authors then bind fields by
357
- * dragging contract `fields`. Containers and content/action elements
358
- * (headings, notes, buttons, links, images) stay available — every form
359
- * needs layout and chrome. The split is registry-derived (value-spec
360
- * presence), so consumer elements sort themselves. Pure authoring UI —
361
- * `allowedElements` remains the boundary for what may be USED at all.
602
+ * Hide free value-producing elements from the library and the Inputs entries
603
+ * of the outline's add-child menu — exactly what the field contract replaces;
604
+ * authors then bind fields by dragging contract `fields`. Containers and
605
+ * content/action elements stay available because every form needs layout and
606
+ * chrome. Classification is registry-derived from value-spec presence. Pure
607
+ * authoring UI `allowedElements` remains the usage boundary.
362
608
  */
363
609
  hideElementPicker?: boolean;
364
610
  /**
365
- * Action IDs that buttons and links may reference. When provided, the builder's
611
+ * Action IDs that any registry element with `action: true` may reference. When provided, the builder's
366
612
  * Action-ID input becomes a dropdown of these choices instead of free text.
367
613
  * Omit to allow any string (development / single-tenant scenarios).
368
614
  *
@@ -404,6 +650,27 @@ export interface PageConfig {
404
650
  * When omitted, the image element falls back to a free-text Asset ID input.
405
651
  */
406
652
  pickAsset?: (currentId?: string) => Promise<string | null>;
653
+ /** Host-owned values injected into every scriptless visual-markup document. */
654
+ visualMarkup?: PageVisualMarkupConfig;
655
+ }
656
+ /** One host-approved font made available inside the opaque visual iframe. */
657
+ export interface PageVisualFont {
658
+ id: string;
659
+ family: string;
660
+ /** Only data:font/...;base64 and blob: URLs are accepted by the renderer. */
661
+ src: string;
662
+ format?: 'woff2' | 'woff' | 'truetype' | 'opentype';
663
+ weight?: string;
664
+ style?: 'normal' | 'italic' | 'oblique';
665
+ display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
666
+ }
667
+ export interface PageVisualMarkupConfig {
668
+ /** CSS custom properties only (`--name` → scalar CSS value). */
669
+ themeVariables?: Record<string, string | number>;
670
+ /** All entries are host-owned and security-filtered before @font-face emission. */
671
+ fonts?: PageVisualFont[];
672
+ maxHtmlLength?: number;
673
+ maxCssLength?: number;
407
674
  }
408
675
  /**
409
676
  * True when this element type is permitted by the config (or no config given).
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,10 @@ import { CSSProperties } from 'vue';
2
2
  import { NodeStyle } from './schema';
3
3
  /** Flex direction of the parent container — drives how `size: 'fill'` maps. */
4
4
  export type FlexDirection = 'row' | 'column';
5
+ /** Harmless CSS lengths only: numbers, common units and calc/min/max/clamp arithmetic. */
6
+ export declare function safeCssLength(value: string | undefined): string | undefined;
7
+ export declare function safeFontVariationSettings(value: string | undefined): string | undefined;
8
+ export declare function safeAspectRatio(value: string | undefined): string | undefined;
5
9
  /**
6
10
  * How a node sits inside its parent's flex layout: cross-axis self-alignment
7
11
  * (`align-self`) and main-axis sizing (the simple `size` + `width` model).
@@ -17,6 +21,9 @@ export type FlexDirection = 'row' | 'column';
17
21
  * (its chrome wrapper has its own padding), so Preview and Editor stay in sync.
18
22
  */
19
23
  export declare function selfLayoutStyle(style?: NodeStyle, parentDirection?: FlexDirection): CSSProperties;
24
+ export declare function withoutPageRootSize(css: CSSProperties): CSSProperties;
25
+ /** The style keys a page root silently ignores — for authoring diagnostics. */
26
+ export declare const PAGE_ROOT_IGNORED_STYLE_KEYS: readonly string[];
20
27
  /**
21
28
  * Full style for a node's own outer element — {@link selfLayoutStyle} plus
22
29
  * padding. Used by the real renderer where the node element *is* the box.
@@ -1 +1 @@
1
- {"version":3,"file":"styleMapping.d.ts","sourceRoot":"","sources":["../src/styleMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,KAAK,CAAC,EAAE,SAAS,EACjB,eAAe,GAAE,aAAwB,GACxC,aAAa,CAuBf;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,GAAE,aAAwB,GAAG,aAAa,CAIrG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,aAAa,CAOrE"}
1
+ {"version":3,"file":"styleMapping.d.ts","sourceRoot":"","sources":["../src/styleMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7C,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAU3E;AAiDD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKvF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,KAAK,CAAC,EAAE,SAAS,EACjB,eAAe,GAAE,aAAwB,GACxC,aAAa,CA4Df;AAYD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAIrE;AAED,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAA2B,CAAC;AAEtF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,GAAE,aAAwB,GAAG,aAAa,CAIrG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,aAAa,CAYrE"}
@@ -0,0 +1,8 @@
1
+ import { PageTranslations, TranslationBinding } from './schema';
2
+ export declare function isTranslationBinding(value: unknown): value is TranslationBinding;
3
+ /** Data-only helper mirrored by the sandbox authoring preamble. */
4
+ export declare function translation(key: string, params?: Record<string, unknown>, fallback?: string): TranslationBinding;
5
+ export declare function pageTranslationTemplate(messages: PageTranslations | undefined, key: string, locale?: string, defaultLocale?: string): string | undefined;
6
+ export declare function resolveTranslation(binding: TranslationBinding, messages: PageTranslations | undefined, locale?: string, defaultLocale?: string, hostTemplate?: (locale: string, key: string) => string | undefined): string;
7
+ export declare function translationKeyFor(elementName: string, path: string): string;
8
+ //# sourceMappingURL=translations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAIjB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAMhF;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAOpB;AAkBD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,SAAS,CAOpB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACjE,MAAM,CASR;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI3E"}