@kubuild/renderer 0.1.0 → 0.3.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 (56) hide show
  1. package/README.md +105 -0
  2. package/dist/action-dispatcher.d.ts +42 -0
  3. package/dist/action-dispatcher.d.ts.map +1 -0
  4. package/dist/action-runners/api-request.d.ts +77 -0
  5. package/dist/action-runners/api-request.d.ts.map +1 -0
  6. package/dist/action-runners/index.d.ts +24 -0
  7. package/dist/action-runners/index.d.ts.map +1 -0
  8. package/dist/action-runners/modal-manager.d.ts +73 -0
  9. package/dist/action-runners/modal-manager.d.ts.map +1 -0
  10. package/dist/action-runners/navigation-utils.d.ts +49 -0
  11. package/dist/action-runners/navigation-utils.d.ts.map +1 -0
  12. package/dist/action-runners/toast-container.d.ts +20 -0
  13. package/dist/action-runners/toast-container.d.ts.map +1 -0
  14. package/dist/action-runners/toast-manager.d.ts +74 -0
  15. package/dist/action-runners/toast-manager.d.ts.map +1 -0
  16. package/dist/action-runners/ui-feedback.d.ts +37 -0
  17. package/dist/action-runners/ui-feedback.d.ts.map +1 -0
  18. package/dist/artboard-portal-host.d.ts +67 -0
  19. package/dist/artboard-portal-host.d.ts.map +1 -0
  20. package/dist/error-boundary.d.ts +2 -0
  21. package/dist/error-boundary.d.ts.map +1 -1
  22. package/dist/form-context.d.ts +114 -0
  23. package/dist/form-context.d.ts.map +1 -0
  24. package/dist/index.cjs +99 -2690
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +99 -2627
  29. package/dist/index.js.map +1 -1
  30. package/dist/nodes/editable-text.d.ts +15 -0
  31. package/dist/nodes/editable-text.d.ts.map +1 -0
  32. package/dist/nodes/form-nodes.d.ts +186 -0
  33. package/dist/nodes/form-nodes.d.ts.map +1 -0
  34. package/dist/nodes/html-embed.d.ts +15 -0
  35. package/dist/nodes/html-embed.d.ts.map +1 -0
  36. package/dist/nodes/index.d.ts +5 -0
  37. package/dist/nodes/index.d.ts.map +1 -0
  38. package/dist/nodes/media-utils.d.ts +17 -0
  39. package/dist/nodes/media-utils.d.ts.map +1 -0
  40. package/dist/preview-adapter.d.ts +9 -2
  41. package/dist/preview-adapter.d.ts.map +1 -1
  42. package/dist/render-context.d.ts +10 -1
  43. package/dist/render-context.d.ts.map +1 -1
  44. package/dist/renderer.d.ts +4 -24
  45. package/dist/renderer.d.ts.map +1 -1
  46. package/dist/renderers/index.d.ts +3 -0
  47. package/dist/renderers/index.d.ts.map +1 -0
  48. package/dist/renderers/interactive-renderers.d.ts +7 -0
  49. package/dist/renderers/interactive-renderers.d.ts.map +1 -0
  50. package/dist/renderers/render-node-content.d.ts +67 -0
  51. package/dist/renderers/render-node-content.d.ts.map +1 -0
  52. package/dist/styles.d.ts +11 -0
  53. package/dist/styles.d.ts.map +1 -1
  54. package/package.json +6 -5
  55. package/dist/index.mjs +0 -44754
  56. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface EditableTextProps {
3
+ as?: string;
4
+ id?: string;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ value: string;
8
+ isEditable: boolean;
9
+ nodeId: string;
10
+ onClick?: (e: React.MouseEvent) => void;
11
+ onChange?: (val: string, isBlur: boolean) => void;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const EditableText: React.FC<EditableTextProps>;
15
+ //# sourceMappingURL=editable-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editable-text.d.ts","sourceRoot":"","sources":["../../src/nodes/editable-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoEpD,CAAC"}
@@ -0,0 +1,186 @@
1
+ import React from 'react';
2
+ import type { ValidationRule, ValidateOnEvent, ActionPipeline, PageDocument, Node } from '@kubuild/schema';
3
+ import { executeNodeActions } from '../action-dispatcher';
4
+ import type { RenderContext, Diagnostic } from '../render-context';
5
+ export interface FormContainerNodeProps {
6
+ id?: string;
7
+ name?: string;
8
+ action?: string;
9
+ method?: string;
10
+ target?: string;
11
+ autoComplete?: string;
12
+ style?: React.CSSProperties;
13
+ onClick?: (e: React.MouseEvent) => void;
14
+ mode?: 'editor' | 'runtime';
15
+ dataKubuildNode?: string;
16
+ actions?: ActionPipeline[];
17
+ children?: React.ReactNode;
18
+ }
19
+ export declare const FormContainerNode: React.FC<FormContainerNodeProps>;
20
+ export interface FormInputNodeProps {
21
+ id?: string;
22
+ name?: string;
23
+ type?: string;
24
+ placeholder?: string;
25
+ defaultValue?: unknown;
26
+ required?: boolean;
27
+ disabled?: boolean;
28
+ readOnly?: boolean;
29
+ rules?: ValidationRule[];
30
+ validateOn?: ValidateOnEvent;
31
+ transform?: 'trim' | 'lowercase' | 'uppercase' | 'number';
32
+ style?: React.CSSProperties;
33
+ onClick?: (e: React.MouseEvent) => void;
34
+ actions?: ActionPipeline[];
35
+ nodeId?: string;
36
+ document?: PageDocument;
37
+ renderContext?: RenderContext;
38
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
39
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
40
+ dataKubuildNode?: string;
41
+ }
42
+ export declare const FormInputNode: React.FC<FormInputNodeProps>;
43
+ export interface FormTextareaNodeProps {
44
+ id?: string;
45
+ name?: string;
46
+ placeholder?: string;
47
+ defaultValue?: unknown;
48
+ rows?: number;
49
+ required?: boolean;
50
+ disabled?: boolean;
51
+ readOnly?: boolean;
52
+ rules?: ValidationRule[];
53
+ validateOn?: ValidateOnEvent;
54
+ transform?: 'trim' | 'lowercase' | 'uppercase' | 'number';
55
+ style?: React.CSSProperties;
56
+ onClick?: (e: React.MouseEvent) => void;
57
+ actions?: ActionPipeline[];
58
+ nodeId?: string;
59
+ document?: PageDocument;
60
+ renderContext?: RenderContext;
61
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
62
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
63
+ dataKubuildNode?: string;
64
+ }
65
+ export declare const FormTextareaNode: React.FC<FormTextareaNodeProps>;
66
+ export interface FormSelectNodeProps {
67
+ id?: string;
68
+ name?: string;
69
+ placeholder?: string;
70
+ defaultValue?: unknown;
71
+ required?: boolean;
72
+ disabled?: boolean;
73
+ rules?: ValidationRule[];
74
+ validateOn?: ValidateOnEvent;
75
+ optionsList: Array<{
76
+ label: string;
77
+ value: string;
78
+ }>;
79
+ style?: React.CSSProperties;
80
+ onClick?: (e: React.MouseEvent) => void;
81
+ actions?: ActionPipeline[];
82
+ nodeId?: string;
83
+ document?: PageDocument;
84
+ renderContext?: RenderContext;
85
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
86
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
87
+ dataKubuildNode?: string;
88
+ }
89
+ export declare const FormSelectNode: React.FC<FormSelectNodeProps>;
90
+ export interface FormCheckboxNodeProps {
91
+ id?: string;
92
+ name?: string;
93
+ label?: string;
94
+ value?: string;
95
+ defaultChecked?: boolean;
96
+ required?: boolean;
97
+ disabled?: boolean;
98
+ rules?: ValidationRule[];
99
+ validateOn?: ValidateOnEvent;
100
+ style?: React.CSSProperties;
101
+ onClick?: (e: React.MouseEvent) => void;
102
+ actions?: ActionPipeline[];
103
+ nodeId?: string;
104
+ document?: PageDocument;
105
+ renderContext?: RenderContext;
106
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
107
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
108
+ dataKubuildNode?: string;
109
+ isEditable?: boolean;
110
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
111
+ }
112
+ export declare const FormCheckboxNode: React.FC<FormCheckboxNodeProps>;
113
+ export interface FormRadioNodeProps {
114
+ id?: string;
115
+ name?: string;
116
+ label?: string;
117
+ value?: string;
118
+ defaultChecked?: boolean;
119
+ required?: boolean;
120
+ disabled?: boolean;
121
+ rules?: ValidationRule[];
122
+ validateOn?: ValidateOnEvent;
123
+ style?: React.CSSProperties;
124
+ onClick?: (e: React.MouseEvent) => void;
125
+ actions?: ActionPipeline[];
126
+ nodeId?: string;
127
+ document?: PageDocument;
128
+ renderContext?: RenderContext;
129
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
130
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
131
+ dataKubuildNode?: string;
132
+ isEditable?: boolean;
133
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
134
+ }
135
+ export declare const FormRadioNode: React.FC<FormRadioNodeProps>;
136
+ export interface FormButtonClickOptions {
137
+ event: React.MouseEvent;
138
+ buttonType: 'submit' | 'button' | 'reset';
139
+ disabled?: boolean;
140
+ formRuntime?: {
141
+ handleFormSubmit: (e: React.MouseEvent) => Promise<boolean> | boolean;
142
+ resetForm: () => void;
143
+ } | null;
144
+ /** Owner of the click-action pipeline, when one was supplied by the caller. */
145
+ onClick?: (e: React.MouseEvent) => void;
146
+ node?: Node;
147
+ actions?: ActionPipeline[];
148
+ document?: PageDocument;
149
+ renderContext?: RenderContext;
150
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
151
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
152
+ /** Injectable for tests. */
153
+ executeActions?: typeof executeNodeActions;
154
+ }
155
+ /**
156
+ * Click behaviour for a rendered button node: run the form's submit/reset semantics first,
157
+ * then hand off to whoever owns the click-action pipeline.
158
+ *
159
+ * The hand-off matters. `NodeRenderer`'s own `handleClick` already executes `node.actions`
160
+ * for every node type, so if this component executed them too, every pipeline on a
161
+ * non-editable button would fire **twice** per click — which silently cancels any toggling
162
+ * action (e.g. `open_modal` with `toggle: true` opens then immediately closes). So the
163
+ * pipeline runs here only when no `onClick` owner was supplied, i.e. standalone usage.
164
+ *
165
+ * Submit gating is preserved either way: when validation fails, neither path runs.
166
+ */
167
+ export declare function handleFormButtonClick(options: FormButtonClickOptions): Promise<void>;
168
+ export interface FormSubmitButtonNodeProps {
169
+ id?: string;
170
+ buttonType: 'submit' | 'button' | 'reset';
171
+ disabled?: boolean;
172
+ ariaLabel?: string;
173
+ style?: React.CSSProperties;
174
+ onClick?: (e: React.MouseEvent) => void;
175
+ actions?: ActionPipeline[];
176
+ node?: Node;
177
+ document?: PageDocument;
178
+ renderContext?: RenderContext;
179
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
180
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
181
+ dataKubuildNode?: string;
182
+ actionAttrs?: Record<string, unknown>;
183
+ children: React.ReactNode;
184
+ }
185
+ export declare const FormSubmitButtonNode: React.FC<FormSubmitButtonNodeProps>;
186
+ //# sourceMappingURL=form-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-nodes.d.ts","sourceRoot":"","sources":["../../src/nodes/form-nodes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAkD9D,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4JtD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwJ5D,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoKxD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwH5D,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0HtD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACxB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE;QACZ,gBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QACtE,SAAS,EAAE,MAAM,IAAI,CAAC;KACvB,GAAG,IAAI,CAAC;IACT,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,4BAA4B;IAC5B,cAAc,CAAC,EAAE,OAAO,kBAAkB,CAAC;CAC5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C1F;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAqDpE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ /**
3
+ * Scopes custom CSS rules in embed HTML so body/html rules don't leak into the canvas.
4
+ */
5
+ export declare function transformEmbedHtml(rawHtml: string): string;
6
+ export interface HtmlEmbedViewProps {
7
+ id?: string;
8
+ style?: React.CSSProperties;
9
+ onClick?: (e: React.MouseEvent) => void;
10
+ dataKubuildNode?: string;
11
+ html: string;
12
+ role?: string;
13
+ }
14
+ export declare const HtmlEmbedView: React.FC<HtmlEmbedViewProps>;
15
+ //# sourceMappingURL=html-embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-embed.d.ts","sourceRoot":"","sources":["../../src/nodes/html-embed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAI3E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuDtD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './editable-text';
2
+ export * from './html-embed';
3
+ export * from './form-nodes';
4
+ export * from './media-utils';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Helper to convert strings to PascalCase (e.g. for icon names).
3
+ */
4
+ export declare function toPascalCase(str: string): string;
5
+ /**
6
+ * Extracts YouTube video ID from various YouTube URL formats.
7
+ */
8
+ export declare function getYouTubeId(url: string): string | null;
9
+ /**
10
+ * Extracts Vimeo video ID from Vimeo URL formats.
11
+ */
12
+ export declare function getVimeoId(url: string): string | null;
13
+ /**
14
+ * Converts aspect ratio token to CSS aspectRatio value.
15
+ */
16
+ export declare function aspectRatioToCss(ratio: unknown): string | undefined;
17
+ //# sourceMappingURL=media-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-utils.d.ts","sourceRoot":"","sources":["../../src/nodes/media-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOnE"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { PageDocument } from '@kubuild/schema';
3
- import { ComponentRegistry } from '@kubuild/components';
2
+ import { PageDocument, type Artboard } from '@kubuild/schema';
3
+ import type { ComponentRegistry } from '@kubuild/components';
4
4
  import { RenderContext, Diagnostic } from './render-context';
5
5
  /**
6
6
  * Standard supported viewport devices
@@ -104,6 +104,13 @@ export interface PreviewViewportAdapterProps {
104
104
  onDiagnostic?: (diagnostic: Diagnostic) => void;
105
105
  /** Optional action dispatch handler */
106
106
  onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
107
+ /**
108
+ * Component artboards (detached modals/drawers) belonging to the same project as
109
+ * `document`. Passing them lets a trigger in the page open its detached overlay inside
110
+ * this preview, exactly as it will on a published page. Defaults to
111
+ * `context.componentArtboards`.
112
+ */
113
+ componentArtboards?: readonly Artboard[];
107
114
  }
108
115
  /**
109
116
  * Preview Viewport Adapter Component
@@ -1 +1 @@
1
- {"version":3,"file":"preview-adapter.d.ts","sourceRoot":"","sources":["../src/preview-adapter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-adapter.d.ts","sourceRoot":"","sources":["../src/preview-adapter.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { AssetProvider, ActionRegistry, ActionHandler, ActionDiagnostic, Diagnostic, RenderContext, RuntimeContext } from '@kubuild/core';
3
- import { ActionBinding, PageDocument } from '@kubuild/schema';
3
+ import { ActionBinding, Artboard, ArtboardType, PageDocument } from '@kubuild/schema';
4
4
  export type { RenderContext, RuntimeContext, ActionDiagnostic, Diagnostic };
5
5
  /**
6
6
  * Empty default frozen context
@@ -15,6 +15,15 @@ export declare function createRenderContext(options?: {
15
15
  assetProvider?: AssetProvider;
16
16
  actionRegistry?: ActionRegistry;
17
17
  onDiagnostic?: (diagnostic: Diagnostic) => void;
18
+ /**
19
+ * Component artboards reachable from this render. Passing them lets a trigger in one
20
+ * artboard open content that physically lives in another (see ArtboardPortalHost).
21
+ * A default `resolveArtboard` is derived from this list when one isn't supplied.
22
+ */
23
+ componentArtboards?: readonly Artboard[];
24
+ resolveArtboard?: (triggerId: string) => Artboard | undefined;
25
+ /** 'component' when this render is a node being authored alone on its own artboard. */
26
+ artboardSurface?: ArtboardType;
18
27
  }): RenderContext;
19
28
  /**
20
29
  * Minimal offline in-memory context factory.
@@ -1 +1 @@
1
- {"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../src/render-context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../src/render-context.tsx"],"names":[],"mappings":"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"}
@@ -1,30 +1,9 @@
1
1
  import React from 'react';
2
2
  import { PageDocument, Node } from '@kubuild/schema';
3
- import { ComponentRegistry } from '@kubuild/components';
3
+ import { type ComponentRegistry } from '@kubuild/components';
4
4
  import { RenderContext, Diagnostic } from './render-context';
5
- export interface EditableTextProps {
6
- as?: string;
7
- id?: string;
8
- className?: string;
9
- style?: React.CSSProperties;
10
- value: string;
11
- isEditable: boolean;
12
- nodeId: string;
13
- onClick?: (e: React.MouseEvent) => void;
14
- onChange?: (val: string, isBlur: boolean) => void;
15
- [key: string]: unknown;
16
- }
17
- export declare const EditableText: React.FC<EditableTextProps>;
18
- export declare function transformEmbedHtml(rawHtml: string): string;
19
- export interface HtmlEmbedViewProps {
20
- id?: string;
21
- style?: React.CSSProperties;
22
- onClick?: (e: React.MouseEvent) => void;
23
- dataKubuildNode?: string;
24
- html: string;
25
- role?: string;
26
- }
27
- export declare const HtmlEmbedView: React.FC<HtmlEmbedViewProps>;
5
+ export * from './nodes';
6
+ export * from './renderers';
28
7
  export interface KubuildRendererProps {
29
8
  document: PageDocument;
30
9
  registry?: ComponentRegistry;
@@ -32,6 +11,7 @@ export interface KubuildRendererProps {
32
11
  viewport?: 'desktop' | 'tablet' | 'mobile';
33
12
  mode?: 'editor' | 'runtime';
34
13
  className?: string;
14
+ showToastContainer?: boolean;
35
15
  onNodeClick?: (nodeId: string, event: React.MouseEvent) => void;
36
16
  onDiagnostic?: (diagnostic: Diagnostic) => void;
37
17
  onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,IAAI,EAEL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EACL,aAAa,EAKb,UAAU,EACX,MAAM,kBAAkB,CAAC;AAY1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACjG;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChG;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAuBD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,QAAoB,EACpB,IAAgB,EAChB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAmB,GACpB,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA+LxC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8C1D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './render-node-content';
2
+ export * from './interactive-renderers';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from './render-node-content';
3
+ /**
4
+ * Interactive nodes: modal, drawer, collapsible
5
+ */
6
+ export declare function renderInteractiveNode(options: RenderNodeContentOptions): React.ReactElement | null;
7
+ //# sourceMappingURL=interactive-renderers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-renderers.d.ts","sourceRoot":"","sources":["../../src/renderers/interactive-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6UlG"}
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import { PageDocument, Node } from '@kubuild/schema';
3
+ import type { ComponentRegistry, ComponentDefinition } from '@kubuild/components';
4
+ import { RenderContext, Diagnostic } from '../render-context';
5
+ export interface RenderNodeContentOptions {
6
+ node: Node;
7
+ document: PageDocument;
8
+ registry: ComponentRegistry;
9
+ context: RenderContext;
10
+ viewport: 'desktop' | 'tablet' | 'mobile';
11
+ mode: 'editor' | 'runtime';
12
+ styles: React.CSSProperties;
13
+ props: Record<string, unknown>;
14
+ resolvedProps: Record<string, unknown>;
15
+ definition?: ComponentDefinition;
16
+ domId: string;
17
+ childrenElements?: React.ReactNode;
18
+ handleClick: (e: React.MouseEvent) => void;
19
+ onNodeClick?: (nodeId: string, event: React.MouseEvent) => void;
20
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
21
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
22
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
23
+ instanceSuffix?: string;
24
+ isModalOpen?: boolean;
25
+ renderChildNode: (child: Node, instanceSuffix?: string, itemContext?: RenderContext) => React.ReactElement;
26
+ }
27
+ /**
28
+ * Renders custom component if registered in ComponentRegistry.
29
+ */
30
+ export declare function renderCustomComponent(options: RenderNodeContentOptions): React.ReactElement | null;
31
+ /**
32
+ * Layout nodes: page, section, container, columns
33
+ */
34
+ export declare function renderLayoutNode(options: RenderNodeContentOptions): React.ReactElement | null;
35
+ /**
36
+ * Typography nodes: heading, text, paragraph, link, blockquote, badge, code-block
37
+ */
38
+ export declare function renderTypographyNode(options: RenderNodeContentOptions): React.ReactElement | null;
39
+ /**
40
+ * List nodes: list, list-item
41
+ */
42
+ export declare function renderListNode(options: RenderNodeContentOptions): React.ReactElement | null;
43
+ /**
44
+ * Table nodes: table, table-row, table-cell
45
+ */
46
+ export declare function renderTableNode(options: RenderNodeContentOptions): React.ReactElement | null;
47
+ /**
48
+ * Media nodes: image, video, icon, html-embed
49
+ */
50
+ export declare function renderMediaNode(options: RenderNodeContentOptions): React.ReactElement | null;
51
+ /**
52
+ * Form nodes: button, form, input, textarea, select, checkbox, radio
53
+ */
54
+ export declare function renderFormNode(options: RenderNodeContentOptions): React.ReactElement | null;
55
+ /**
56
+ * Collection node: collection
57
+ */
58
+ export declare function renderCollectionNode(options: RenderNodeContentOptions): React.ReactElement | null;
59
+ /**
60
+ * Fallback node for unregistered / unknown types.
61
+ */
62
+ export declare function renderFallbackNode(options: RenderNodeContentOptions): React.ReactElement;
63
+ /**
64
+ * Master dispatcher function for rendering node content based on node type.
65
+ */
66
+ export declare function renderNodeContent(options: RenderNodeContentOptions): React.ReactElement;
67
+ //# sourceMappingURL=render-node-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-node-content.d.ts","sourceRoot":"","sources":["../../src/renderers/render-node-content.tsx"],"names":[],"mappings":"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"}
package/dist/styles.d.ts CHANGED
@@ -1,5 +1,16 @@
1
1
  import { PageDocument, ResponsiveStyles } from '@kubuild/schema';
2
2
  import React from 'react';
3
+ /**
4
+ * Normalizes CSS and Kubuild style properties into standard, valid React.CSSProperties.
5
+ * Resolves:
6
+ * - CSS Grid properties: gridTemplateColumns, gridTemplateRows, gridAutoFlow, gridColumn, gridRow, colSpan, rowSpan
7
+ * - Auto Layout flex properties: flexDirection, flexWrap, justifyContent, alignItems, gap, etc.
8
+ * - Child sizing modes: 'fit-content' (hug), 'fill' (flex: 1 1 0%, width: 100%)
9
+ * - 4-corner border radius: borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius
10
+ * - Backdrop blur: backdropFilter, backdropBlur, WebkitBackdropFilter
11
+ * - Linear and radial gradients: gradient, backgroundGradient, backgroundImage
12
+ */
13
+ export declare function normalizeStyleObject(raw: Record<string, unknown> | undefined): React.CSSProperties;
3
14
  export declare function resolveNodeStyles(styles?: ResponsiveStyles, viewport?: 'desktop' | 'tablet' | 'mobile'): React.CSSProperties;
4
15
  /**
5
16
  * Serialize a style definition object into CSS declarations.
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAQ,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,iBAAiB,CAC/B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,GAAE,SAAS,GAAG,QAAQ,GAAG,QAAoB,GACpD,KAAK,CAAC,aAAa,CAKrB;AAiBD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,MAAM,CAUR;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,EACzC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAwB,GACrD,MAAM,CAwBR;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QA0BtB,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAQ,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACvC,KAAK,CAAC,aAAa,CAqGrB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,GAAE,SAAS,GAAG,QAAQ,GAAG,QAAoB,GACpD,KAAK,CAAC,aAAa,CAMrB;AAiBD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,MAAM,CAmBR;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,EACzC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAwB,GACrD,MAAM,CAwBR;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QA0BtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubuild/renderer",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Pure recursive React renderer for KUBUILD page documents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -22,7 +22,8 @@
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",
25
- "url": "git+https://github.com/kustora/kubuild.git"
25
+ "url": "git+https://github.com/kustora/kubuild.git",
26
+ "directory": "packages/renderer"
26
27
  },
27
28
  "keywords": [
28
29
  "page-builder",
@@ -40,9 +41,9 @@
40
41
  "homepage": "https://github.com/kustora/kubuild#readme",
41
42
  "dependencies": {
42
43
  "lucide-react": "^1.33.0",
43
- "@kubuild/components": "0.1.0",
44
- "@kubuild/schema": "0.1.0",
45
- "@kubuild/core": "0.1.0"
44
+ "@kubuild/components": "0.3.0",
45
+ "@kubuild/core": "0.3.0",
46
+ "@kubuild/schema": "0.3.0"
46
47
  },
47
48
  "peerDependencies": {
48
49
  "react": ">=18.0.0",