@cocoar/vue-page-builder 2.19.0 → 2.20.0-beta.19

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 (188) hide show
  1. package/IDP_INTEGRATION.md +355 -0
  2. package/README.md +352 -12
  3. package/dist/BuilderElementCodeDialog-ByhAkwmS.js +64 -0
  4. package/dist/BuilderExpressionDialog-DjGebYyv.js +61 -0
  5. package/dist/BuilderLogicPanel-Cxd04A93.js +68 -0
  6. package/dist/BuilderPageRootCodeDialog-7uXyUGGD.js +61 -0
  7. package/dist/CoarPageBuilder.vue.d.ts +60 -1
  8. package/dist/CoarPageBuilder.vue.d.ts.map +1 -1
  9. package/dist/CoarPageRenderer.vue.d.ts +38 -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-DGjFuyMS.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.map +1 -1
  19. package/dist/builder/BuilderCanvasNode.vue.d.ts.map +1 -1
  20. package/dist/builder/BuilderCompositionsPanel.vue.d.ts +3 -0
  21. package/dist/builder/BuilderCompositionsPanel.vue.d.ts.map +1 -0
  22. package/dist/builder/BuilderElementCodeDialog.vue.d.ts +14 -0
  23. package/dist/builder/BuilderElementCodeDialog.vue.d.ts.map +1 -0
  24. package/dist/builder/BuilderExpressionDialog.vue.d.ts +11 -0
  25. package/dist/builder/BuilderExpressionDialog.vue.d.ts.map +1 -0
  26. package/dist/builder/BuilderFxButton.vue.d.ts +28 -0
  27. package/dist/builder/BuilderFxButton.vue.d.ts.map +1 -0
  28. package/dist/builder/BuilderLogicPanel.vue.d.ts +3 -0
  29. package/dist/builder/BuilderLogicPanel.vue.d.ts.map +1 -0
  30. package/dist/builder/BuilderOutlineNode.vue.d.ts.map +1 -1
  31. package/dist/builder/BuilderPageRootCodeDialog.vue.d.ts +13 -0
  32. package/dist/builder/BuilderPageRootCodeDialog.vue.d.ts.map +1 -0
  33. package/dist/builder/BuilderPalette.vue.d.ts +3 -0
  34. package/dist/builder/BuilderPalette.vue.d.ts.map +1 -0
  35. package/dist/builder/BuilderPropsPanel.vue.d.ts.map +1 -1
  36. package/dist/builder/BuilderTranslationsPanel.vue.d.ts +6 -0
  37. package/dist/builder/BuilderTranslationsPanel.vue.d.ts.map +1 -0
  38. package/dist/builder/builderContext.d.ts +44 -2
  39. package/dist/builder/builderContext.d.ts.map +1 -1
  40. package/dist/builder/expressionAuthoring.d.ts +7 -0
  41. package/dist/builder/expressionAuthoring.d.ts.map +1 -0
  42. package/dist/builder/nodeDefaults.d.ts +10 -5
  43. package/dist/builder/nodeDefaults.d.ts.map +1 -1
  44. package/dist/builder/pageCodeAuthoring.d.ts +11 -0
  45. package/dist/builder/pageCodeAuthoring.d.ts.map +1 -0
  46. package/dist/builder/props/ActionPropsEditor.vue.d.ts +9 -0
  47. package/dist/builder/props/ActionPropsEditor.vue.d.ts.map +1 -0
  48. package/dist/builder/props/StyleProps.vue.d.ts +1 -0
  49. package/dist/builder/props/StyleProps.vue.d.ts.map +1 -1
  50. package/dist/builder/schemaMigrateV1.d.ts.map +1 -1
  51. package/dist/builder/schemaNormalize.d.ts.map +1 -1
  52. package/dist/builder/useBuilderDnd.d.ts +8 -1
  53. package/dist/builder/useBuilderDnd.d.ts.map +1 -1
  54. package/dist/builder/usePageBuilder.d.ts +4 -0
  55. package/dist/builder/usePageBuilder.d.ts.map +1 -1
  56. package/dist/builder/usePageCompositions.d.ts +71 -0
  57. package/dist/builder/usePageCompositions.d.ts.map +1 -0
  58. package/dist/builder/useSchemaValidation.d.ts.map +1 -1
  59. package/dist/builderContext-5hKJ8y8r.js +4 -0
  60. package/dist/compositions.d.ts +79 -0
  61. package/dist/compositions.d.ts.map +1 -0
  62. package/dist/conditions.d.ts +9 -0
  63. package/dist/conditions.d.ts.map +1 -0
  64. package/dist/context.d.ts +17 -3
  65. package/dist/context.d.ts.map +1 -1
  66. package/dist/documentValidation.d.ts +12 -0
  67. package/dist/documentValidation.d.ts.map +1 -0
  68. package/dist/elements/builtins.d.ts.map +1 -1
  69. package/dist/elements/button/ButtonInspector.vue.d.ts.map +1 -1
  70. package/dist/elements/button/ButtonRenderer.vue.d.ts.map +1 -1
  71. package/dist/elements/button/index.d.ts +2 -2
  72. package/dist/elements/button/index.d.ts.map +1 -1
  73. package/dist/elements/card/CardInspector.vue.d.ts.map +1 -1
  74. package/dist/elements/card/index.d.ts.map +1 -1
  75. package/dist/elements/checkbox/CheckboxDefaultInput.vue.d.ts.map +1 -1
  76. package/dist/elements/checkbox/CheckboxInspector.vue.d.ts.map +1 -1
  77. package/dist/elements/checkbox/CheckboxRenderer.vue.d.ts.map +1 -1
  78. package/dist/elements/checkbox/index.d.ts.map +1 -1
  79. package/dist/elements/date-input/DateInputDefaultInput.vue.d.ts.map +1 -1
  80. package/dist/elements/date-input/DateInputInspector.vue.d.ts.map +1 -1
  81. package/dist/elements/date-input/index.d.ts.map +1 -1
  82. package/dist/elements/datetime-input/DateTimeInputDefaultInput.vue.d.ts.map +1 -1
  83. package/dist/elements/datetime-input/DateTimeInputInspector.vue.d.ts.map +1 -1
  84. package/dist/elements/datetime-input/index.d.ts.map +1 -1
  85. package/dist/elements/feedback/FeedbackInspector.vue.d.ts +8 -0
  86. package/dist/elements/feedback/FeedbackInspector.vue.d.ts.map +1 -0
  87. package/dist/elements/feedback/FeedbackPreview.vue.d.ts +7 -0
  88. package/dist/elements/feedback/FeedbackPreview.vue.d.ts.map +1 -0
  89. package/dist/elements/{stack/StackInspector.vue.d.ts → feedback/FeedbackRenderer.vue.d.ts} +3 -4
  90. package/dist/elements/feedback/FeedbackRenderer.vue.d.ts.map +1 -0
  91. package/dist/elements/feedback/index.d.ts +6 -0
  92. package/dist/elements/feedback/index.d.ts.map +1 -0
  93. package/dist/elements/heading/HeadingInspector.vue.d.ts.map +1 -1
  94. package/dist/elements/heading/index.d.ts.map +1 -1
  95. package/dist/elements/image/ImageInspector.vue.d.ts.map +1 -1
  96. package/dist/elements/link/LinkInspector.vue.d.ts +1 -1
  97. package/dist/elements/link/LinkInspector.vue.d.ts.map +1 -1
  98. package/dist/elements/link/index.d.ts +1 -2
  99. package/dist/elements/link/index.d.ts.map +1 -1
  100. package/dist/elements/multi-select/MultiSelectDefaultInput.vue.d.ts.map +1 -1
  101. package/dist/elements/multi-select/MultiSelectInspector.vue.d.ts.map +1 -1
  102. package/dist/elements/multi-select/index.d.ts.map +1 -1
  103. package/dist/elements/note/NoteInspector.vue.d.ts.map +1 -1
  104. package/dist/elements/number-input/NumberInputDefaultInput.vue.d.ts.map +1 -1
  105. package/dist/elements/number-input/NumberInputInspector.vue.d.ts.map +1 -1
  106. package/dist/elements/number-input/index.d.ts.map +1 -1
  107. package/dist/elements/otp-input/OtpInputInspector.vue.d.ts.map +1 -1
  108. package/dist/elements/otp-input/index.d.ts.map +1 -1
  109. package/dist/elements/paragraph/index.d.ts.map +1 -1
  110. package/dist/elements/password-input/PasswordInputInspector.vue.d.ts.map +1 -1
  111. package/dist/elements/password-input/index.d.ts.map +1 -1
  112. package/dist/elements/radio-group/RadioGroupDefaultInput.vue.d.ts.map +1 -1
  113. package/dist/elements/radio-group/RadioGroupInspector.vue.d.ts.map +1 -1
  114. package/dist/elements/radio-group/index.d.ts.map +1 -1
  115. package/dist/elements/registry.d.ts +109 -0
  116. package/dist/elements/registry.d.ts.map +1 -1
  117. package/dist/elements/repeat/RepeatInspector.vue.d.ts +8 -0
  118. package/dist/elements/repeat/RepeatInspector.vue.d.ts.map +1 -0
  119. package/dist/elements/repeat/RepeatRenderer.vue.d.ts +29 -0
  120. package/dist/elements/repeat/RepeatRenderer.vue.d.ts.map +1 -0
  121. package/dist/elements/repeat/index.d.ts +10 -0
  122. package/dist/elements/repeat/index.d.ts.map +1 -0
  123. package/dist/elements/section/SectionInspector.vue.d.ts.map +1 -1
  124. package/dist/elements/select/SelectDefaultInput.vue.d.ts.map +1 -1
  125. package/dist/elements/select/SelectInspector.vue.d.ts.map +1 -1
  126. package/dist/elements/select/index.d.ts.map +1 -1
  127. package/dist/elements/spacer/SpacerInspector.vue.d.ts.map +1 -1
  128. package/dist/elements/stack/StackRenderer.vue.d.ts.map +1 -1
  129. package/dist/elements/stack/index.d.ts.map +1 -1
  130. package/dist/elements/switch/SwitchDefaultInput.vue.d.ts.map +1 -1
  131. package/dist/elements/switch/SwitchInspector.vue.d.ts.map +1 -1
  132. package/dist/elements/switch/index.d.ts.map +1 -1
  133. package/dist/elements/text-input/TextInputInspector.vue.d.ts.map +1 -1
  134. package/dist/elements/text-input/index.d.ts.map +1 -1
  135. package/dist/elements/usePageElement.d.ts +6 -2
  136. package/dist/elements/usePageElement.d.ts.map +1 -1
  137. package/dist/elements/visual-markup/VisualMarkupInspector.vue.d.ts +10 -0
  138. package/dist/elements/visual-markup/VisualMarkupInspector.vue.d.ts.map +1 -0
  139. package/dist/elements/visual-markup/VisualMarkupPreview.vue.d.ts +7 -0
  140. package/dist/elements/visual-markup/VisualMarkupPreview.vue.d.ts.map +1 -0
  141. package/dist/elements/visual-markup/VisualMarkupRenderer.vue.d.ts +7 -0
  142. package/dist/elements/visual-markup/VisualMarkupRenderer.vue.d.ts.map +1 -0
  143. package/dist/elements/visual-markup/index.d.ts +6 -0
  144. package/dist/elements/visual-markup/index.d.ts.map +1 -0
  145. package/dist/elements/visual-markup/visualDocument.d.ts +13 -0
  146. package/dist/elements/visual-markup/visualDocument.d.ts.map +1 -0
  147. package/dist/expressionAuthoring-DHVx3i-G.js +74 -0
  148. package/dist/index.css +1 -1
  149. package/dist/index.d.ts +22 -2
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +9306 -3676
  152. package/dist/pageCode-hhTSp3xO.js +447 -0
  153. package/dist/pageCode.d.ts +93 -0
  154. package/dist/pageCode.d.ts.map +1 -0
  155. package/dist/pageCodeAuthoring-Fg3yqXt3.js +126 -0
  156. package/dist/presets/authCustomization.d.ts +33 -0
  157. package/dist/presets/authCustomization.d.ts.map +1 -0
  158. package/dist/responsive.d.ts +7 -0
  159. package/dist/responsive.d.ts.map +1 -0
  160. package/dist/runtime/PageRuntimeHost.d.ts +57 -0
  161. package/dist/runtime/PageRuntimeHost.d.ts.map +1 -0
  162. package/dist/runtime/PageScriptRuntime.d.ts +62 -0
  163. package/dist/runtime/PageScriptRuntime.d.ts.map +1 -0
  164. package/dist/runtime/pageScriptRuntime.worker.d.ts +1 -0
  165. package/dist/runtime/pageScriptRuntime.worker.d.ts.map +1 -0
  166. package/dist/runtime/runtimeProtocol.d.ts +150 -0
  167. package/dist/runtime/runtimeProtocol.d.ts.map +1 -0
  168. package/dist/runtime/usePageCodeRuntime.d.ts +33 -0
  169. package/dist/runtime/usePageCodeRuntime.d.ts.map +1 -0
  170. package/dist/runtime-worker.js +240 -0
  171. package/dist/runtimeBindings.d.ts +33 -0
  172. package/dist/runtimeBindings.d.ts.map +1 -0
  173. package/dist/runtimeExpressions.d.ts +16 -0
  174. package/dist/runtimeExpressions.d.ts.map +1 -0
  175. package/dist/runtimeProtocol-Bg1C-O0c.js +36 -0
  176. package/dist/runtimeWorkerEntry.d.ts +2 -0
  177. package/dist/runtimeWorkerEntry.d.ts.map +1 -0
  178. package/dist/schema.d.ts +301 -25
  179. package/dist/schema.d.ts.map +1 -1
  180. package/dist/styleMapping.d.ts +4 -0
  181. package/dist/styleMapping.d.ts.map +1 -1
  182. package/dist/stylePresets.d.ts +4 -0
  183. package/dist/stylePresets.d.ts.map +1 -0
  184. package/dist/translations.d.ts +8 -0
  185. package/dist/translations.d.ts.map +1 -0
  186. package/dist/visualDocument-DPb3svLG.js +139 -0
  187. package/package.json +24 -6
  188. 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 = 5;
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,6 +25,10 @@ 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
  /**
@@ -19,22 +40,120 @@ export interface NodeStyle {
19
40
  size?: 'fit' | 'fill' | 'fixed';
20
41
  /** CSS width. Applied when `size` is `fixed` (or when set without a `size`). */
21
42
  width?: string;
43
+ /** Minimum width of this node's box. */
44
+ minWidth?: string;
45
+ /** Maximum width of this node's box. */
46
+ maxWidth?: string;
47
+ /** CSS height of this node's box. */
48
+ height?: string;
22
49
  /**
23
- * CSS min-height of this node's box, e.g. '100vh', '400px'. On the `page`
50
+ * CSS min-height of this node's box, e.g. '100dvh', '400px'. On the `page`
24
51
  * root this makes the page fill the viewport so `justify` (vertical) +
25
52
  * `align` (horizontal) can center content — e.g. a login card centered on a
26
53
  * full-screen page. The host element provides the width; min-height lets the
27
54
  * page own its vertical extent without depending on host CSS.
28
55
  */
29
56
  minHeight?: string;
57
+ /** Maximum height of this node's box. */
58
+ maxHeight?: string;
59
+ /** CSS aspect-ratio, e.g. `16 / 9` or `1`. */
60
+ aspectRatio?: string;
61
+ /** Overflow behavior of this node's box. */
62
+ overflow?: 'visible' | 'hidden' | 'clip' | 'auto' | 'scroll';
63
+ /** Responsive presentation switch. Hidden nodes do not render or participate in actions. */
64
+ hidden?: boolean;
30
65
  }
66
+ /** Breakpoints use a mobile-first cascade: compact/base → phone → tablet → desktop. */
67
+ export type PageBreakpoint = 'compact' | 'phone' | 'tablet' | 'desktop';
68
+ /** Per-breakpoint style differences. Compact is represented by the base `style`. */
69
+ export type ResponsiveNodeStyles = Partial<Record<Exclude<PageBreakpoint, 'compact'>, Partial<NodeStyle>>>;
31
70
  interface PageNodeBase {
32
71
  /** Stable UUID assigned by the builder. */
33
72
  id: string;
34
73
  style?: NodeStyle;
74
+ /** Host-registered appearance preset id. The document never stores a CSS class. */
75
+ stylePreset?: string;
76
+ /** Mobile-first style overrides; unset properties inherit from the preceding breakpoint. */
77
+ responsive?: ResponsiveNodeStyles;
78
+ /**
79
+ * Builder-only origin of this node inside a reusable composition template.
80
+ * The runtime compiler removes it before delivery. It lets composition
81
+ * updates preserve the instance's public names and node ids.
82
+ */
83
+ compositionOrigins?: PageCompositionOrigin[];
84
+ /**
85
+ * Builder-only link carried by the root of a materialized composition
86
+ * instance. The subtree itself always remains present and renderable.
87
+ */
88
+ composition?: PageCompositionReference;
89
+ }
90
+ /** Immutable source/version selected for one materialized composition instance. */
91
+ export interface PageCompositionReference {
92
+ id: string;
93
+ version: string;
94
+ }
95
+ /** One stable template identity in a possibly nested composition chain. */
96
+ export interface PageCompositionOrigin {
97
+ id: string;
98
+ sourceNodeId: string;
35
99
  }
36
100
  /** Element-specific props. Must stay JSON-safe — the bag is persisted verbatim. */
37
101
  export type ElementProps = Record<string, unknown>;
102
+ export type PageContextValueType = 'string' | 'number' | 'boolean' | 'string[]' | 'object' | 'array';
103
+ export interface PageContextItemField {
104
+ path: string;
105
+ type: Exclude<PageContextValueType, 'array'>;
106
+ }
107
+ /** One explicitly exposed host-context path. Paths not listed here are unreadable. */
108
+ export interface PageContextField {
109
+ path: string;
110
+ type: PageContextValueType;
111
+ itemFields?: PageContextItemField[];
112
+ }
113
+ export interface RuntimeBinding {
114
+ source: 'context' | 'state' | 'item' | 'index' | 'field' | 'selection';
115
+ /** Context/page-state/item/field/selection path. Index bindings omit it. */
116
+ path?: string;
117
+ fallback?: unknown;
118
+ }
119
+ /**
120
+ * A pure JavaScript expression authored by the tenant. The expression returns
121
+ * one value for exactly one target property; it never mutates the page tree.
122
+ * Evaluation happens in the host-provided sandbox runtime, not in the schema
123
+ * resolver. Until a result exists (startup/error), the persisted static value
124
+ * remains authoritative, with `fallback` as the optional final fallback.
125
+ */
126
+ export interface RuntimeExpressionBinding {
127
+ source: 'expression';
128
+ /** False keeps the authored expression but makes the static property authoritative. */
129
+ enabled?: boolean;
130
+ expression: string;
131
+ fallback?: unknown;
132
+ }
133
+ export interface LocalizedValue<T = string> {
134
+ localized: Record<string, T>;
135
+ fallback?: T;
136
+ }
137
+ /**
138
+ * A locale-reactive reference into the page/host translation catalogue.
139
+ * It stays JSON-safe when produced by Element Code; the renderer resolves it
140
+ * after the sandbox result has been applied.
141
+ */
142
+ export interface TranslationBinding {
143
+ source: 'translation';
144
+ key: string;
145
+ params?: Record<string, unknown>;
146
+ fallback?: string;
147
+ }
148
+ /** Page-owned messages, grouped by locale and addressed by stable dot keys. */
149
+ export type PageTranslations = Record<string, Record<string, string>>;
150
+ export interface RuntimeTemplate {
151
+ template: string | LocalizedValue<string> | TranslationBinding;
152
+ placeholders: Record<string, RuntimeBinding>;
153
+ }
154
+ export type PropertyBinding = RuntimeBinding | RuntimeTemplate | RuntimeExpressionBinding | TranslationBinding;
155
+ /** Results supplied by the sandbox runtime, keyed by runtimeExpressionKey(). */
156
+ export type RuntimeExpressionValues = Readonly<Record<string, unknown>>;
38
157
  /**
39
158
  * The unified node grammar: `type` is an open string (the element-registry
40
159
  * key), everything element-specific lives in the `props` bag, and the host
@@ -43,19 +162,33 @@ export type ElementProps = Record<string, unknown>;
43
162
  * can never collide with host fields; built-ins follow the same grammar for
44
163
  * uniformity.
45
164
  *
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`.
165
+ * Every element has one page-wide unique public `name`. Element Code uses it
166
+ * as the stable authoring identity; value elements additionally use the exact
167
+ * same name as their form/value-model key. `defaultValue`/`validation` are only
168
+ * meaningful when the registry definition declares a `value` spec;
169
+ * `children` only when it declares `container`.
49
170
  */
50
171
  export interface ElementNode<K extends string = string, P extends ElementProps = ElementProps> extends PageNodeBase {
51
172
  type: K;
52
173
  props: P;
53
- /** When set (and the definition has a value spec), the renderer manages this node's value. */
174
+ /**
175
+ * Public Page-Code name; also the form key when the definition has a value
176
+ * spec. Canonical v4 documents always contain it. It remains optional in
177
+ * this ingest type so pre-v4 documents can be passed to the normalizer.
178
+ */
54
179
  name?: string;
55
180
  defaultValue?: unknown;
56
181
  validation?: FieldValidation;
182
+ /** Safe host-provided values mapped onto top-level element props. */
183
+ bindings?: Record<string, PropertyBinding>;
57
184
  /** Conditional visibility against the live value model. See `VisibleWhen`. */
58
185
  visibleWhen?: VisibleWhen;
186
+ /**
187
+ * JavaScript configuration for this element. The host evaluates it in its
188
+ * sandbox runtime with a mutable `element` draft and read-only page inputs.
189
+ * Structure, type and name are never part of the returned patch.
190
+ */
191
+ elementCode?: string;
59
192
  children?: PageNode[];
60
193
  }
61
194
  /** Marker bag for elements without element-specific props. */
@@ -73,9 +206,10 @@ export interface OptionItem {
73
206
  export interface PageRootNode extends PageNodeBase {
74
207
  type: 'page';
75
208
  /**
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).
209
+ * Wire-format version. `5` adds authoring metadata for reusable, versioned
210
+ * compositions; `4` makes every element name mandatory and unique;
211
+ * `3` adds responsive overrides, runtime bindings, repeaters and feedback
212
+ * zones. Older documents are migrated on ingest.
79
213
  */
80
214
  schemaVersion?: number;
81
215
  /**
@@ -85,8 +219,38 @@ export interface PageRootNode extends PageNodeBase {
85
219
  * button in tree order. Off by default.
86
220
  */
87
221
  enterSubmits?: boolean;
222
+ /**
223
+ * One JavaScript page program evaluated by a host-provided sandbox runtime.
224
+ * The page-builder persists and edits the source, but never evaluates it.
225
+ * Structural fields (`id`, `type`, `name`, `children`) remain owned by the
226
+ * visual builder; the program can only return configuration drafts.
227
+ */
228
+ pageCode?: string;
229
+ /**
230
+ * Reactive configuration for the page root itself. Unlike the legacy
231
+ * whole-page `pageCode`, this has the same narrow responsibility as an
232
+ * element's `elementCode`: it may configure only the existing root draft
233
+ * (`style`, `responsive`, and `enterSubmits`).
234
+ */
235
+ rootCode?: string;
236
+ /** Customer-authored initial state shared by this page's element scripts. */
237
+ stateCode?: string;
238
+ /** Customer-owned messages edited in the Builder's Translations tab. */
239
+ translations?: PageTranslations;
88
240
  children: PageNode[];
89
241
  }
242
+ export interface PagePreviewFixture {
243
+ id: string;
244
+ label: string;
245
+ context: Record<string, unknown>;
246
+ state?: string;
247
+ locale?: string;
248
+ /** Viewport selected atomically with the fixture. */
249
+ viewport?: PageBreakpoint | {
250
+ width: number;
251
+ height?: number;
252
+ };
253
+ }
90
254
  /**
91
255
  * Generic flex container. Direction is toggleable in the props panel, so users
92
256
  * never have to delete + recreate to switch between vertical and horizontal stacks.
@@ -109,6 +273,30 @@ export interface SectionNode extends ElementNode<'section', {
109
273
  }> {
110
274
  children: PageNode[];
111
275
  }
276
+ export interface RepeatSelection {
277
+ /** ActionValues array field produced by `$selection` checkboxes in the template. */
278
+ name: string;
279
+ valuePath: string;
280
+ requiredPath?: string;
281
+ /** Initial selection for newly observed optional items. */
282
+ defaultSelection?: 'none' | 'all';
283
+ /** @deprecated Use `defaultSelection: 'all'`. */
284
+ defaultSelected?: boolean;
285
+ }
286
+ /** Native template repeater over one allowlisted host-context array. */
287
+ export interface RepeatNode extends ElementNode<'repeat', {
288
+ /** Legacy/host-context source. Page Code may instead provide `items`. */
289
+ source?: string;
290
+ keyPath?: string;
291
+ /** Runtime-only data source produced by Page Code (still JSON-safe data). */
292
+ items?: unknown[];
293
+ itemAlias?: string;
294
+ maxItems?: number;
295
+ emptyText?: string;
296
+ selection?: RepeatSelection;
297
+ }> {
298
+ children: PageNode[];
299
+ }
112
300
  export type DividerNode = ElementNode<'divider', EmptyProps>;
113
301
  export type SpacerNode = ElementNode<'spacer', {
114
302
  /** CSS size, e.g. '24px'. Defaults to flex:1 (fills available space). */
@@ -126,6 +314,12 @@ export type NoteNode = ElementNode<'note', {
126
314
  /** Visual tone of the note box. Defaults to the design system's 'neutral'. */
127
315
  variant?: 'neutral' | 'success' | 'warning' | 'error' | 'info' | 'accent';
128
316
  }>;
317
+ /** Authorable semantic placement for renderer/host feedback. */
318
+ export type FeedbackNode = ElementNode<'feedback', {
319
+ kind?: 'form-error' | 'error' | 'success' | 'info' | 'loading';
320
+ text?: string;
321
+ emptyText?: string;
322
+ }>;
129
323
  export type TextInputNode = ElementNode<'text-input', {
130
324
  label?: string;
131
325
  placeholder?: string;
@@ -217,10 +411,20 @@ export type DateTimeInputNode = ElementNode<'datetime-input', {
217
411
  placeholder?: string;
218
412
  disabled?: boolean;
219
413
  }>;
220
- export type ButtonNode = ElementNode<'button', {
221
- label: string;
414
+ /** Shared props contract for every registry element that declares `action: true`. */
415
+ export interface ActionProps extends ElementProps {
222
416
  /** Action ID matched against the `actions` map passed to the renderer. */
223
417
  action?: string;
418
+ /** Static, JSON-safe additions merged into this action call only. */
419
+ actionValues?: Record<string, unknown>;
420
+ /** Optional single dynamic action value; bind `actionValue` from context, item data, or an expression. */
421
+ actionValueField?: string;
422
+ actionValue?: unknown;
423
+ }
424
+ export type ButtonNode = ElementNode<'button', ActionProps & {
425
+ label: string;
426
+ /** Static or runtime-resolved interaction state. */
427
+ disabled?: boolean;
224
428
  /** When true, validates all named fields before calling the action. */
225
429
  validates?: boolean;
226
430
  /**
@@ -233,16 +437,19 @@ export type ButtonNode = ElementNode<'button', {
233
437
  variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
234
438
  size?: 'xs' | 's' | 'm' | 'l';
235
439
  }>;
236
- export type LinkNode = ElementNode<'link', {
440
+ export type LinkNode = ElementNode<'link', ActionProps & {
237
441
  label: string;
238
- /** Action ID matched against the `actions` map passed to the renderer. */
239
- action?: string;
240
442
  }>;
241
443
  export type ImageNode = ElementNode<'image', {
242
444
  /** Asset ID resolved by `assetResolver` at render time. Never a raw URL. */
243
445
  assetId: string;
244
446
  alt?: string;
245
447
  }>;
448
+ /** Scriptless decorative HTML/SVG/CSS rendered in an opaque sandboxed iframe. */
449
+ export type VisualMarkupNode = ElementNode<'visual-markup', {
450
+ html: string;
451
+ css?: string;
452
+ }>;
246
453
  /**
247
454
  * Declarative field validation, at node level (host vocabulary — uniform for
248
455
  * every valued element). Which rules an element actually enforces is the
@@ -271,15 +478,24 @@ export interface FieldValidation {
271
478
  */
272
479
  export interface VisibleWhen {
273
480
  /** Name of the controlling field (a named input on the page). */
274
- field: string;
481
+ field?: string;
275
482
  /** Visible while the field's value equals this (JSON-safe values compare by content). */
276
483
  equals?: unknown;
277
484
  /** Visible while the field's value is one of these. */
278
485
  in?: unknown[];
486
+ /** Safe source for the extended condition grammar. Legacy conditions omit this. */
487
+ source?: 'field' | 'context' | 'state' | 'item';
488
+ /** Field/context path. State conditions may omit it and compare the current state id. */
489
+ path?: string;
490
+ operator?: 'equals' | 'notEquals' | 'in' | 'notIn' | 'exists' | 'isEmpty' | 'isNotEmpty';
491
+ value?: unknown;
492
+ /** Bounded boolean composition; free expressions are deliberately unsupported. */
493
+ all?: VisibleWhen[];
494
+ any?: VisibleWhen[];
279
495
  }
280
- export type ContainerNode = PageRootNode | StackNode | CardNode | SectionNode;
496
+ export type ContainerNode = PageRootNode | StackNode | CardNode | SectionNode | RepeatNode;
281
497
  /** 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;
498
+ 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
499
  /**
284
500
  * Any node in a page tree. The union is OPEN: the last member admits
285
501
  * consumer-registered elements (whose `type` is their registry key). Code
@@ -337,6 +553,11 @@ export interface PageConfig {
337
553
  * instead; this field wins when both are present.
338
554
  */
339
555
  elements?: PageElementRegistry;
556
+ /**
557
+ * Host-owned CSS presets exposed as safe ids. The builder stores only `id`;
558
+ * renderer and preview resolve the class through this same registration.
559
+ */
560
+ stylePresets?: PageStylePreset[];
340
561
  /**
341
562
  * The data contract behind the page (DTO fields). When present, the
342
563
  * builder's Field section offers these instead of a free-text name —
@@ -345,24 +566,51 @@ export interface PageConfig {
345
566
  * incompatible bindings, and missing required fields.
346
567
  */
347
568
  fields?: PageFieldSpec[];
569
+ /** Typed allowlist of host values the document may bind or use in conditions. */
570
+ contextFields?: PageContextField[];
571
+ /** State ids the host may expose and authors may select in conditions/previews. */
572
+ availableStates?: {
573
+ id: string;
574
+ label: string;
575
+ }[];
576
+ /** Locales offered by the builder for LocalizedValue props. */
577
+ locales?: {
578
+ id: string;
579
+ label: string;
580
+ }[];
581
+ defaultLocale?: string;
582
+ /** Nodes the host requires for security or flow completeness. */
583
+ requiredNodes?: {
584
+ id: string;
585
+ type: string;
586
+ lockVisibility?: boolean;
587
+ lockStyle?: boolean;
588
+ /** Optional generic placement invariant for high-priority content. */
589
+ parentId?: string;
590
+ maxIndex?: number;
591
+ }[];
592
+ documentLimits?: {
593
+ maxNodes?: number;
594
+ maxDepth?: number;
595
+ };
596
+ /** Named, non-persisted sample contexts for deterministic builder previews. */
597
+ previewFixtures?: PagePreviewFixture[];
348
598
  /**
349
599
  * Allow binding names outside `fields`. Defaults to false — with a
350
600
  * contract, authors pick from it.
351
601
  */
352
602
  allowCustomFields?: boolean;
353
603
  /**
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.
604
+ * Hide free value-producing elements from the library and the Inputs entries
605
+ * of the outline's add-child menu — exactly what the field contract replaces;
606
+ * authors then bind fields by dragging contract `fields`. Containers and
607
+ * content/action elements stay available because every form needs layout and
608
+ * chrome. Classification is registry-derived from value-spec presence. Pure
609
+ * authoring UI `allowedElements` remains the usage boundary.
362
610
  */
363
611
  hideElementPicker?: boolean;
364
612
  /**
365
- * Action IDs that buttons and links may reference. When provided, the builder's
613
+ * Action IDs that any registry element with `action: true` may reference. When provided, the builder's
366
614
  * Action-ID input becomes a dropdown of these choices instead of free text.
367
615
  * Omit to allow any string (development / single-tenant scenarios).
368
616
  *
@@ -404,6 +652,34 @@ export interface PageConfig {
404
652
  * When omitted, the image element falls back to a free-text Asset ID input.
405
653
  */
406
654
  pickAsset?: (currentId?: string) => Promise<string | null>;
655
+ /** Host-owned values injected into every scriptless visual-markup document. */
656
+ visualMarkup?: PageVisualMarkupConfig;
657
+ }
658
+ /** One host-approved font made available inside the opaque visual iframe. */
659
+ export interface PageVisualFont {
660
+ id: string;
661
+ family: string;
662
+ /** Only data:font/...;base64 and blob: URLs are accepted by the renderer. */
663
+ source: string;
664
+ format?: 'woff2' | 'woff' | 'truetype' | 'opentype';
665
+ weight?: string;
666
+ style?: 'normal' | 'italic' | 'oblique';
667
+ display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
668
+ }
669
+ export interface PageVisualMarkupConfig {
670
+ /** CSS custom properties only (`--name` → scalar CSS value). */
671
+ themeVariables?: Record<string, string | number>;
672
+ /** All entries are host-owned and security-filtered before @font-face emission. */
673
+ fonts?: PageVisualFont[];
674
+ maxHtmlLength?: number;
675
+ maxCssLength?: number;
676
+ }
677
+ export interface PageStylePreset {
678
+ id: string;
679
+ label: string;
680
+ className: string;
681
+ /** Element registry types that may use the preset. Includes the `page` root marker. */
682
+ allowedOn: string[];
407
683
  }
408
684
  /**
409
685
  * 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).
@@ -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,CA+Cf;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,CAQrE"}
@@ -0,0 +1,4 @@
1
+ import { PageConfig, PageNode, PageStylePreset } from './schema';
2
+ export declare function isSafeStylePreset(preset: PageStylePreset): boolean;
3
+ export declare function findStylePreset(config: PageConfig | undefined, node: Pick<PageNode, 'type' | 'stylePreset'>): PageStylePreset | undefined;
4
+ //# sourceMappingURL=stylePresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylePresets.d.ts","sourceRoot":"","sources":["../src/stylePresets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAIrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAMlE;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,GAC3C,eAAe,GAAG,SAAS,CAM7B"}
@@ -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"}