@kubuild/renderer 0.0.1 → 0.2.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 (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -0
  3. package/dist/action-dispatcher.d.ts +42 -0
  4. package/dist/action-dispatcher.d.ts.map +1 -0
  5. package/dist/action-runners/api-request.d.ts +77 -0
  6. package/dist/action-runners/api-request.d.ts.map +1 -0
  7. package/dist/action-runners/index.d.ts +24 -0
  8. package/dist/action-runners/index.d.ts.map +1 -0
  9. package/dist/action-runners/modal-manager.d.ts +68 -0
  10. package/dist/action-runners/modal-manager.d.ts.map +1 -0
  11. package/dist/action-runners/navigation-utils.d.ts +49 -0
  12. package/dist/action-runners/navigation-utils.d.ts.map +1 -0
  13. package/dist/action-runners/toast-container.d.ts +20 -0
  14. package/dist/action-runners/toast-container.d.ts.map +1 -0
  15. package/dist/action-runners/toast-manager.d.ts +74 -0
  16. package/dist/action-runners/toast-manager.d.ts.map +1 -0
  17. package/dist/action-runners/ui-feedback.d.ts +33 -0
  18. package/dist/action-runners/ui-feedback.d.ts.map +1 -0
  19. package/dist/animation.d.ts +26 -0
  20. package/dist/animation.d.ts.map +1 -0
  21. package/dist/code-generator.d.ts +47 -0
  22. package/dist/code-generator.d.ts.map +1 -0
  23. package/dist/error-boundary.d.ts +2 -0
  24. package/dist/error-boundary.d.ts.map +1 -1
  25. package/dist/form-context.d.ts +114 -0
  26. package/dist/form-context.d.ts.map +1 -0
  27. package/dist/index.cjs +184 -2044
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +7 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +184 -1990
  32. package/dist/index.js.map +1 -1
  33. package/dist/nodes/editable-text.d.ts +15 -0
  34. package/dist/nodes/editable-text.d.ts.map +1 -0
  35. package/dist/nodes/form-nodes.d.ts +153 -0
  36. package/dist/nodes/form-nodes.d.ts.map +1 -0
  37. package/dist/nodes/html-embed.d.ts +15 -0
  38. package/dist/nodes/html-embed.d.ts.map +1 -0
  39. package/dist/nodes/index.d.ts +5 -0
  40. package/dist/nodes/index.d.ts.map +1 -0
  41. package/dist/nodes/media-utils.d.ts +17 -0
  42. package/dist/nodes/media-utils.d.ts.map +1 -0
  43. package/dist/preview-adapter.d.ts +1 -1
  44. package/dist/preview-adapter.d.ts.map +1 -1
  45. package/dist/renderer.d.ts +4 -24
  46. package/dist/renderer.d.ts.map +1 -1
  47. package/dist/renderers/index.d.ts +2 -0
  48. package/dist/renderers/index.d.ts.map +1 -0
  49. package/dist/renderers/render-node-content.d.ts +66 -0
  50. package/dist/renderers/render-node-content.d.ts.map +1 -0
  51. package/dist/styles.d.ts +8 -3
  52. package/dist/styles.d.ts.map +1 -1
  53. package/package.json +13 -14
@@ -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,153 @@
1
+ import React from 'react';
2
+ import type { ValidationRule, ValidateOnEvent, ActionPipeline, PageDocument, Node } from '@kubuild/schema';
3
+ import type { RenderContext, Diagnostic } from '../render-context';
4
+ export interface FormContainerNodeProps {
5
+ id?: string;
6
+ name?: string;
7
+ action?: string;
8
+ method?: string;
9
+ target?: string;
10
+ autoComplete?: string;
11
+ style?: React.CSSProperties;
12
+ onClick?: (e: React.MouseEvent) => void;
13
+ mode?: 'editor' | 'runtime';
14
+ dataKubuildNode?: string;
15
+ actions?: ActionPipeline[];
16
+ children?: React.ReactNode;
17
+ }
18
+ export declare const FormContainerNode: React.FC<FormContainerNodeProps>;
19
+ export interface FormInputNodeProps {
20
+ id?: string;
21
+ name?: string;
22
+ type?: string;
23
+ placeholder?: string;
24
+ defaultValue?: unknown;
25
+ required?: boolean;
26
+ disabled?: boolean;
27
+ readOnly?: boolean;
28
+ rules?: ValidationRule[];
29
+ validateOn?: ValidateOnEvent;
30
+ transform?: 'trim' | 'lowercase' | 'uppercase' | 'number';
31
+ style?: React.CSSProperties;
32
+ onClick?: (e: React.MouseEvent) => void;
33
+ actions?: ActionPipeline[];
34
+ nodeId?: string;
35
+ document?: PageDocument;
36
+ renderContext?: RenderContext;
37
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
38
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
39
+ dataKubuildNode?: string;
40
+ }
41
+ export declare const FormInputNode: React.FC<FormInputNodeProps>;
42
+ export interface FormTextareaNodeProps {
43
+ id?: string;
44
+ name?: string;
45
+ placeholder?: string;
46
+ defaultValue?: unknown;
47
+ rows?: number;
48
+ required?: boolean;
49
+ disabled?: boolean;
50
+ readOnly?: boolean;
51
+ rules?: ValidationRule[];
52
+ validateOn?: ValidateOnEvent;
53
+ transform?: 'trim' | 'lowercase' | 'uppercase' | 'number';
54
+ style?: React.CSSProperties;
55
+ onClick?: (e: React.MouseEvent) => void;
56
+ actions?: ActionPipeline[];
57
+ nodeId?: string;
58
+ document?: PageDocument;
59
+ renderContext?: RenderContext;
60
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
61
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
62
+ dataKubuildNode?: string;
63
+ }
64
+ export declare const FormTextareaNode: React.FC<FormTextareaNodeProps>;
65
+ export interface FormSelectNodeProps {
66
+ id?: string;
67
+ name?: string;
68
+ placeholder?: string;
69
+ defaultValue?: unknown;
70
+ required?: boolean;
71
+ disabled?: boolean;
72
+ rules?: ValidationRule[];
73
+ validateOn?: ValidateOnEvent;
74
+ optionsList: Array<{
75
+ label: string;
76
+ value: string;
77
+ }>;
78
+ style?: React.CSSProperties;
79
+ onClick?: (e: React.MouseEvent) => void;
80
+ actions?: ActionPipeline[];
81
+ nodeId?: string;
82
+ document?: PageDocument;
83
+ renderContext?: RenderContext;
84
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
85
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
86
+ dataKubuildNode?: string;
87
+ }
88
+ export declare const FormSelectNode: React.FC<FormSelectNodeProps>;
89
+ export interface FormCheckboxNodeProps {
90
+ id?: string;
91
+ name?: string;
92
+ label?: string;
93
+ value?: string;
94
+ defaultChecked?: boolean;
95
+ required?: boolean;
96
+ disabled?: boolean;
97
+ rules?: ValidationRule[];
98
+ validateOn?: ValidateOnEvent;
99
+ style?: React.CSSProperties;
100
+ onClick?: (e: React.MouseEvent) => void;
101
+ actions?: ActionPipeline[];
102
+ nodeId?: string;
103
+ document?: PageDocument;
104
+ renderContext?: RenderContext;
105
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
106
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
107
+ dataKubuildNode?: string;
108
+ isEditable?: boolean;
109
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
110
+ }
111
+ export declare const FormCheckboxNode: React.FC<FormCheckboxNodeProps>;
112
+ export interface FormRadioNodeProps {
113
+ id?: string;
114
+ name?: string;
115
+ label?: string;
116
+ value?: string;
117
+ defaultChecked?: boolean;
118
+ required?: boolean;
119
+ disabled?: boolean;
120
+ rules?: ValidationRule[];
121
+ validateOn?: ValidateOnEvent;
122
+ style?: React.CSSProperties;
123
+ onClick?: (e: React.MouseEvent) => void;
124
+ actions?: ActionPipeline[];
125
+ nodeId?: string;
126
+ document?: PageDocument;
127
+ renderContext?: RenderContext;
128
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
129
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
130
+ dataKubuildNode?: string;
131
+ isEditable?: boolean;
132
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
133
+ }
134
+ export declare const FormRadioNode: React.FC<FormRadioNodeProps>;
135
+ export interface FormSubmitButtonNodeProps {
136
+ id?: string;
137
+ buttonType: 'submit' | 'button' | 'reset';
138
+ disabled?: boolean;
139
+ ariaLabel?: string;
140
+ style?: React.CSSProperties;
141
+ onClick?: (e: React.MouseEvent) => void;
142
+ actions?: ActionPipeline[];
143
+ node?: Node;
144
+ document?: PageDocument;
145
+ renderContext?: RenderContext;
146
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
147
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
148
+ dataKubuildNode?: string;
149
+ actionAttrs?: Record<string, unknown>;
150
+ children: React.ReactNode;
151
+ }
152
+ export declare const FormSubmitButtonNode: React.FC<FormSubmitButtonNodeProps>;
153
+ //# 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":"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"}
@@ -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
2
  import { PageDocument } 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
5
  /**
6
6
  * Standard supported viewport devices
@@ -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,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;AAW1B,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;AAED,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,CAqKxC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8C1D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './render-node-content';
2
+ //# 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"}
@@ -0,0 +1,66 @@
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
+ renderChildNode: (child: Node, instanceSuffix?: string, itemContext?: RenderContext) => React.ReactElement;
25
+ }
26
+ /**
27
+ * Renders custom component if registered in ComponentRegistry.
28
+ */
29
+ export declare function renderCustomComponent(options: RenderNodeContentOptions): React.ReactElement | null;
30
+ /**
31
+ * Layout nodes: page, section, container, columns
32
+ */
33
+ export declare function renderLayoutNode(options: RenderNodeContentOptions): React.ReactElement | null;
34
+ /**
35
+ * Typography nodes: heading, text, paragraph, link, blockquote, badge, code-block
36
+ */
37
+ export declare function renderTypographyNode(options: RenderNodeContentOptions): React.ReactElement | null;
38
+ /**
39
+ * List nodes: list, list-item
40
+ */
41
+ export declare function renderListNode(options: RenderNodeContentOptions): React.ReactElement | null;
42
+ /**
43
+ * Table nodes: table, table-row, table-cell
44
+ */
45
+ export declare function renderTableNode(options: RenderNodeContentOptions): React.ReactElement | null;
46
+ /**
47
+ * Media nodes: image, video, icon, html-embed
48
+ */
49
+ export declare function renderMediaNode(options: RenderNodeContentOptions): React.ReactElement | null;
50
+ /**
51
+ * Form nodes: button, form, input, textarea, select, checkbox, radio
52
+ */
53
+ export declare function renderFormNode(options: RenderNodeContentOptions): React.ReactElement | null;
54
+ /**
55
+ * Collection node: collection
56
+ */
57
+ export declare function renderCollectionNode(options: RenderNodeContentOptions): React.ReactElement | null;
58
+ /**
59
+ * Fallback node for unregistered / unknown types.
60
+ */
61
+ export declare function renderFallbackNode(options: RenderNodeContentOptions): React.ReactElement;
62
+ /**
63
+ * Master dispatcher function for rendering node content based on node type.
64
+ */
65
+ export declare function renderNodeContent(options: RenderNodeContentOptions): React.ReactElement;
66
+ //# 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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,IAAI,EAML,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EACL,aAAa,EAGb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAkB3B,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C,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,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,aAAa,KAAK,KAAK,CAAC,YAAY,CAAC;CAC5G;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAyClG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6C7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA2QjG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAwE3F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuG5F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAsM5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAiX3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAiHjG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAgCxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAmCvF"}
package/dist/styles.d.ts CHANGED
@@ -5,17 +5,22 @@ export declare function resolveNodeStyles(styles?: ResponsiveStyles, viewport?:
5
5
  * Serialize a style definition object into CSS declarations.
6
6
  * camelCase keys are converted to kebab-case CSS properties.
7
7
  */
8
- export declare function styleDefinitionToCssDeclarations(styleDefinition: Record<string, unknown> | undefined): string;
8
+ export declare function styleDefinitionToCssDeclarations(styleDefinition: Record<string, unknown> | undefined, options?: {
9
+ important?: boolean;
10
+ }): string;
9
11
  /**
10
12
  * Walk the document tree and produce scoped CSS rules for pseudo-state
11
13
  * style layers (STORA-222). Each node with `styles.states` gets rules like:
12
14
  *
13
- * [data-kubuild-node="node-1"]:hover { background-color: #1d4ed8; }
15
+ * [data-kubuild-node="node-1"]:hover { background-color: #1d4ed8 !important; }
14
16
  *
15
17
  * Scoped via the canonical `data-kubuild-node` attribute so styles never leak
16
18
  * between nodes and work identically in editor canvas and runtime preview.
19
+ * Uses `!important` to reliably override the component's inline base style attributes.
17
20
  */
18
- export declare function collectStateStylesCss(document: PageDocument | undefined | null): string;
21
+ export declare function collectStateStylesCss(document: PageDocument | undefined | null, options?: {
22
+ important?: boolean;
23
+ }): string;
19
24
  /**
20
25
  * Modern baseline CSS Reset for consistent rendering across viewports and browsers.
21
26
  */
@@ -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,GACnD,MAAM,CASR;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAuBvF;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,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubuild/renderer",
3
- "version": "0.0.1",
3
+ "version": "0.2.0",
4
4
  "description": "Pure recursive React renderer for KUBUILD page documents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -20,14 +20,6 @@
20
20
  "publishConfig": {
21
21
  "access": "public"
22
22
  },
23
- "scripts": {
24
- "build": "tsup && tsc --emitDeclarationOnly",
25
- "dev": "tsup --watch",
26
- "typecheck": "tsc --noEmit",
27
- "lint": "eslint src",
28
- "test": "vitest run",
29
- "prepublishOnly": "pnpm run build"
30
- },
31
23
  "repository": {
32
24
  "type": "git",
33
25
  "url": "git+https://github.com/kustora/kubuild.git"
@@ -47,10 +39,10 @@
47
39
  },
48
40
  "homepage": "https://github.com/kustora/kubuild#readme",
49
41
  "dependencies": {
50
- "@kubuild/components": "workspace:*",
51
- "@kubuild/core": "workspace:*",
52
- "@kubuild/schema": "workspace:*",
53
- "lucide-react": "^1.33.0"
42
+ "lucide-react": "^1.33.0",
43
+ "@kubuild/components": "0.2.0",
44
+ "@kubuild/schema": "0.2.0",
45
+ "@kubuild/core": "0.2.0"
54
46
  },
55
47
  "peerDependencies": {
56
48
  "react": ">=18.0.0",
@@ -64,5 +56,12 @@
64
56
  "tsup": "^8.3.6",
65
57
  "typescript": "^6.0.0",
66
58
  "vitest": "^3.0.5"
59
+ },
60
+ "scripts": {
61
+ "build": "tsup && tsc --emitDeclarationOnly",
62
+ "dev": "tsup --watch",
63
+ "typecheck": "tsc --noEmit",
64
+ "lint": "eslint src",
65
+ "test": "vitest run"
67
66
  }
68
- }
67
+ }