@kubuild/renderer 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-dispatcher.d.ts.map +1 -1
- package/dist/action-runners/api-request.d.ts +13 -1
- package/dist/action-runners/api-request.d.ts.map +1 -1
- package/dist/artboard-portal-host.d.ts +3 -0
- package/dist/artboard-portal-host.d.ts.map +1 -1
- package/dist/code-generator.d.ts +5 -1
- package/dist/code-generator.d.ts.map +1 -1
- package/dist/form-context.d.ts.map +1 -1
- package/dist/index.cjs +90 -90
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -90
- package/dist/legacy-actions.d.ts +19 -0
- package/dist/legacy-actions.d.ts.map +1 -0
- package/dist/nodes/editable-text.d.ts.map +1 -1
- package/dist/nodes/extended-form-nodes.d.ts +118 -0
- package/dist/nodes/extended-form-nodes.d.ts.map +1 -0
- package/dist/nodes/form-nodes.d.ts.map +1 -1
- package/dist/nodes/index.d.ts +2 -0
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/radio-group-context.d.ts +12 -0
- package/dist/nodes/radio-group-context.d.ts.map +1 -0
- package/dist/preview-adapter.d.ts +5 -4
- package/dist/preview-adapter.d.ts.map +1 -1
- package/dist/prop-resolution.d.ts.map +1 -1
- package/dist/render-context.d.ts +8 -0
- package/dist/render-context.d.ts.map +1 -1
- package/dist/renderer.d.ts +31 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderers/conversion/accordion.d.ts +20 -0
- package/dist/renderers/conversion/accordion.d.ts.map +1 -0
- package/dist/renderers/conversion/carousel.d.ts +13 -0
- package/dist/renderers/conversion/carousel.d.ts.map +1 -0
- package/dist/renderers/conversion/countdown.d.ts +50 -0
- package/dist/renderers/conversion/countdown.d.ts.map +1 -0
- package/dist/renderers/conversion/divider.d.ts +9 -0
- package/dist/renderers/conversion/divider.d.ts.map +1 -0
- package/dist/renderers/conversion/index.d.ts +13 -0
- package/dist/renderers/conversion/index.d.ts.map +1 -0
- package/dist/renderers/conversion/rating.d.ts +14 -0
- package/dist/renderers/conversion/rating.d.ts.map +1 -0
- package/dist/renderers/conversion/shared.d.ts +17 -0
- package/dist/renderers/conversion/shared.d.ts.map +1 -0
- package/dist/renderers/conversion/tabs.d.ts +7 -0
- package/dist/renderers/conversion/tabs.d.ts.map +1 -0
- package/dist/renderers/extended-form-renderers.d.ts +8 -0
- package/dist/renderers/extended-form-renderers.d.ts.map +1 -0
- package/dist/renderers/index.d.ts +2 -0
- package/dist/renderers/index.d.ts.map +1 -1
- package/dist/renderers/render-node-content.d.ts.map +1 -1
- package/dist/styles.d.ts +58 -2
- package/dist/styles.d.ts.map +1 -1
- package/dist/theme.d.ts +20 -0
- package/dist/theme.d.ts.map +1 -0
- package/package.json +8 -8
|
@@ -1 +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,
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import { PageDocument, ResponsiveStyles } from '@kubuild/schema';
|
|
1
|
+
import { PageDocument, Node, ResponsiveStyles, type BreakpointName } from '@kubuild/schema';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* Normalizes CSS and Kubuild style properties into standard, valid React.CSSProperties.
|
|
@@ -11,7 +11,63 @@ import React from 'react';
|
|
|
11
11
|
* - Linear and radial gradients: gradient, backgroundGradient, backgroundImage
|
|
12
12
|
*/
|
|
13
13
|
export declare function normalizeStyleObject(raw: Record<string, unknown> | undefined): React.CSSProperties;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* How the renderer applies `styles.desktop` / `styles.tablet` / `styles.mobile` (STORA-540).
|
|
16
|
+
*
|
|
17
|
+
* - `'viewport'`: merge `base` with the single layer named by the `viewport` prop into the
|
|
18
|
+
* inline style. Used by the editor canvas, where each device frame previews one viewport
|
|
19
|
+
* regardless of the real browser width.
|
|
20
|
+
* - `'css'`: inline style is `base` only; breakpoint layers are emitted as `@media` rules
|
|
21
|
+
* scoped to `[data-kubuild-node="…"]`, so the real browser width picks the layer. Output
|
|
22
|
+
* depends only on the document, so server and client render identical markup.
|
|
23
|
+
*/
|
|
24
|
+
export type ResponsiveMode = 'css' | 'viewport';
|
|
25
|
+
export declare function resolveNodeStyles(styles?: ResponsiveStyles, viewport?: BreakpointName): React.CSSProperties;
|
|
26
|
+
/** Normalized `base` layer only — the inline style used by `responsive: 'css'`. */
|
|
27
|
+
export declare function resolveBaseNodeStyles(styles?: ResponsiveStyles): React.CSSProperties;
|
|
28
|
+
/**
|
|
29
|
+
* Split a node's responsive styles into the always-on `base` style plus, per breakpoint,
|
|
30
|
+
* only the declarations that differ from it.
|
|
31
|
+
*
|
|
32
|
+
* Each override is computed on the *normalized* merge (`base` + layer), i.e. exactly what
|
|
33
|
+
* `resolveNodeStyles(styles, breakpoint)` returns, so CSS output reproduces the
|
|
34
|
+
* `viewport`-mode result at every width. A property present in `base` but dropped by the
|
|
35
|
+
* merge (e.g. the implicit `flex` that `width: 'fill'` adds) is reset with `unset`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveResponsiveStyleLayers(styles?: ResponsiveStyles): {
|
|
38
|
+
base: Record<string, unknown>;
|
|
39
|
+
overrides: Partial<Record<BreakpointName, Record<string, unknown>>>;
|
|
40
|
+
};
|
|
41
|
+
export interface ResponsiveCssRule {
|
|
42
|
+
nodeId: string;
|
|
43
|
+
declarations: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Walk a node tree and collect per-breakpoint override declarations in tree order.
|
|
47
|
+
* Shared by the runtime renderer (`collectResponsiveStylesCss`) and the static code
|
|
48
|
+
* generator, so both emit the same overrides under the same media queries (STORA-542).
|
|
49
|
+
*/
|
|
50
|
+
export declare function collectResponsiveCssRules(root: Node | undefined | null, options?: {
|
|
51
|
+
important?: boolean;
|
|
52
|
+
}): Record<BreakpointName, ResponsiveCssRule[]>;
|
|
53
|
+
/** Scoped attribute selector matching the element the renderer tags with a node id. */
|
|
54
|
+
export declare function nodeAttributeSelector(nodeId: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Produce the `@media` stylesheet for `responsive: 'css'` (STORA-540), e.g.
|
|
57
|
+
*
|
|
58
|
+
* @media (max-width: 767.98px) {
|
|
59
|
+
* [data-kubuild-node="grid-1"] { grid-template-columns: 1fr !important; }
|
|
60
|
+
* }
|
|
61
|
+
*
|
|
62
|
+
* Declarations use `!important` because the `base` layer (and component defaults) are
|
|
63
|
+
* inline styles, which otherwise beat any stylesheet rule. Pseudo-state rules from
|
|
64
|
+
* `collectStateStylesCss` still win while active since `[…]:hover` is more specific.
|
|
65
|
+
* The output is a pure function of the document (no `window`/`matchMedia` access), so
|
|
66
|
+
* SSR and hydration produce byte-identical `<style>` content.
|
|
67
|
+
*/
|
|
68
|
+
export declare function collectResponsiveStylesCss(document: PageDocument | undefined | null, options?: {
|
|
69
|
+
important?: boolean;
|
|
70
|
+
}): string;
|
|
15
71
|
/**
|
|
16
72
|
* Serialize a style definition object into CSS declarations.
|
|
17
73
|
* camelCase keys are converted to kebab-case CSS properties.
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,gBAAgB,EAGhB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AACzB,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,CAuHrB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,CAAC;AAEhD,wBAAgB,iBAAiB,CAC/B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,GAAE,cAA0B,GACnC,KAAK,CAAC,aAAa,CAMrB;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAGpF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACrE,CAsBA;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,EAC7B,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAuB7C;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,EACzC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAwB,GACrD,MAAM,CAeR;AAkFD;;;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,CAMR;AA2BD;;;;;;;;;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/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { type PageDocument, type Theme } from '@kubuild/schema';
|
|
3
|
+
import type { RenderContext } from '@kubuild/core';
|
|
4
|
+
/**
|
|
5
|
+
* Document theme (STORA-551) with the host's runtime override (`RenderContext.theme`, e.g. a
|
|
6
|
+
* per-tenant brand color) layered on top. Neither input is mutated.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveRuntimeTheme(document: Pick<PageDocument, 'theme'> | undefined | null, context?: Pick<RenderContext, 'theme'> | null): Theme;
|
|
9
|
+
/**
|
|
10
|
+
* Theme tokens as a React inline-style object of CSS custom properties
|
|
11
|
+
* (`{ '--kb-color-primary': '#2563eb' }`). Unsafe keys/values are dropped, so this is safe
|
|
12
|
+
* to call on an unvalidated host override.
|
|
13
|
+
*/
|
|
14
|
+
export declare function themeToCssProperties(theme: Partial<Theme> | undefined | null): React.CSSProperties;
|
|
15
|
+
/**
|
|
16
|
+
* Theme tokens as CSS declarations (`--kb-color-primary: #2563eb;`) for a stylesheet rule,
|
|
17
|
+
* e.g. `:root { ... }` in generated/exported HTML.
|
|
18
|
+
*/
|
|
19
|
+
export declare function themeToCssDeclarations(theme: Partial<Theme> | undefined | null): string;
|
|
20
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAoC,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,EACxD,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,IAAI,GAC5C,KAAK,CAEP;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,GACvC,KAAK,CAAC,aAAa,CAMrB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAIvF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubuild/renderer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Pure recursive React renderer for KUBUILD page documents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -41,19 +41,19 @@
|
|
|
41
41
|
"homepage": "https://github.com/kustora/kubuild#readme",
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"lucide-react": "^1.33.0",
|
|
44
|
-
"@kubuild/
|
|
45
|
-
"@kubuild/
|
|
46
|
-
"@kubuild/
|
|
44
|
+
"@kubuild/core": "0.8.1",
|
|
45
|
+
"@kubuild/schema": "0.8.1",
|
|
46
|
+
"@kubuild/components": "0.8.1"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"react": ">=18.0.0",
|
|
50
50
|
"react-dom": ">=18.0.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@types/react": "^19.
|
|
54
|
-
"@types/react-dom": "^19.
|
|
55
|
-
"react": "^19.
|
|
56
|
-
"react-dom": "^19.
|
|
53
|
+
"@types/react": "^19.3.0",
|
|
54
|
+
"@types/react-dom": "^19.3.0",
|
|
55
|
+
"react": "^19.3.0",
|
|
56
|
+
"react-dom": "^19.3.0",
|
|
57
57
|
"tsup": "^8.3.6",
|
|
58
58
|
"typescript": "^6.0.0",
|
|
59
59
|
"vitest": "^3.0.5"
|