@use-voltra/core 1.3.0-rc.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.
Files changed (100) hide show
  1. package/README.md +30 -0
  2. package/build/cjs/index.js +23 -0
  3. package/build/cjs/index.js.map +1 -0
  4. package/build/cjs/jsx/createVoltraComponent.js +21 -0
  5. package/build/cjs/jsx/createVoltraComponent.js.map +1 -0
  6. package/build/cjs/package.json +3 -0
  7. package/build/cjs/payload/short-names.js +331 -0
  8. package/build/cjs/payload/short-names.js.map +1 -0
  9. package/build/cjs/payload.js +26 -0
  10. package/build/cjs/payload.js.map +1 -0
  11. package/build/cjs/renderer/context-registry.js +28 -0
  12. package/build/cjs/renderer/context-registry.js.map +1 -0
  13. package/build/cjs/renderer/dispatcher.js +62 -0
  14. package/build/cjs/renderer/dispatcher.js.map +1 -0
  15. package/build/cjs/renderer/element-registry.js +58 -0
  16. package/build/cjs/renderer/element-registry.js.map +1 -0
  17. package/build/cjs/renderer/flatten-styles.js +23 -0
  18. package/build/cjs/renderer/flatten-styles.js.map +1 -0
  19. package/build/cjs/renderer/index.js +23 -0
  20. package/build/cjs/renderer/index.js.map +1 -0
  21. package/build/cjs/renderer/render-cache.js +19 -0
  22. package/build/cjs/renderer/render-cache.js.map +1 -0
  23. package/build/cjs/renderer/renderer.js +358 -0
  24. package/build/cjs/renderer/renderer.js.map +1 -0
  25. package/build/cjs/renderer/stylesheet-registry.js +47 -0
  26. package/build/cjs/renderer/stylesheet-registry.js.map +1 -0
  27. package/build/cjs/renderer/types.js +3 -0
  28. package/build/cjs/renderer/types.js.map +1 -0
  29. package/build/cjs/styles/index.js +3 -0
  30. package/build/cjs/styles/index.js.map +1 -0
  31. package/build/cjs/styles/types.js +3 -0
  32. package/build/cjs/styles/types.js.map +1 -0
  33. package/build/cjs/types.js +3 -0
  34. package/build/cjs/types.js.map +1 -0
  35. package/build/esm/index.js +7 -0
  36. package/build/esm/index.js.map +1 -0
  37. package/build/esm/jsx/createVoltraComponent.js +16 -0
  38. package/build/esm/jsx/createVoltraComponent.js.map +1 -0
  39. package/build/esm/package.json +3 -0
  40. package/build/esm/payload/short-names.js +326 -0
  41. package/build/esm/payload/short-names.js.map +1 -0
  42. package/build/esm/payload.js +22 -0
  43. package/build/esm/payload.js.map +1 -0
  44. package/build/esm/renderer/context-registry.js +24 -0
  45. package/build/esm/renderer/context-registry.js.map +1 -0
  46. package/build/esm/renderer/dispatcher.js +54 -0
  47. package/build/esm/renderer/dispatcher.js.map +1 -0
  48. package/build/esm/renderer/element-registry.js +53 -0
  49. package/build/esm/renderer/element-registry.js.map +1 -0
  50. package/build/esm/renderer/flatten-styles.js +19 -0
  51. package/build/esm/renderer/flatten-styles.js.map +1 -0
  52. package/build/esm/renderer/index.js +8 -0
  53. package/build/esm/renderer/index.js.map +1 -0
  54. package/build/esm/renderer/render-cache.js +15 -0
  55. package/build/esm/renderer/render-cache.js.map +1 -0
  56. package/build/esm/renderer/renderer.js +351 -0
  57. package/build/esm/renderer/renderer.js.map +1 -0
  58. package/build/esm/renderer/stylesheet-registry.js +43 -0
  59. package/build/esm/renderer/stylesheet-registry.js.map +1 -0
  60. package/build/esm/renderer/types.js +2 -0
  61. package/build/esm/renderer/types.js.map +1 -0
  62. package/build/esm/styles/index.js +2 -0
  63. package/build/esm/styles/index.js.map +1 -0
  64. package/build/esm/styles/types.js +2 -0
  65. package/build/esm/styles/types.js.map +1 -0
  66. package/build/esm/types.js +2 -0
  67. package/build/esm/types.js.map +1 -0
  68. package/build/types/index.d.ts +7 -0
  69. package/build/types/index.d.ts.map +1 -0
  70. package/build/types/jsx/createVoltraComponent.d.ts +12 -0
  71. package/build/types/jsx/createVoltraComponent.d.ts.map +1 -0
  72. package/build/types/payload/short-names.d.ts +5 -0
  73. package/build/types/payload/short-names.d.ts.map +1 -0
  74. package/build/types/payload.d.ts +2 -0
  75. package/build/types/payload.d.ts.map +1 -0
  76. package/build/types/renderer/context-registry.d.ts +13 -0
  77. package/build/types/renderer/context-registry.d.ts.map +1 -0
  78. package/build/types/renderer/dispatcher.d.ts +35 -0
  79. package/build/types/renderer/dispatcher.d.ts.map +1 -0
  80. package/build/types/renderer/element-registry.d.ts +10 -0
  81. package/build/types/renderer/element-registry.d.ts.map +1 -0
  82. package/build/types/renderer/flatten-styles.d.ts +5 -0
  83. package/build/types/renderer/flatten-styles.d.ts.map +1 -0
  84. package/build/types/renderer/index.d.ts +9 -0
  85. package/build/types/renderer/index.d.ts.map +1 -0
  86. package/build/types/renderer/render-cache.d.ts +6 -0
  87. package/build/types/renderer/render-cache.d.ts.map +1 -0
  88. package/build/types/renderer/renderer.d.ts +26 -0
  89. package/build/types/renderer/renderer.d.ts.map +1 -0
  90. package/build/types/renderer/stylesheet-registry.d.ts +6 -0
  91. package/build/types/renderer/stylesheet-registry.d.ts.map +1 -0
  92. package/build/types/renderer/types.d.ts +4 -0
  93. package/build/types/renderer/types.d.ts.map +1 -0
  94. package/build/types/styles/index.d.ts +2 -0
  95. package/build/types/styles/index.d.ts.map +1 -0
  96. package/build/types/styles/types.d.ts +8 -0
  97. package/build/types/styles/types.d.ts.map +1 -0
  98. package/build/types/types.d.ts +36 -0
  99. package/build/types/types.d.ts.map +1 -0
  100. package/package.json +52 -0
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStylesheetRegistry = exports.VOLTRA_PAYLOAD_VERSION = exports.transformProps = exports.renderVariantToJson = exports.createVoltraRenderer = exports.getRenderCache = exports.flattenStyle = exports.preScanForDuplicates = exports.createElementRegistry = exports.getReactCurrentDispatcher = exports.getHooksDispatcher = exports.getContextRegistry = void 0;
4
+ var context_registry_js_1 = require("./context-registry.js");
5
+ Object.defineProperty(exports, "getContextRegistry", { enumerable: true, get: function () { return context_registry_js_1.getContextRegistry; } });
6
+ var dispatcher_js_1 = require("./dispatcher.js");
7
+ Object.defineProperty(exports, "getHooksDispatcher", { enumerable: true, get: function () { return dispatcher_js_1.getHooksDispatcher; } });
8
+ Object.defineProperty(exports, "getReactCurrentDispatcher", { enumerable: true, get: function () { return dispatcher_js_1.getReactCurrentDispatcher; } });
9
+ var element_registry_js_1 = require("./element-registry.js");
10
+ Object.defineProperty(exports, "createElementRegistry", { enumerable: true, get: function () { return element_registry_js_1.createElementRegistry; } });
11
+ Object.defineProperty(exports, "preScanForDuplicates", { enumerable: true, get: function () { return element_registry_js_1.preScanForDuplicates; } });
12
+ var flatten_styles_js_1 = require("./flatten-styles.js");
13
+ Object.defineProperty(exports, "flattenStyle", { enumerable: true, get: function () { return flatten_styles_js_1.flattenStyle; } });
14
+ var render_cache_js_1 = require("./render-cache.js");
15
+ Object.defineProperty(exports, "getRenderCache", { enumerable: true, get: function () { return render_cache_js_1.getRenderCache; } });
16
+ var renderer_js_1 = require("./renderer.js");
17
+ Object.defineProperty(exports, "createVoltraRenderer", { enumerable: true, get: function () { return renderer_js_1.createVoltraRenderer; } });
18
+ Object.defineProperty(exports, "renderVariantToJson", { enumerable: true, get: function () { return renderer_js_1.renderVariantToJson; } });
19
+ Object.defineProperty(exports, "transformProps", { enumerable: true, get: function () { return renderer_js_1.transformProps; } });
20
+ Object.defineProperty(exports, "VOLTRA_PAYLOAD_VERSION", { enumerable: true, get: function () { return renderer_js_1.VOLTRA_PAYLOAD_VERSION; } });
21
+ var stylesheet_registry_js_1 = require("./stylesheet-registry.js");
22
+ Object.defineProperty(exports, "createStylesheetRegistry", { enumerable: true, get: function () { return stylesheet_registry_js_1.createStylesheetRegistry; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/index.ts"],"names":[],"mappings":";;;AAAA,6DAAgF;AAAjD,yHAAA,kBAAkB,OAAA;AACjD,iDAA+E;AAAtE,mHAAA,kBAAkB,OAAA;AAAE,0HAAA,yBAAyB,OAAA;AACtD,6DAAyG;AAAhG,4HAAA,qBAAqB,OAAA;AAAwB,2HAAA,oBAAoB,OAAA;AAC1E,yDAAkD;AAAzC,iHAAA,YAAY,OAAA;AACrB,qDAAoE;AAA3D,iHAAA,cAAc,OAAA;AACvB,6CAMsB;AAJpB,mHAAA,oBAAoB,OAAA;AACpB,kHAAA,mBAAmB,OAAA;AACnB,6GAAA,cAAc,OAAA;AACd,qHAAA,sBAAsB,OAAA;AAExB,mEAA4F;AAAnF,kIAAA,wBAAwB,OAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRenderCache = void 0;
4
+ const getRenderCache = (renderer) => {
5
+ const renderCache = new Map();
6
+ return {
7
+ getOrRender: (node) => {
8
+ const cached = renderCache.get(node);
9
+ if (cached) {
10
+ return cached;
11
+ }
12
+ const result = renderer(node);
13
+ renderCache.set(node, result);
14
+ return result;
15
+ },
16
+ };
17
+ };
18
+ exports.getRenderCache = getRenderCache;
19
+ //# sourceMappingURL=render-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-cache.js","sourceRoot":"","sources":["../../../src/renderer/render-cache.ts"],"names":[],"mappings":";;;AASO,MAAM,cAAc,GAAG,CAAC,QAA+B,EAAe,EAAE;IAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAA;IAExD,OAAO;QACL,WAAW,EAAE,CAAC,IAAe,EAAkB,EAAE;YAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAA;YACf,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC7B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAE7B,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,cAAc,kBAiB1B"}
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createVoltraRenderer = exports.VOLTRA_PAYLOAD_VERSION = exports.renderVariantToJson = exports.renderFunctionalComponent = void 0;
4
+ exports.transformProps = transformProps;
5
+ const react_is_1 = require("react-is");
6
+ const createVoltraComponent_js_1 = require("../jsx/createVoltraComponent.js");
7
+ const short_names_js_1 = require("../payload/short-names.js");
8
+ const context_registry_js_1 = require("./context-registry.js");
9
+ const dispatcher_js_1 = require("./dispatcher.js");
10
+ const element_registry_js_1 = require("./element-registry.js");
11
+ const flatten_styles_js_1 = require("./flatten-styles.js");
12
+ const render_cache_js_1 = require("./render-cache.js");
13
+ const stylesheet_registry_js_1 = require("./stylesheet-registry.js");
14
+ function renderNode(element, context) {
15
+ if (element === null || element === undefined) {
16
+ return [];
17
+ }
18
+ if (typeof element === 'boolean') {
19
+ if (context.inStringOnlyContext) {
20
+ return '';
21
+ }
22
+ return [];
23
+ }
24
+ if (typeof element === 'string') {
25
+ if (context.inStringOnlyContext) {
26
+ return element;
27
+ }
28
+ throw new Error('Expected a React element, but got "string". Strings are only allowed as children of Text components.');
29
+ }
30
+ if (typeof element === 'number' || typeof element === 'bigint') {
31
+ if (context.inStringOnlyContext) {
32
+ return String(element);
33
+ }
34
+ throw new Error(`Expected a React element, but got "${typeof element}".`);
35
+ }
36
+ if (Array.isArray(element)) {
37
+ if (context.inStringOnlyContext) {
38
+ if (element.length === 0) {
39
+ throw new Error('Text component must have at least one child that resolves to a string.');
40
+ }
41
+ const results = [];
42
+ for (const child of element) {
43
+ const result = renderNode(child, context);
44
+ if (Array.isArray(result) && result.length === 0) {
45
+ continue;
46
+ }
47
+ if (typeof result !== 'string') {
48
+ throw new Error('Text component children must resolve to strings.');
49
+ }
50
+ results.push(result);
51
+ }
52
+ return results.join('');
53
+ }
54
+ return element.map((child) => renderNode(child, context)).flat();
55
+ }
56
+ if (context.duplicates?.has(element) && context.elementRegistry) {
57
+ const existingIndex = context.elementRegistry.isRegistered(element);
58
+ if (existingIndex !== undefined) {
59
+ return { $r: existingIndex };
60
+ }
61
+ const rendered = renderNodeInternal(element, context);
62
+ const index = context.elementRegistry.register(element, rendered);
63
+ return { $r: index };
64
+ }
65
+ return renderNodeInternal(element, context);
66
+ }
67
+ function renderNodeInternal(element, context) {
68
+ if (typeof element !== 'object' || element === null) {
69
+ throw new Error(`Expected element-like object with type and props, got ${typeof element}`);
70
+ }
71
+ if (!('type' in element) || !('props' in element)) {
72
+ throw new Error(`Expected element-like object with type and props, got ${typeof element}`);
73
+ }
74
+ if (typeof element.type === 'string') {
75
+ throw new Error(`Host component "${element.type}" is not supported in Voltra.`);
76
+ }
77
+ if ((0, react_is_1.isStrictMode)(element)) {
78
+ throw new Error('Strict mode is not supported in Voltra.');
79
+ }
80
+ if ((0, react_is_1.isProfiler)(element)) {
81
+ throw new Error('Profiler is not supported in Voltra.');
82
+ }
83
+ if ((0, react_is_1.isSuspense)(element)) {
84
+ throw new Error('Suspense is not supported in Voltra.');
85
+ }
86
+ if ((0, react_is_1.isPortal)(element) || element.type === Symbol.for('react.portal')) {
87
+ throw new Error('Portal is not supported in Voltra.');
88
+ }
89
+ if ((0, react_is_1.isFragment)(element) || element.type === Symbol.for('react.fragment')) {
90
+ const fragmentElement = element;
91
+ return renderNode(fragmentElement.props.children, context);
92
+ }
93
+ if ((0, react_is_1.isMemo)(element)) {
94
+ const memoElement = element;
95
+ const { type: memoizedComponent } = memoElement.type;
96
+ return renderNode({ ...memoElement, type: memoizedComponent }, context);
97
+ }
98
+ if ((0, react_is_1.isForwardRef)(element)) {
99
+ const forwardRefElement = element;
100
+ const { render } = forwardRefElement.type;
101
+ return (0, exports.renderFunctionalComponent)(render, forwardRefElement.props, context);
102
+ }
103
+ if ((0, react_is_1.isLazy)(element)) {
104
+ const lazyElement = element;
105
+ const { lazy } = lazyElement.type;
106
+ return renderNode(lazy(), context);
107
+ }
108
+ if ((0, react_is_1.isContextProvider)(element)) {
109
+ const contextProviderElement = element;
110
+ const reactContext = contextProviderElement.type;
111
+ const { value, children } = contextProviderElement.props;
112
+ context.registry.pushProvider(reactContext, value);
113
+ const result = renderNode(children, context);
114
+ context.registry.popProvider(reactContext);
115
+ return result;
116
+ }
117
+ if ((0, react_is_1.isContextConsumer)(element)) {
118
+ const contextConsumerElement = element;
119
+ const reactContext = contextConsumerElement.type._context;
120
+ const value = context.registry.readContext(reactContext);
121
+ const children = contextConsumerElement.props.children;
122
+ if (typeof children === 'function') {
123
+ return renderNode(children(value), context);
124
+ }
125
+ throw new Error(`Expected a function as children of a context consumer, but got "${typeof children}".`);
126
+ }
127
+ if (element != null &&
128
+ typeof element === 'object' &&
129
+ 'type' in element &&
130
+ 'props' in element &&
131
+ typeof element.type === 'function') {
132
+ const reactElement = element;
133
+ const componentType = reactElement.type;
134
+ if (componentType.prototype && 'render' in componentType.prototype) {
135
+ throw new Error('Class components are not supported in Voltra.');
136
+ }
137
+ if ((0, createVoltraComponent_js_1.isVoltraComponent)(componentType)) {
138
+ const child = componentType(reactElement.props);
139
+ if (typeof child !== 'object' || child === null || !('type' in child) || !('props' in child)) {
140
+ throw new Error(`Expected a React element, but got "${typeof child}".`);
141
+ }
142
+ if (typeof child.type !== 'string') {
143
+ throw new Error(`Expected a string as the type of a React element, but got "${typeof child.type}".`);
144
+ }
145
+ const { children, ...parameters } = child.props;
146
+ const isTextComponent = child.type === 'Text' || child.type === 'AndroidText';
147
+ const childContext = {
148
+ ...context,
149
+ inStringOnlyContext: isTextComponent,
150
+ };
151
+ const renderedChildren = children !== null && children !== undefined ? renderNode(children, childContext) : isTextComponent ? '' : [];
152
+ const id = typeof parameters.id === 'string' ? parameters.id : undefined;
153
+ const { id: _id, ...cleanParameters } = parameters;
154
+ if (isTextComponent) {
155
+ if (typeof renderedChildren !== 'string') {
156
+ throw new Error('Text component children must resolve to a string. Nested components are allowed, but they must eventually resolve to a string.');
157
+ }
158
+ const transformedProps = transformProps(cleanParameters, context);
159
+ const hasProps = Object.keys(transformedProps).length > 0;
160
+ return {
161
+ t: context.componentRegistry.getComponentId(child.type),
162
+ ...(id ? { i: id } : {}),
163
+ c: renderedChildren,
164
+ ...(hasProps ? { p: transformedProps } : {}),
165
+ };
166
+ }
167
+ if (typeof renderedChildren === 'string') {
168
+ throw new Error('Unexpected string in non-Text component children.');
169
+ }
170
+ const transformedProps = transformProps(cleanParameters, context);
171
+ const hasProps = Object.keys(transformedProps).length > 0;
172
+ const hasChildren = Array.isArray(renderedChildren) ? renderedChildren.length > 0 : true;
173
+ return {
174
+ t: context.componentRegistry.getComponentId(child.type),
175
+ ...(id ? { i: id } : {}),
176
+ ...(hasChildren ? { c: renderedChildren } : {}),
177
+ ...(hasProps ? { p: transformedProps } : {}),
178
+ };
179
+ }
180
+ return (0, exports.renderFunctionalComponent)(componentType, reactElement.props, context);
181
+ }
182
+ throw new Error(`Unsupported element type "${String(element.type)}". Report this as a bug in the Voltra project.`);
183
+ }
184
+ const renderFunctionalComponent = (Component, props, context) => {
185
+ const reactDispatcher = (0, dispatcher_js_1.getReactCurrentDispatcher)();
186
+ const prevHooksDispatcher = reactDispatcher.H;
187
+ try {
188
+ reactDispatcher.H = (0, dispatcher_js_1.getHooksDispatcher)(context.registry);
189
+ const result = Component(props);
190
+ if (result instanceof Promise) {
191
+ throw new Error(`Component "${Component.name || 'Anonymous'}" tried to suspend (returned a Promise). Async components are not supported in this synchronous renderer.`);
192
+ }
193
+ return renderNode(result, context);
194
+ }
195
+ catch (error) {
196
+ if (error instanceof Promise) {
197
+ throw new Error(`Component "${Component.name || 'Anonymous'}" suspended! Voltra does not support Suspense/Promises.`);
198
+ }
199
+ throw error;
200
+ }
201
+ finally {
202
+ reactDispatcher.H = prevHooksDispatcher;
203
+ }
204
+ };
205
+ exports.renderFunctionalComponent = renderFunctionalComponent;
206
+ const renderVariantToJson = (element, componentRegistry) => {
207
+ const registry = (0, context_registry_js_1.getContextRegistry)();
208
+ const context = {
209
+ registry,
210
+ componentRegistry,
211
+ };
212
+ return renderNode(element, context);
213
+ };
214
+ exports.renderVariantToJson = renderVariantToJson;
215
+ function compressStyleObject(style) {
216
+ if (style === null || style === undefined) {
217
+ return style;
218
+ }
219
+ const flattened = (0, flatten_styles_js_1.flattenStyle)(style);
220
+ const compressed = {};
221
+ for (const [key, value] of Object.entries(flattened)) {
222
+ const shortKey = (0, short_names_js_1.shorten)(key);
223
+ if (value === null || value === undefined) {
224
+ continue;
225
+ }
226
+ if (typeof value === 'object' && !Array.isArray(value) && value.constructor === Object) {
227
+ const compressedNested = {};
228
+ for (const [nestedKey, nestedValue] of Object.entries(value)) {
229
+ compressedNested[nestedKey] = nestedValue;
230
+ }
231
+ compressed[shortKey] = compressedNested;
232
+ }
233
+ else {
234
+ compressed[shortKey] = value;
235
+ }
236
+ }
237
+ return compressed;
238
+ }
239
+ function isReactNode(value) {
240
+ if (value === null || value === undefined || value === false || value === true) {
241
+ return false;
242
+ }
243
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint') {
244
+ return false;
245
+ }
246
+ if (Array.isArray(value)) {
247
+ return true;
248
+ }
249
+ if (typeof value === 'object' && value !== null && 'type' in value && 'props' in value) {
250
+ return true;
251
+ }
252
+ return false;
253
+ }
254
+ function transformProps(props, context) {
255
+ const transformed = {};
256
+ for (const [key, value] of Object.entries(props)) {
257
+ if (key === 'style') {
258
+ const shortKey = (0, short_names_js_1.shorten)(key);
259
+ if (context.stylesheetRegistry) {
260
+ const index = context.stylesheetRegistry.registerStyle(value);
261
+ transformed[shortKey] = index;
262
+ }
263
+ else {
264
+ transformed[shortKey] = compressStyleObject(value);
265
+ }
266
+ }
267
+ else if (isReactNode(value)) {
268
+ const serializedComponent = renderNode(value, {
269
+ registry: (0, context_registry_js_1.getContextRegistry)(),
270
+ stylesheetRegistry: context.stylesheetRegistry,
271
+ elementRegistry: context.elementRegistry,
272
+ duplicates: context.duplicates,
273
+ inStringOnlyContext: false,
274
+ componentRegistry: context.componentRegistry,
275
+ });
276
+ const shortKey = (0, short_names_js_1.shorten)(key);
277
+ transformed[shortKey] = serializedComponent;
278
+ }
279
+ else {
280
+ const shortKey = (0, short_names_js_1.shorten)(key);
281
+ transformed[shortKey] = value;
282
+ }
283
+ }
284
+ return transformed;
285
+ }
286
+ exports.VOLTRA_PAYLOAD_VERSION = 1;
287
+ const createVoltraRenderer = (componentRegistry) => {
288
+ const rootNodes = [];
289
+ let duplicates;
290
+ let stylesheetRegistry;
291
+ let elementRegistry;
292
+ let renderCache;
293
+ const addRootNode = (name, node) => {
294
+ if (node === null || node === undefined) {
295
+ return;
296
+ }
297
+ rootNodes.push({ name, node });
298
+ };
299
+ const preScanAllNodes = () => {
300
+ const seen = new Set();
301
+ const duplicatesSet = new Set();
302
+ for (const { node } of rootNodes) {
303
+ if (node && typeof node === 'object') {
304
+ if (seen.has(node)) {
305
+ duplicatesSet.add(node);
306
+ }
307
+ else {
308
+ seen.add(node);
309
+ }
310
+ }
311
+ const nodeDuplicates = (0, element_registry_js_1.preScanForDuplicates)(node);
312
+ for (const dup of nodeDuplicates) {
313
+ duplicatesSet.add(dup);
314
+ }
315
+ }
316
+ return duplicatesSet;
317
+ };
318
+ const render = () => {
319
+ stylesheetRegistry = (0, stylesheet_registry_js_1.createStylesheetRegistry)();
320
+ elementRegistry = (0, element_registry_js_1.createElementRegistry)();
321
+ duplicates = preScanAllNodes();
322
+ const renderVariantToJson = (element) => {
323
+ const registry = (0, context_registry_js_1.getContextRegistry)();
324
+ const context = {
325
+ registry,
326
+ stylesheetRegistry,
327
+ elementRegistry,
328
+ duplicates,
329
+ componentRegistry,
330
+ };
331
+ return renderNode(element, context);
332
+ };
333
+ renderCache = (0, render_cache_js_1.getRenderCache)(renderVariantToJson);
334
+ const result = {
335
+ v: exports.VOLTRA_PAYLOAD_VERSION,
336
+ };
337
+ for (const { name, node } of rootNodes) {
338
+ if (node !== null && node !== undefined) {
339
+ result[name] = renderCache.getOrRender(node);
340
+ }
341
+ }
342
+ const sharedElements = elementRegistry.getElements();
343
+ if (sharedElements.length > 0) {
344
+ result.e = sharedElements;
345
+ }
346
+ const styles = stylesheetRegistry.getStyles();
347
+ if (styles.length > 0) {
348
+ result.s = styles;
349
+ }
350
+ return result;
351
+ };
352
+ return {
353
+ addRootNode,
354
+ render,
355
+ };
356
+ };
357
+ exports.createVoltraRenderer = createVoltraRenderer;
358
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/renderer/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStylesheetRegistry = void 0;
4
+ const short_names_js_1 = require("../payload/short-names.js");
5
+ const flatten_styles_js_1 = require("./flatten-styles.js");
6
+ function compressStyleObject(style) {
7
+ if (style === null || style === undefined) {
8
+ return style;
9
+ }
10
+ const flattened = (0, flatten_styles_js_1.flattenStyle)(style);
11
+ const compressed = {};
12
+ for (const [key, value] of Object.entries(flattened)) {
13
+ const shortKey = (0, short_names_js_1.shorten)(key);
14
+ if (value === null || value === undefined) {
15
+ continue;
16
+ }
17
+ if (typeof value === 'object' && !Array.isArray(value) && value.constructor === Object) {
18
+ const compressedNested = {};
19
+ for (const [nestedKey, nestedValue] of Object.entries(value)) {
20
+ compressedNested[nestedKey] = nestedValue;
21
+ }
22
+ compressed[shortKey] = compressedNested;
23
+ }
24
+ else {
25
+ compressed[shortKey] = value;
26
+ }
27
+ }
28
+ return compressed;
29
+ }
30
+ const createStylesheetRegistry = () => {
31
+ const styleToIndex = new Map();
32
+ const styles = [];
33
+ return {
34
+ registerStyle: (styleObject) => {
35
+ const existing = styleToIndex.get(styleObject);
36
+ if (existing !== undefined)
37
+ return existing;
38
+ const index = styles.length;
39
+ styleToIndex.set(styleObject, index);
40
+ styles.push(compressStyleObject(styleObject));
41
+ return index;
42
+ },
43
+ getStyles: () => styles,
44
+ };
45
+ };
46
+ exports.createStylesheetRegistry = createStylesheetRegistry;
47
+ //# sourceMappingURL=stylesheet-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylesheet-registry.js","sourceRoot":"","sources":["../../../src/renderer/stylesheet-registry.ts"],"names":[],"mappings":";;;AAAA,8DAAmD;AACnD,2DAAkD;AAElD,SAAS,mBAAmB,CAAC,KAAU;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,gCAAY,EAAC,KAAK,CAAC,CAAA;IACrC,MAAM,UAAU,GAAwB,EAAE,CAAA;IAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAA,wBAAO,EAAC,GAAG,CAAC,CAAA;QAE7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YACvF,MAAM,gBAAgB,GAAwB,EAAE,CAAA;YAChD,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,gBAAgB,CAAC,SAAS,CAAC,GAAG,WAAW,CAAA;YAC3C,CAAC;YACD,UAAU,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAOM,MAAM,wBAAwB,GAAG,GAAuB,EAAE;IAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,MAAM,MAAM,GAA8B,EAAE,CAAA;IAE5C,OAAO;QACL,aAAa,EAAE,CAAC,WAAmB,EAAU,EAAE;YAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9C,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAA;YAE3C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAA;YAC3B,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAA;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;KACxB,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,wBAAwB,4BAgBpC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/renderer/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/styles/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/styles/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export * from './jsx/createVoltraComponent.js';
2
+ export * from './payload.js';
3
+ export * from './payload/short-names.js';
4
+ export * from './renderer/index.js';
5
+ export * from './styles/index.js';
6
+ export * from './types.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { createElement } from 'react';
2
+ export const VOLTRA_COMPONENT_TAG = Symbol.for('VOLTRA_COMPONENT_TAG');
3
+ export const createVoltraComponent = (componentName, options) => {
4
+ const Component = (props) => {
5
+ const toJSON = options?.toJSON ? options.toJSON : (value) => value;
6
+ const normalizedProps = toJSON(props);
7
+ return createElement(componentName, normalizedProps);
8
+ };
9
+ Component[VOLTRA_COMPONENT_TAG] = true;
10
+ Component.displayName = componentName;
11
+ return Component;
12
+ };
13
+ export const isVoltraComponent = (component) => {
14
+ return typeof component === 'function' && VOLTRA_COMPONENT_TAG in component;
15
+ };
16
+ //# sourceMappingURL=createVoltraComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createVoltraComponent.js","sourceRoot":"","sources":["../../../src/jsx/createVoltraComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAWtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,aAAqB,EACrB,OAAwC,EACf,EAAE;IAC3B,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAA;QAC1E,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAErC,OAAO,aAAa,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;IACtD,CAAC,CAAA;IAED,SAAS,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAA;IACtC,SAAS,CAAC,WAAW,GAAG,aAAa,CAAA;IAErC,OAAO,SAAoC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAgC,EACM,EAAE;IACxC,OAAO,OAAO,SAAS,KAAK,UAAU,IAAI,oBAAoB,IAAI,SAAS,CAAA;AAC7E,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }